v1.6.0
A polish release that closes three TBD items declared in v1.5's "Honest limits" section. No new public surface — same 37 MCP tools, same CLI flags, same install modes. Smaller per-tick overhead and sharper coverage of the §10 q5 guarantees.
Step 1 — batched payload reads in retest_fact_step82
v1.5 made four separate `get_points` round-trips per fact. At BACKGROUND_PER_TICK_CAP=50 that was 200 round-trips per tick.
New `storage::read_point_payload_strings(client, collection, id, &keys)` returns a HashMap in one call. `retest_fact_step82` now does one Qdrant fetch + four HashMap lookups. 4× reduction in round-trips per fact, same semantics.
Step 2 — `cited_by` chain following
The v1.5 self-citation guard always blocked because the closure was `|_| None`.
v1.6 wires real lookup via `fetch_citing_confidences` — a single batched `get_points` against MEMORIES_COLLECTION. Closure reads from the pre-fetched map synchronously.
- Citing memory with cached confidence ≥ 0.5 → `cited_by` signal contributes `0.2 × external slot weight`.
- Citing memory below 0.5 or missing → guard blocks.
Mechanism 1 invariant preserved.
Step 3 — integration tests on `spawn_background_retest_loop`
Closes the audit-flagged gap: v1.5 had no test that ran the spawned task end-to-end. Four new tests at the registry / scheduling level.
Build hygiene
Six modules gain module-level `#![allow(dead_code)]` with comments. Build output is warning-free.
Tests
290 unit + 6 integration tests, 0 failed. 4 new tests for v1.6.