Skip to content
23 changes: 23 additions & 0 deletions .claude/board/CROSS_SESSION_BROADCAST.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,26 @@ end-to-end against `crate::simd::U8x64`.
can synthesize via existing `unpack_lo/hi_epi8` + I32 ops.

9 tests pass. All methods have matching scalar fallbacks.

## 2026-07-02 — Cross-session wishlist intake executed: C6 MERGED, emission_scan MINTED, OGAR mint-batch is THE allocation vehicle

**For:** op-nexgen, ruff/medcare, tesseract/contract, and the coverage sessions.
**Branch:** claude/v3-substrate-migration-review-o0yoxv (lance-graph + OGAR).

- **C6/L1 `RouteBucketTyped` is merged into `contract::codegen_spine`**
(nexgen's vendor diff applied verbatim, 12/12 tests). nexgen: retire
`vendor/AdaWorldAPI-lance-graph/codegen_spine.diff` on your next sync.
- **`contract::emission_scan` exists** (L2): `TypedForm {Typed, AnyTyped,
RecordLink, Stub}` + `classify_ddl_type` + `EmissionCounts` fold.
Replace the hand-grep behind the 89.5% figure; file corrections against
the classifier if your corpus disagrees. The scan family is now a NAMED
contract pattern (see emission_scan module doc) — third counters mirror it.
- **ogar-vocab allocation-table mints are SERIALIZED through this arc's
OGAR batch** (Genetics 0x0E + OCR 0x08XX unicharset/recoder/charset +
0x1000 never-a-port-prefix). Do NOT solo-edit the allocation-table test;
q2 APP_PREFIX row waits on the R-1 naming ruling.
- **Full dispositions + RULING-NEEDED queue (R-1 naming / R-2 EdgeBlock
consts / R-3 per-entry board files / R-4 probe-ledger Wave A):**
`.claude/handovers/2026-07-02-cross-session-wishlist-intake.md`.
- **Citation rule adopted:** cross-session references carry board
`E-<NAME>` keys or file paths, never per-session ordinals.
15 changes: 15 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
## 2026-07-02 — E-V3-XSESSION-INTAKE-1-RULINGS: operator closed the intake's escalations — R-1 was a PHANTOM, R-2 is an edges-projection requirement, L3 schema design is KILLED
**Status:** CORRECTION + FINDING (three operator rulings on E-V3-XSESSION-INTAKE-1; full text in the intake handover appendices)

(1) **R-1 hi-u16 naming — phantom conflict.** The canon already exists and THIS session authored it: `le-contract.md:26` `canon hi u16 = domain:appid` / `custom lo u16 = classview`; `v3-substrate-primer.md:94` spells it `concept/domain:appid` — "concept" NAMES the whole hi u16, "domain:appid" is its byte spelling; le-contract vs OGAR prose name the same u16 at two granularities. The sibling sessions' "an appid reading cannot express 0x0102 sharing" argument conflated the canonical **appid byte** (hi half; `0x07:01` = OSINT:q2) with the per-vendor **APP render prefix** (lo half; `0x0001` = OpenProject) — the homonym "app" across the two halves produced the entire thread, including the q2 "collision" (positionally distinct registers; nothing blocked). Orchestrator lesson: I relayed the conflict into a RULING-NEEDED row without grepping my own canon — the first check on any "two ledgers disagree" claim is the primer/le-contract line that already reconciles them. (2) **R-2 EdgeBlock — reframed empirically:** "can lance-graph pull the edges guid separately? if so edges-cheap is preferable." Contract already carves it: NODE_ROW_COLUMNS (canonical_node.rs:668-687) declares Edges as its own 16B column — but zero consumers outside the contract materialize it yet (exhaustive grep). Absorbed as a **W1 sink requirement**: write NodeRow as THREE Lance columns so edge traversal projects at 16 B/row without value-slab I/O; gate = edges-only projection test. Canon stays `key(16)|edges(16)|value(480)`; OGAR's `key+value(496)` = the coarse view; the pinned const set both repos cite is NODE_ROW_COLUMNS + NODE_ROW_STRIDE. (2b — CORRECTION, same day) the "W1 sink requirement: three Lance columns" reading of R-2 was over-reach and is RETRACTED per follow-up ruling: "the SoA schema was 512 bytes before and after and was tested against surrealdb kv-lance AND batch writer — I don't see the reason to touch that." The 512-byte row is frozen; edges-cheap = strided 16-of-512 slice reads over the existing store via the NODE_ROW_COLUMNS offsets (zero-copy, data-flow rule 1) — a read-side helper/test at most, never a storage change; any Lance-level projection idea is a later measurement question (truth-architect gate). (3) **L3 interchange — "defining arrow schemas is bullshit and hallucination because we already have a working SoA schema."** The five-column triple-schema idea (and my Addendum-10 bullet endorsing a "schema family") is withdrawn: extraction output lands as node rows + facets in the existing canon layout through the W1b cast path; Lance writes LE bytes from the envelope-described store. Survivors: minter@sha provenance stamps + ndjson as the diffable golden layer — artifacts around the store, never a second schema.

## 2026-07-02 — E-V3-XSESSION-INTAKE-1: three sibling-session wishlists triaged — C6 RouteBucketTyped merged, emission_scan minted, OGAR quick wins executed, 4 items escalated to operator ruling
**Status:** FINDING (intake + dispositions; full table in .claude/handovers/2026-07-02-cross-session-wishlist-intake.md)

Three parallel sessions (ruff/medcare, a second #630 reviewer, op-nexgen) forwarded post-#630 wishlists. Executed in this arc: (1) **L1/C6** — `RouteBucketTyped` (kind-generic sibling of RouteBucket + `?Sized` blanket bridge, codex-reviewed on nexgen PR #8) merged verbatim from nexgen's `vendor/AdaWorldAPI-lance-graph/codegen_spine.diff` into `contract::codegen_spine` — 12/12 tests green; nexgen can retire its re-apply-on-every-sync diff. (2) **L2** — `contract::emission_scan` minted as the classid_scan sibling (`TypedForm {Typed, AnyTyped, RecordLink, Stub}` + fold) so typed-DDL adoption is measured identically by every consumer instead of hand-grep (nexgen's 89.5% figure). (3) OGAR-side quick wins (flip fuse test making #628↔#147 lockstep mechanical, COUNT_FUSE two-sided, Genetics 0x0E mint, 0x1000 never-a-port-prefix reservation, post-flip prose sweep, truncation-doctrine DISCOVERY-MAP mirror). Escalated RULING-NEEDED (operator): (a) hi-u16 naming — `domain:appid` (le-contract.md) vs `domain:concept-slot` (OGAR general canon), same u16 described differently in both ledgers; blocks the q2 APP_PREFIX-row guard; (b) EdgeBlock canon wording — lance-graph CANON `key(16)|edges(16)|value(480)` vs OGAR ADR `key(16)+value(496)` — read as reconcilable (edges(16) is a reserved subdivision of OGAR's 496-byte value; lance lock is later, 06-13 vs 06-10) but should collapse to ONE const set both repos pin; (c) per-entry board files (`board/epiphanies/E-<NAME>.md` + generated index) — the prepend-collision rebase tax is real and growing, council-sized change; (d) OGAR probe-ledger Wave A green-light (PROBE-SUBSTRATE-PROPOSAL §9, stale since 06-10, 20+ NOT-RUN probes). Deferred with landing zones: L3 Arrow/Lance columnar triple interchange (five parallel columns s/p/o/f/c — "compiled not parsed" applied to interchange; natural W5 consumer item), L4 DAG-materialization contract flag, E5 ruff Mint→ndjson/Arrow seam (targets the W1b writer/WAL shape — correct that it waited), OGAR fields_for(u32) ClassView custom-half routing (first step to post-P4 64k catalogue), F17 body triage + ogar-from-ruff writes/calls consumption.

## 2026-07-02 — E-V3-GRAPHRAG-INV-1: GraphRAG-rs full inventory — algorithm cookbook, not a dependency; LanceDB support is a 100% stub; InferenceEngine is the doctrine ANTI-exhibit
**Status:** FINDING (full-fidelity inventory, .claude/knowledge/graphrag-rs-inventory.md; corrects the operator's docs.rs pointer gently)

automataIA/graphrag-rs (5 crates, graphrag-core 33 subdirs): every component verdict is REUSE-AS-REFERENCE or IGNORE — nothing to fork/depend (P0 fork policy holds effortlessly). Headline falsifications: (1) **LanceDBStore is a complete NotImplemented stub** (every method errs; Qdrant is their real default) — their "native LanceDB support" is aspirational scaffolding; (2) **"hierarchical Leiden" is single-level** (level hardcoded 0, no coarsening loop — Louvain-with-refinement; refinement phase real and citable); (3) **cAST tree-sitter chunking lives only in an example file**, no src/ module despite README+feature flag; lesson: a Cargo feature compiling is not evidence the capability exists — chase the impl body. Genuinely portable-as-reference: LightRAG dual-level retrieval (trait-isolated merge strategies), HippoRAG PPR (entity/passage dual-weight reset distribution), Ollama KV-cache priming (keep_alive + context two-step), bloom+content-hash snapshot diffing (delta_computation — NOT a WAL; the opposite model to M24's board-as-WAL). API shapes worth stealing: **TypedBuilder type-state pattern** (phantom-typed slots; .build() only exists on TypedBuilder<HasOutput,HasLlm> — compile-error-before-object-exists, exactly what a mailbox/tenant builder wants under I-LEGACY-style invariants), sync/async trait pairs bridged by one adapter module, Boxed* type-alias page, single prelude. Anti-exhibit (operator's pointer corrected): `InferenceEngine` owns only config, takes &KnowledgeGraph as a call parameter, returns Vec (no Result, silent-empty on missing entity) — it is the INVERSE of "Thinking is a struct" (the litmus "free function on a carrier's state → reject" names it exactly); the organ-owning analog the operator sensed is **AsyncGraphRAG** (owns knowledge_graph/document_trees/language_model as fields) + TypedBuilder. Config sprawl (30 config structs) recorded as the anti-pattern our "new column, not new struct" doctrine prevents.

## 2026-07-02 — E-V3-ORACLE-LIVE-1: W3c oracle node measured LIVE — graph-flow overhead is 1-2 ms against an 8.4-8.7 s LLM round trip
**Status:** FINDING (live run, rig 0.39 xai provider, 3 calls ~$0.02; harness in session scratchpad, reproducible)

Expand Down
1 change: 1 addition & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ Membrane consumers can now pull BOTH halves of a render `classid` BBB-safely fro

| PR | Merged | Title | What it added |
|---|---|---|---|
| **#631** | 2026-07-02 | W1b LIVE: WAL batch writer (4 probes green) + M15 rename + temporal synthesis + live oracle numbers | batch_writer implemented: BTreeMap WAL board, ack(cast, LanceVersion) join, delegation cache, never-refuses stacking (probe 4); M15 MulGateDecision rename (W2 unblocked; collapse_gate confirmed 3rd distinct type); operator rulings pinned (zero-copy descriptor casts + eager drain + mutual masking; melden macht frei — freeze retracted; temporal.rs = the read side, replay = QueryReference::at + deinterlace, M24=M25=time-travel ONE mechanism). Measured live: W3c oracle 1-2 ms framework overhead vs 8.4-8.7 s LLM round trip (rig->xAI grok-4 via FlowRunner); JITSON serve.rs = local CI oracle delta. Planner lib 204 + probes 4/4. Merge `c7149eab`. |
| **#630** | 2026-07-02 | V3 W1 START: preflight deltas + WAL writer probes + adoption scan + D-PERT-1 + temporal synthesis | Fable-5 ten-point preflight (M24 board=WAL, W6a baseline inversion, W3 oracle ratchet, W2 probe-first reorder) + operator rulings folded live: zero-copy sink (cast = descriptor never bytes, flush via NodeRowPacket::as_le_bytes), "melden macht frei" (stacked casts never refused — 4 ignored probes define W1b green), temporal.rs deinterlace = the READ side (replay = QueryReference::at + deinterlace; M24/M25/time-travel are ONE mechanism; ack carries LanceVersion). Landed code: batch_writer skeleton + 4 probes; contract::classid_scan (771 green); D-PERT-1 rename (462 green). Audits: planner-SoA type-real/wiring-dormant (M15 GateDecision rename BLOCKING before W2); M7 corrected (NodeRowPacket IS production SoaEnvelope, codex P2); graph-flow benched ~0.4-0.5us/step (two-speed confirmed); M25 KanbanSessionStorage design (graph-flow-kanban envelope exists — wire don't invent). Merge `9a6df2a1`. |
| **#629** | 2026-07-02 | V3 SUBSTRATE consolidated entry point (`.claude/v3/`) + ractor ownership attestation | `.claude/v3/` tree shipped: README (orientation), INTEGRATION-PLAN (W0–W6), COMPONENT-MAP (reuse/repurpose/retire), ENTROPY-MILESTONES (N→1 ledger), MODULE-TABLE (per-file census core/contract/planner), soa_layout/ (LE contract, tenant lanes, consumer map, routing), knowledge/ (substrate primer, mailbox-kanban model, sonnet-worker-guardrails), agents/BOOT.md (4 V3 cards); `/v3` skill + `/v3-audit` command; CLAUDE.md/BOOT.md ★ entrypoint. Review sharpenings folded: LE byte-order range-scan caveat, 3-shape legacy corpus scanner (incl. `0xAAAA_DDCC`), ractor helper-scope ruling (NOT messaging — slow; helper only: spawn/supervision/occasional control RPC). Ownership compile attestation: `KanbanActor<O: MailboxSoaOwner>` `type State = O`, owner MOVES in at pre_start; 22 supervisor tests green on the AdaWorldAPI ractor fork. Merge `28f17cd7`. |
| **#628** | 2026-07-02 | classid canon:custom half-order flip EXECUTED (P0+P1+P2) | `CLASSID_ORDER = CanonHigh` live: canon `domain:appid` HIGH / custom LOW (`0x0701_1000` = `0x07:01::1000`); ONE flippable composition + `classid_canon_compat` (mint-forward both-forms reader — RBAC authorizes pre-flip rows, no re-bake); new-form mint constants + `CLASSID_*_LEGACY` aliases; hhtl dual-form fold; OGAR#95 reconciled (prefix = custom half, values unchanged); ogar pin → `19373a2` (OGAR #147 lockstep). Fleet: OGAR #147 + MedCare #180 + woa-rs #177 merged; q2 #71 + op-nexgen #68 open. Merge `6858118b`. |
Expand Down
12 changes: 12 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,18 @@

---

## #631 lance-graph: W1b LIVE — WAL batch writer implemented, M15 rename, temporal synthesis, live oracle measurements

**Status:** MERGED 2026-07-02 (merge commit `c7149eab`), branch `claude/v3-substrate-migration-review-o0yoxv`.

**Added:** `batch_writer.rs` implementation (BTreeMap board keyed by monotonic CastId; `ack(cast: CastId, version: LanceVersion)` + `acked_version()` — the WAL↔temporal join; `resolve_owner` delegation cache; probe 4 `probe_stacked_casts_never_refused`); `MulGateDecision` rename in planner mul/ (+deprecated alias); plan Addenda 6–9 + EPIPHANIES E-V3-TEMPORAL-DEINTERLACE-1 / E-V3-ORACLE-LIVE-1.

**Locked:** W1b green = the 4 probes (now passing, un-ignored); cast = descriptor never bytes, sink reads live store via `NodeRowPacket::as_le_bytes`, eager drain; **melden macht frei** (no refusal ever — mutation-freeze retracted as contradicting "updates reprioritize, never gate"); **replay = `QueryReference::at(v, rung)` + `deinterlace`** (M24 crash-replay = M25 session-replay = Lance time-travel, ONE mechanism; no-refusal PROVABLE via Strict-reader horizon); W3c budget = the LLM round trip (measured: 1–2 ms framework vs 8.4–8.7 s oracle — orchestration is free); rig = oracle client only; JITSON serve.rs = the local zero-cost CI oracle (W3b test bench).

**Deferred:** W2b real-owner KanbanActor probe; W2a board-as-tenant; KanbanSessionStorage impl (W3b); W6a CLI wrapper + t₀ corpus run; GraphRAG-rs inventory verdict (worker in flight at merge time — lands next arc).

**Confidence (2026-07-02):** HIGH — probes 4/4, planner lib 204 green, live API evidence with reproducible harness in session scratchpad.

## #630 lance-graph: V3 W1 START — preflight deltas, WAL-shaped writer probes, adoption-scan baseline, D-PERT-1, temporal synthesis

**Status:** MERGED 2026-07-02 (merge commit `9a6df2a1`), branch `claude/v3-substrate-migration-review-o0yoxv`.
Expand Down
Loading
Loading