✨ Vector candidate recall reports its completeness truthfully, and the tie-closure loop becomes shared adapter logic - #75
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The zero-norm shortcut accepts wrong-dimensional embeddings by bypassing Qdrant’s dimension validation.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds truthful vector recall completeness telemetry and centralizes bounded tie-cohort closure.
Changes:
- Introduces completeness verdicts and propagates them through retrieval telemetry.
- Extracts shared tie-closure logic and adds zero-norm Qdrant handling.
- Enforces explicit object-type scopes and updates test stores.
File summaries
| File | Description |
|---|---|
src/usecases/retrieve.rs |
Validates scope and records completeness. |
src/usecases/remember.rs |
Updates test vector store. |
src/usecases/correct_forget.rs |
Adapts tests to recall envelopes. |
src/test_support.rs |
Updates fake behavior and fixtures. |
src/ports/vector_candidate.rs |
Defines the recall envelope. |
src/models/vector/candidate_record.rs |
Requires scope and detects zero norm. |
src/memory.rs |
Tests empty-scope rejection. |
src/lib.rs |
Re-exports the verdict. |
src/api/types/retrieval.rs |
Adds validation and telemetry vocabulary. |
src/api/types.rs |
Exports the verdict through API types. |
src/adapters/qdrant/tie_closure.rs |
Implements shared bounded tie closure. |
src/adapters/qdrant/store.rs |
Produces truthful Qdrant recall verdicts. |
src/adapters/qdrant.rs |
Exposes shared adapter logic. |
src/adapters/oxigraph/tests.rs |
Updates test vector-store implementation. |
Review details
- Files reviewed: 14/14 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Fixed in 789d34a: a wrong-sized query embedding now fails with the existing collection-compatibility error (vector size mismatch) before either the zero-norm scroll or the vector search is chosen; the guard sits after the intentional empty-scope and zero-limit no-op and before tie closure. Regression test added. Reviewed internally (cm-reviewer, no findings); service-up suite and ignored Qdrant tests pass. |
There was a problem hiding this comment.
🟢 Approval recommended
The implementation matches ADR-I-0024, propagates verdicts without control-flow coupling, and covers the relevant boundary cases.
Review details
- Files reviewed: 14/14 changed files
- Comments generated: 0 new
- Review effort level: Balanced
789d34a to
9cdd50a
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The port, pipeline, adapter, exports, and tests consistently implement the stated completeness contract without unresolved defects.
Review details
- Files reviewed: 14/14 changed files
- Comments generated: 0 new
- Review effort level: Balanced
9cdd50a to
acfdc08
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The core public and port-level completeness semantics need explicit documentation to prevent incorrect adapter implementations and consumer interpretation.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 14/14 changed files
- Comments generated: 2
- Review effort level: Balanced
Summary
v0.1.6 Wave 1, Task_2 (port contract, ADR-I-0024), targeting the planning branch per the phase's merge shape.
Validation
-D warningson Rust 1.95 and 1.97; full service-upcargo test; ignored Qdrant library tests 4/4; zero-hit census for match-or-unknown conditions and filters beyond object-type scope.🤖 Generated with Claude Code