Keep these defects separate from the memory-formation/query-transformation ablation so they do not muddy causal attribution.
1. Flat identity-rescue scoring
src/memory/memory-query.service.ts injects identity-rescue rows at a flat 1.15, inside the FTS rescue band. Preserve relevance evidence, define deterministic ordering, and add non-domination tests.
2. Unreachable forced-FTS fallback
The forced-FTS branch assigns 0.75, but current topIds/memoryMap construction appears to make it unreachable. Prove reachability, then remove or repair it with a regression test.
3. Embedding model/dimension mismatch
Research instrumentation observed 1536-d OpenAI vectors meeting 384-d/local-model storage expectations on the write path. Trace model identity end-to-end, reject/route mismatches before SQL, and cover 384/768/1536 providers mechanically.
4. Local embedder saturation
Bulk ingest (about 3.5k chunks in parallel) has produced malformed sparse vectors like [,,,,,...], causing pgvector 22P02 and memories without embeddings. Add backpressure, finite-vector validation, explicit metrics, and rerun the LongMemEval/bulk-ingest reproducer. Preserve the OpenAI-embedding workaround until verified.
Constraints
- No production data mutation.
- Do not combine these fixes with formation/query-rewrite experiments.
- Measure recall and downstream behavior independently.
Keep these defects separate from the memory-formation/query-transformation ablation so they do not muddy causal attribution.
1. Flat identity-rescue scoring
src/memory/memory-query.service.tsinjects identity-rescue rows at a flat1.15, inside the FTS rescue band. Preserve relevance evidence, define deterministic ordering, and add non-domination tests.2. Unreachable forced-FTS fallback
The forced-FTS branch assigns
0.75, but currenttopIds/memoryMapconstruction appears to make it unreachable. Prove reachability, then remove or repair it with a regression test.3. Embedding model/dimension mismatch
Research instrumentation observed 1536-d OpenAI vectors meeting 384-d/local-model storage expectations on the write path. Trace model identity end-to-end, reject/route mismatches before SQL, and cover 384/768/1536 providers mechanically.
4. Local embedder saturation
Bulk ingest (about 3.5k chunks in parallel) has produced malformed sparse vectors like
[,,,,,...], causing pgvector22P02and memories without embeddings. Add backpressure, finite-vector validation, explicit metrics, and rerun the LongMemEval/bulk-ingest reproducer. Preserve the OpenAI-embedding workaround until verified.Constraints