suite 2286/0; type ratchet PASS; ruff clean; henxels all-hold.
Propagation: verified dependent umbrellas capability, growth, and perception through the full 2286-test suite and registered canaries (context_broker, full_system, memory_synthesis, native, P0/P1, query_memory, rune_entry, rune_serve); W2.1 is kernel-only delegation with defaults preserved, so no dependent code change is required.
Closes #2458. Stacked on W2.0 (merged de54453).
## What
R2 Wave 2 slice 1: the deterministic memory-retrieval kernel, zero-dep Rust, SQLite untouched behind W2.0.
## Kernel surface (one FFI call per retrieval stage)
- rank_fusion — RRF/lexical-normalization/mode selection
- score_recall_rows — metadata blend + mode-specific QPP abstention
- merge_association_rows — association projection/re-rank/budget
- fuse_results — fact/research projection + per-kind min-max scale alignment
- pure helpers: map_reduce, position_aware, fts_query_conjunctive (51-word stoplist, AST-extracted), chunk_text, norm_key
## Parity (floor)
- 34-case scoring/abstention matrix parity: naive timestamps take Python's designed TypeError fallback; metadata defaults (0.0→0.7 conf, 0.0→1.0 temp) preserved; floor/gap abstention edges exact
- UTF-8 direct transport (ASCII-escaped surrogate pairs previously corrupted astral chars; frozen)
- canary_memory_retrieval: 72/72 ×3
## Improvement (measured)
- recall's N+1 eliminated: candidate rows batch through the W2.0 read boundary once; kernels run per retrieval stage, not per helper
## Scaffolding
Contract BUILDER-2026-10-04T20:10:25Z-cli closed: memory_store + memory_selector correctly_predicted; kernel expected_new_observed.
## Gates
suite 2286/0; type ratchet PASS; ruff clean; henxels all-hold.
Propagation: verified dependent umbrellas capability, growth, and perception through the full 2286-test suite and registered canaries (context_broker, full_system, memory_synthesis, native, P0/P1, query_memory, rune_entry, rune_serve); W2.1 is kernel-only delegation with defaults preserved, so no dependent code change is required.
🤖Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 **Headless spec gate (non-blocking, #204 first slice)**
Spec-gate agent produced no text output — check runner logs.
<details><summary>Deterministic floors still govern the merge</summary>
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
🤖Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 **Headless spec gate (non-blocking, #204 first slice)**
Spec-gate agent produced no text output — check runner logs.
<details><summary>Deterministic floors still govern the merge</summary>
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
- chunk gather + projection now speak the W2.1 pair-list contract
consistently on BOTH engines (fusion['ranks'] is [[rowid, rrf], ...];
dict-form still accepted for backward callers)
- oracle-path tests: all three modes, abstention edges, malformed
timestamps, hybrid accumulation, chunk SQL gather through a real
fixture (vec-table absent by design; embed stubbed — vector execution
stays Python per the W2.0 ruling)
- battery 32->32 tests extended; suite 2291/0; canary 75/75 x3;
diff-cover 84% (floor 70)
🤖Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 **Headless spec gate (non-blocking, #204 first slice)**
Spec-gate agent produced no text output — check runner logs.
<details><summary>Deterministic floors still govern the merge</summary>
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.</details>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #2458. Stacked on W2.0 (merged
de54453).What
R2 Wave 2 slice 1: the deterministic memory-retrieval kernel, zero-dep Rust, SQLite untouched behind W2.0.
Kernel surface (one FFI call per retrieval stage)
Parity (floor)
Improvement (measured)
Scaffolding
Contract BUILDER-2026-10-04T20:10:25Z-cli closed: memory_store + memory_selector correctly_predicted; kernel expected_new_observed.
Gates
suite 2286/0; type ratchet PASS; ruff clean; henxels all-hold.
Propagation: verified dependent umbrellas capability, growth, and perception through the full 2286-test suite and registered canaries (context_broker, full_system, memory_synthesis, native, P0/P1, query_memory, rune_entry, rune_serve); W2.1 is kernel-only delegation with defaults preserved, so no dependent code change is required.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.
🤖 Headless spec gate (non-blocking, #204 first slice)
Spec-gate agent produced no text output — check runner logs.
Deterministic floors still govern the merge
This comment is advisory. Required checks (lint, tests, canaries, type-check, coverage, dependency lock, impact gate) remain the merge authority per docs/adversarial-review.md proportionality.