Skip to content

Commit 5bee687

Browse files
committed
docs(board): #496 post-merge hygiene + lazy-import drift-control capture
#496 merged (merge 2e58e03, CI 5/5 green, CodeRabbit resolved, codex P2 dispositioned). Post-merge hygiene per the Mandatory Board-Hygiene rule: - PR_ARC_INVENTORY: prepend #496 (Added/Locked/Deferred/Docs/Confidence) — ValueSchema/ValueTenant/VALUE_TENANTS + FULL POC default + the reference plan + §0 guardrail + §9 hardening; the keystone is the next unblock. - LATEST_STATE: prepend the #496 shipped note + the keystone convergence (from_guid_prefix + classid->ClassView read-mode on registry.rs). Capture (operator "yes"): TD-LAZY-IMPORT-VERSION-PIN — the OGIT-as-lazy-import drift-control finding (immutable-address + evolvable-shape + versioned-namespace + StructuralSignature-detector; lock version-pin + reserve-don't-reclaim sibling nibbles before the OGAR-identity migration runs a real load). EPIPHANY candidate flagged for the council. https://claude.ai/code/session_01D2WSmezQBNC3bUdHuGfGmo
1 parent 2e58e03 commit 5bee687

3 files changed

Lines changed: 26 additions & 0 deletions

File tree

.claude/board/LATEST_STATE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
1111
---
1212

13+
> **2026-06-15 — MERGED #496** (integrated-cognitive-planner reference map + ValueSchema + FULL POC default): `lance_graph_contract::canonical_node::{ValueSchema, ValueTenant, VALUE_TENANTS}` — the value-side `EdgeCodecFlavor` analog (9 append-only tenants carving `[32,186)`; presets Bootstrap/Cognitive/Compressed/Full). `ClassView::value_schema()` default flipped **Bootstrap→Full (TEMPORARY POC** — every unconfigured class materialises the full slab so consumers transcode against it; `TD-VALUESCHEMA-FULL-POC-DEFAULT` revert-when-POC-concludes; type-level `ValueSchema::default()` stays Bootstrap, only class→schema *resolution* flips). New reference plan `.claude/plans/integrated-cognitive-planner-v1.md` — **§0 ANTI-INVENTION GUARDRAIL (READ FIRST)**, §1–§7 grounded file:line map, §8 7-item additive ledger, §9 3-hardener verdicts; the SPEC for the integrated-planner refactor (~90% exists; remaining = the keystone + 6 seams, NOT a new build). CI 5/5 green; contract 613 lib tests; merge `2e58e034`. **The keystone = `NiblePath::from_guid_prefix` (the 20→≤16-nibble subset) + classid→ClassView read-mode on `lance-graph-ontology::registry` (already an immutable conflict-refusing `entity_type↔NiblePath` bijection)** — the single next unblock that converges the refactor, the tesseract-rs OCR transcode (`contract::ocr` → NodeRow), AND the OGAR-identity migration (`soa-migration-diff-resolution-2026-06-13.md`). HEEL=cache `dolce_id` / HIP·TWIG=deterministic subClassOf descent / registry=recorder-not-minter (verified `registry.rs`+`wikidata_hhtl.rs`). New: `TD-COARSERESIDUE-NO-VALUE-TENANT`, `TD-LAZY-IMPORT-VERSION-PIN`; IDEAS CLAM-residue-ladder TODO.
14+
>
1315
> **2026-06-13 — shipped (autoattended, cross-repo)** (turbovec ⇄ ndarray): new excluded standalone crate **`crates/lance-graph-turbovec`** — Google TurboQuant (arXiv 2504.19874, the AdaWorldAPI `turbovec` fork) bridged onto the spine. `TurboVec` wraps `turbovec::TurboQuantIndex` with a `Kernel::{NativeLut, PolyfillGemm}` A/B switch. **Cross-repo (branch `claude/wonderful-hawking-lodtql` in turbovec + ndarray + lance-graph):** turbovec re-pointed from crates.io `ndarray 0.17` → the AdaWorldAPI fork (path, P0 forks-only; `blas` opt-in so default builds BLAS-free; `rust-toolchain.toml` = 1.95.0); new `turbovec::search_polyfill` (feature `ndarray-simd`) expresses scoring as a batched int8 GEMM via **`ndarray::simd::matmul_i8_to_i32`** (re-exported through `simd.rs` — AMX `TDPBUSD` tile → AVX-512 VPDPBUSD → AVX-VNNI → scalar, dispatched inside ndarray, zero intrinsics in turbovec). **Measured finding (E-TURBOVEC-AMX-WRONG-TOOL-1):** the polyfill GEMM is 11.4× SLOWER than the native nibble-LUT (TurboQuant trades the matmul away → AMX accelerates the op it removed); native LUT stays production, polyfill is the AMX-ready baseline. Placement: index → spine, kernel-math → ndarray (already owns clam/cam_pq/cascade/amx_matmul). Synergy map (HDR popcount stacking early-exit, Belichtungsmesser σ thresholds, preheating vs palette256) in `crates/lance-graph-turbovec/KNOWLEDGE.md`. Tests green in all three repos; benchmark via `examples/kernel_speed.rs`. NOT a merged PR yet (branch work).
1416
>
1517
> **2026-06-03 — hardened (follow-up after #460)** (D-HELIX-1 wiring): `crates/helix` now takes **ndarray as a MANDATORY, non-optional git dependency** (`git = AdaWorldAPI/ndarray @ master`), replacing the optional `path` dep + `ndarray-hpc` feature. Why: (1) codex P2 — an optional *path* dep still forces Cargo to read the local sibling manifest at resolution, so a clean checkout failed before feature selection; (2) directive "ndarray is mandatory for lance-graph". `simd.rs` always uses `ndarray::simd` (no scalar fallback); the self-contained fork → no import cycle. 63 unit + 6 doctests green; clippy/fmt clean. See E-HELIX-NDARRAY-MANDATORY.

.claude/board/PR_ARC_INVENTORY.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,20 @@
3535
3636
---
3737

38+
## #496 integrated-cognitive-planner reference map + ValueSchema presets + FULL POC default
39+
40+
**Status:** MERGED 2026-06-15 (merge commit `2e58e034`), branch `claude/wonderful-hawking-lodtql`. CI 5/5 green (format/clippy/linux-build/test/test-with-coverage). CodeRabbit 2 threads resolved; codex 2×P2 dispositioned (FULL-default intentional; CoarseResidue tracked as TD).
41+
42+
**Added:** `lance_graph_contract::canonical_node::{ValueSchema, ValueTenant, VALUE_TENANTS}` — value-side analog of `EdgeCodecFlavor`; 9 append-only tenants carve `[32,186)`; 4 presets (Bootstrap EMPTY / Cognitive 58 B / Compressed 98 B / Full 154 B). `ClassView::value_schema()` default flipped **Bootstrap→Full (TEMPORARY POC)** + guard test `value_schema_default_is_full_temporary_poc`. New `.claude/plans/integrated-cognitive-planner-v1.md` (file:line reference map). Lance pin doc-sweep 6→7 / 0.29→0.30 across CLAUDE.md + boards + plans. Contract 613 lib tests.
43+
44+
**Locked:** (1) **§0 ANTI-INVENTION GUARDRAIL** — no new skewed SoA properties; the 9 ValueTenants + 4 BindSpace columns are closed; new capability = new column/class, never a new layer; specialisation is opt-IN (mint a class). (2) FULL POC default is class→schema *resolution* only; type-level `ValueSchema::default()` stays Bootstrap (substrate zero-fallback intact). (3) emit channels `emitted_edges`(CausalEdge64 words) vs `emitted_moves`(KanbanMove) are SEPARATE — no `KanbanMove→u64` cast. (4) `cycle()` stays inherent (object-safety, keeps `Box<dyn>` consumers). (5) seam #2 as-of read is closure-injected (planner ⊥ async `at_version`). (6) dual `RungLevel` — mirror thinking-engine's `should_elevate`, don't duplicate.
45+
46+
**Deferred:** the §8 7-item additive ledger (CognitiveCycle sequencer / RungLevel constructors / temporal.rs A→contract + B core temporal_read / ScopedReference / MarkingRow / NiblePath `from_guid_prefix` / ExecTarget::can_drive) — gated on D-MBX-A6-P3 + the keystone. `TD-VALUESCHEMA-FULL-POC-DEFAULT` (revert FULL→Bootstrap when POC concludes), `TD-COARSERESIDUE-NO-VALUE-TENANT`, `TD-LAZY-IMPORT-VERSION-PIN`.
47+
48+
**Docs:** `integrated-cognitive-planner-v1.md` (§0 guardrail, §1–§7 grounded map, §2.1 ExecTarget, §3.1 causal-arc, §4.1 0-friction, §8 cross-savant synthesis, §9 hardening verdicts). 5-savant expansion + 3-hardener (PP-13/15/16) folded.
49+
50+
**Confidence (2026-06-15):** working — merged clean, CI green, 613 contract lib tests. The plan is the SPEC for the integrated-planner refactor; the keystone (`from_guid_prefix` + classid→ClassView read-mode on `registry.rs`) is the single next unblock for refactor + tesseract + OGAR-identity migration.
51+
3852
## #459 helix-place-residue-codec — golden-spiral Place/Residue codec (zero-dep + optional ndarray-hpc)
3953

4054
**Status:** MERGED 2026-06-03 (merge commit `ef35ff1`), branch `claude/gallant-rubin-Y9pQd`. New standalone crate; autoattended wave (5 read-only research agents + 4 parallel Sonnet leaf workers + central consolidation). 63 unit + 6 doctests green on both feature configs; clippy -D warnings + fmt clean. One CodeRabbit review round resolved pre-merge.

.claude/board/TECH_DEBT.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@
1515

1616
## Open Debt
1717

18+
### TD-LAZY-IMPORT-VERSION-PIN — lazy OGIT/ontology imports MUST be version-pinned + reserve-don't-reclaim sibling nibbles (2026-06-15)
19+
20+
**Surfaced by** operator design dialogue (2026-06-15: "OGIT as a lazy import in Rust-based OGAR — could DOLCE / Odoo etc. drift?"). The drift-control architecture is layered + sound; two disciplines must be LOCKED before the OGAR-identity migration runs a real (non-fixture) lazy import.
21+
22+
**Drift-control that already EXISTS (recorded so it's not re-derived):** (1) `entity_type↔NiblePath` address bijection is IMMUTABLE / conflict-refusing (`registry.rs:385-401`) — drift surfaces as a LOUD registration error, never silent corruption; (2) DOLCE basin = static enum (4 frozen upper categories, collision-free) — no drift; (3) shape/metadata evolves via `ContextBundle` overwrite on same `G` (`register_bundle` :466), a version bump = new `(g, version)` slot, old preserved — Odoo field changes are absorbed as bundle updates, NOT address drift; (4) `StructuralSignature` (class_signature.rs:31) is the shape-drift DETECTOR.
23+
24+
**The debt (disciplines to enforce):** (a) **every lazy import MUST declare a version** so a drifted upstream → a NEW `(g, version)` namespace, never a conflicting re-mint into the old slot (an I-LEGACY-API-style version-gate on the hydrator/import path). (b) the **sibling-nibble assignment MUST be deterministic + reserve-don't-reclaim** — a new sibling class gets a NEW nibble, never reassigns an existing sibling's; >16 fan-out per level needs the CLAM 16-way sub-tiering (IDEAS.md 2026-06-15 CLAM-residue-ladder).
25+
26+
**Pay it by** adding the version-pin gate + the deterministic sibling rule when the OGAR-identity migration (`soa-migration-diff-resolution-2026-06-13.md`) executes a real load. Until then imports are curated/fixture (deterministic by hand). Cross-ref: `guid-canon-and-prefix-routing.md` (OGAR canon, cited never forked), `registry.rs:385-466`, IDEAS CLAM-ladder. **EPIPHANY candidate (council-gated):** "lazy-import drift control = immutable-address + evolvable-shape + versioned-namespace + StructuralSignature-detector; identity immutable, shape evolvable, versions side-by-side."
27+
1828
### TD-COARSERESIDUE-NO-VALUE-TENANT — `EdgeCodecFlavor::CoarseResidue` residue has no dedicated value-slab tenant (codex #496, 2026-06-15)
1929

2030
**Surfaced by** codex P2 on PR #496 (`canonical_node.rs:336`). `EdgeCodecFlavor::CoarseResidue` (`canonical_node.rs:213`) declares its per-dimension signed-4-bit residue is "carried in the reserved value slab" (cost `1 + ⌈D/2⌉`, `bytes_per_vector` :228), but the `ValueTenant` catalogue (`canonical_node.rs:324-343`) has a slot only for `Pq32x4` (`TurbovecResidue = 5`, 16 B at offset 160) — **none for `CoarseResidue`**. So `Full`/`Compressed` presets report all codec tenants present while a class pairing `CoarseResidue` with those schemas has no addressable column for its residue (it would collide with another tenant).

0 commit comments

Comments
 (0)