Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
## 2026-07-02 — E-V3-TEMPORAL-DEINTERLACE-1: temporal.rs is the read side of the WAL ruling — replay = a read at a pinned QueryReference
**Status:** FINDING (operator pointer to planner temporal.rs; unifies M24 + M25 with the deinterlace machinery)

planner/src/temporal.rs already ships the four-clock deinterlace (lance version stream / surrealql knowable_from / ractor per-actor V_ref / thinking trajectory; HLC key (server_id, lance_version, hlc_tick); EpistemicMode rung ladder Strict/Aware/Retro; two-axis dispatchable = time-admitted AND data-ready via DependsClosure). Three consequences for W1: (1) stacked-casts-never-refused is PROVABLE — no reader reads raw state, a Strict reader at V_ref cannot observe unacked/future frames, so write-side gating is structurally unnecessary ("the write masks the thinking and vice versa" = the epistemic classification IS the mask); (2) M24 crash-replay, M25 session-replay, and Lance time-travel are ONE mechanism — QueryReference::at(v, rung) + deinterlace; KanbanSessionStorage implements no new replay machinery; (3) the W1b ack signature carries the assigned LanceVersion — CastId <-> LanceVersion is the join between the WAL board and the temporal classifier; unacked casts = rows on no reader's timeline yet. Bonus: the ractor actor's true payload is its V_ref reading-horizon (helper-scope, again).

## 2026-07-02 — E-V3-PREFLIGHT-1-CORRECTION: "SoaEnvelope has zero production impls" was FALSE — NodeRowPacket is live
**Status:** CORRECTION (of E-V3-PREFLIGHT-1 delta 2 / M7; caught by codex on #630, verified canonical_node.rs:1275)

`impl<'a> SoaEnvelope for NodeRowPacket<'a>` ships in production: the Lance-facing zero-copy envelope exposing `&[NodeRow]` as LE bytes (columns = NODE_ROW_COLUMNS, stride = NODE_ROW_STRIDE, as_le_bytes over repr(C, align(64)) with const size asserts). The preflight repeated the fleet M7 row's claim without an impl-grep — the same unverified-coverage-claim failure mode guardrails rule 10 exists for, now demonstrated on the orchestrator itself. Revised M7: SoaEnvelope (storage boundary: certification + canonical Lance byte path) and MailboxSoaView/Owner (runtime read/mutate) are COMPLEMENTARY surfaces; W1 routes storage bytes through the NodeRowPacket envelope path and tests its owner/byte-layout behavior. Process rule reinforced: negative-existence claims in rulings get the same exhaustive-grep declaration as worker reports.

## 2026-07-02 — E-V3-GRAPHFLOW-BENCH-1: graph-flow measured at ~0.4-0.5 us/step; KanbanSessionStorage needs the delta layer — which ALREADY EXISTS (graph-flow-kanban)
**Status:** FINDING (bench + static inventory, file:line cites in AGENT_LOG; W2e input + M25 feasibility call)

Measured (release, batch 4096 steady-state, shared container): graph-flow dispatch ~408-471 ns/task-step on the ContinueAndExecute path, ~512-538 ns stepwise — the ~80-100 ns delta IS the per-step SessionStorage get+save round-trip. Verdict for W2e two-speed: graph-flow is a sub-microsecond-ADJACENT orchestration layer, NOT the sub-us hot path (batch-1 noise spans 465-929 ns) — hot dispatch stays with ExecTarget, graph-flow owns the replayable plan/orchestration path. Exactly the operator's two-speed ruling, now with numbers. rig: Task-wrapping is production-proven (recommendation_flow.rs:180-248, generic-over-CompletionModel is the right shape — the openai Client::agent now returns the Responses-API model type); per-call cost = TWO full chat-history clones + a tool-def fetch even with zero tools (agent/completion.rs:571-586, ~200-380) — fine at oracle frequency (once per FailureTicket), prohibitive per kanban transition. rig fork = upstream-faithful 0.39.0 + 3 infra commits (toolchain pin, surrealdb-fork wiring, kv-lance-only features). M25 feasibility: SessionStorage is OVERWRITE semantics (save(Session) by value; all three impls upsert wholesale) — replay-from-moves requires a delta/event layer on top. THE DELTA LAYER ALREADY EXISTS: rs-graph-llm/graph-flow-kanban::KanbanPlanEnvelope accumulates an append-only moves: Vec<KanbanMove> (lib.rs:89,173-198) consuming lance_graph_contract kanban types + mul::GateDecision — wire, don't invent: KanbanSessionStorage = snapshot upsert (SessionStorage) + move cast through the W1b writer (the envelope's log), replay = snapshot + move log. Build wall recorded: workspace-root cargo in rs-graph-llm/rig 403s on the AdaWorldAPI/burn git submodule (via surreal-lance optional deps) even when the feature is OFF — lockfile-resolution behavior; isolated path-dep crates build clean; affects any sandboxed CI of those roots.

## 2026-07-02 — E-V3-PLANNER-SOA-AUDIT-1: planner SoA is TYPE-LEVEL reality, wiring-level dormant — the gap is exactly the planner boundary
**Status:** FINDING (grep-verified inventory, file:line cites in AGENT_LOG; answers operator "is the planner SoA already reality?")

The unified coupling EXISTS at the contract level: KanbanMove (kanban.rs:151) already carries mailbox + witness_chain_position + libet_offset_us + exec:ExecTarget in one <=16B Copy struct, and KanbanColumn::advance_on_gate consumes contract mul::GateDecision. WIRED: supervisor KanbanActor (contract types verbatim, zero duplication), lance-graph core SoA reads (mailbox_scan.rs, markov_soa.rs, scheduler.rs — real generic MailboxSoaView consumers), symbiont POC owner. DORMANT: (a) planner emission — style_strategy.rs is an honest pass-through ("faking a KanbanMove would be theatre"), batch_writer is the W1e todo! skeleton; (b) KanbanActor integration — only ever spawned over its own TestBoard, NEVER over the production MailboxSoA<N> (mailbox_soa.rs:786). ABSENT: (c) lance-graph-planner never references MailboxSoaView/Owner AT ALL (zero grep hits; depends only on contract); (d) OGAR/classid awareness in planner + supervisor — zero hits both; (e) planner mul/gate.rs GateDecision {Proceed,Sandbox,Compass} is a FALSE FRIEND of contract mul::GateDecision {Flow,Hold,Block} (GATE-1/M15) — the planner's gate never reaches advance_on_gate. Consequences folded into the plan: W1b closes (a); W2b gains a spawn-over-real-MailboxSoA<N> integration probe for (b); W2 gains a classid-awareness wiring item for (c)+(d) — MailboxSoaView ALREADY exposes class_id, wire don't invent; M15 rename upgraded to blocking-before-W2 (the collision would silently route the wrong gate into the kanban arc).

## 2026-07-02 — E-V3-KANBAN-SESSION-1: graph-flow SessionStorage backed by the mailbox kanban board = the replayable langgraph handler
**Status:** FINDING (operator direction + Fable-5 synthesis; M25 + W3b sharpening in .claude/v3/)

Operator: rs-graph-llm under lance-graph "might need some kanban integration to become the replayable langgraph handler." The convergence: graph-flow persists Session state through a SessionStorage trait; the V3 substrate persists write intent through the kanban board (M24: board = WAL). ONE surface: KanbanSessionStorage — task transitions = KanbanMoves cast through the W1b writer; replay = rebuild the Session from the board. Every langgraph execution becomes replayable by construction, ownership rides the cast pairing (never a DTO field), and the M18 sigma-chain/KanbanColumn mapping gains a concrete consumer. Bench worker measures graph-flow per-step overhead (batch 1/64/4096) for the W2e two-speed decision; rig is the W3c oracle-node client, never hot-path.

## 2026-07-02 — E-V3-PREFLIGHT-1: Fable-5 ten-point preflight over every V3 layer (operator-requested, pre-W1)
**Status:** FINDING (plan deltas folded into INTEGRATION-PLAN.md Addendum 2026-07-02)

Headline collapses: (1) the kanban board IS the write-ahead log — cast = move = intent, ack = confirmation; W1b/W1c are one object, crash recovery free (M24). (2) M7 ruling rec: SoaEnvelope re-scoped as spec/certification surface (verify_layout + field-isolation matrix are the value; zero production impls of the trait). (3) Baseline inversion: W6a scanner runs at W1 START — adoption-100% needs a measured t0 denominator. (4) W3 oracle ratchet: oracle-hit rate must trend down vs catalogue size or deterministic-first is silently dead. (5) W2 reorder probe→budget→arms; budget constants measured not guessed; probe at batch 1/64/4096; loser owns slow path. (6) Ractor batching by API shape (Vec<KanbanMove> per message). (7+8) Pull-forwards: D-PERT-1 and M21 canon-node-bytes ride W1. (9) Gate-run rule: wave PRs end with /v3-audit + touched M-row greps in AGENT_LOG. (10) Supervisor stays thin — the product is the compile-time ownership attestation, not runtime supervision. Test applied throughout: every item is a collapse/reorder of existing machinery, none invents a layer.

## 2026-07-02 — E-V3-PLANNER-TWO-NATURES-AND-SPEED-PROBE (operator: planner too slow for sub-µs; resonance-based thinking is not DataFusion)
**Status:** FINDING (operator-ruled; speed claim probe-gated per truth-architect discipline)

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 |
|---|---|---|---|
| **#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`. |
| **#627** | 2026-07-02 | classid canon:custom flip TRIGGERED (doc-only) | Operator ruling recorded + `classid-canon-custom-flip-v1.md` ACTIVE: canon `domain:appid` → hi u16, custom (`0x1000` temporary marker) → lo; `0x0701_1000` / `0x07:01::1000`; OSINT low byte = appid space (zero vocab rows, OGAR #146 67→65 fuse balanced); q2 gate WAIVED; ISSUES ×4 resolved/ruled; codex P2 guards locked (class_id via `classid_canon(id)` never `as u16`; legacy keys demote not retire). Merge `c8e1ec4`. |
| **#626** | 2026-07-02 | V3 convergence wiring: tenant-carve certification, RungElevator, P6 wave probe, seam-list plan | "Wire, don't invent": `RungLevel::{from_u8,elevate,de_elevate,pearl_level,causal_mask_bits}` + `RungElevator` (sustained-BLOCK policy over P2/P3-certified masks; converged with `escalation::rung_delta` via `apply_delta` — one ladder, two signal sources) wired through the driver (persistent elevator, `ctx.rung=1` proxy retired, grpc rung saturates-never-wraps per codex P2); BOTH V3 tenant carves matrix-certified (Cognitive + Compressed); P6 probe (wave dist == certified palette read, markov_soa verified); `[patch.crates-io] ndarray` → local sibling path (fetch deadlock gone; first in-sandbox core build, 925/925). Plan `v3-convergence-wiring-v1.md`; worker Rule 7. Branch `claude/v3-substrate-migration-review-o0yoxv`, merge `5aaee33`. |
Expand Down
16 changes: 16 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,22 @@

---

## #629 lance-graph: V3 SUBSTRATE consolidated entry point — `.claude/v3/` tree + mailbox-kanban doctrine + ractor ownership attestation

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

**Added:** `.claude/v3/` — README.md (orientation + doc map, the session entry point), INTEGRATION-PLAN.md (W0–W6 wave plan), COMPONENT-MAP.md (every subsystem: reuse / repurpose / retire), ENTROPY-MILESTONES.md (systematic N→1 collapse ledger), MODULE-TABLE.md (per-file census of core / contract / planner), soa_layout/ (LE contract, tenant lanes, consumer map, routing), knowledge/ (v3-substrate-primer, mailbox-kanban-model, sonnet-worker-guardrails — MANDATORY in every Sonnet worker brief), agents/BOOT.md (the four V3 cards: v3-mailbox-warden, v3-envelope-auditor, v3-kanban-executor-engineer, v3-template-smith); `/v3` skill (bootload) + `/v3-audit` command (mechanical conformance greps); CLAUDE.md + BOOT.md ★ V3 entrypoint sections.

**Locked:** any session touching SoA rows / tenants / mailbox ownership / kanban / thinking templates / classids / the DTO ladder STARTS at `.claude/v3/README.md`; **no singleton CollapseGate** (one mailbox = one kanban board as tenant); SoaEnvelope LE ownership (`mailbox_owner()`, write-on-behalf iron rule); compiled thinking templates (elixir-template × StepMask, Rig as oracle, compile-down direction only); classid canon-high + the `0x1000` V3-adoption monitor; PerturbationDto/Resonance split (D-PERT-1); **ractor scope (operator-ruled): NOT for messaging (slow) — helper only** (spawn, supervision, occasional serialized control RPC), hot dispatch stays with the D-V3-W2e-probed ExecTarget; mailbox-as-owner is compiler-enforced — `KanbanActor<O: MailboxSoaOwner>` has `type State = O`, the owner MOVES into the actor at `pre_start` (attested: 22 supervisor tests green, `--features supervisor`, AdaWorldAPI ractor fork per P0).

**Corrections shipped in-arc (review threads):** LE byte-order caveat — domain range-scans go over the DECODED u32 (or big-endian keys), never raw LE key-byte prefixes (`to_le_bytes` puts the custom byte first); legacy corpus scanner widened to all THREE legacy shapes incl. `0xAAAA_DDCC` render-prefix-high (the `classid_canon_compat` CanonLow set).

**Deferred:** W1–W6 wave execution (plan is the map, not the work); template-catalogue dispatch (post-P4); `0x1000` marker retirement (P4, operator checkpoint — unchanged from #628).

**Docs:** the `.claude/v3/` tree IS the doc deliverable; EPIPHANIES + AGENT_LOG entries in-arc (incl. the ractor helper-scope ruling + ownership compile attestation, and the disk-quota ops note).

**Confidence (2026-07-02):** HIGH — doc/governance arc + supervisor crate attestation; 22 supervisor tests green; review threads resolved + reacted.

## #628 lance-graph: classid canon:custom half-order flip — P0 route-through + P1 CanonHigh + mint-forward compat reader

**Status:** MERGED 2026-07-02 (merge commit `6858118b`), branch `claude/v3-substrate-migration-review-o0yoxv`. Executes plan phases P0+P1 (+P2 by construction); the fleet consumer PRs rode the same arc.
Expand Down
8 changes: 4 additions & 4 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Plan: `.claude/v3/INTEGRATION-PLAN.md` (stub: `.claude/plans/v3-substrate-integr
| D-V3-W0a | `.claude/v3/` tree (README, plan, COMPONENT-MAP, ENTROPY-MILESTONES, MODULE-TABLE, soa_layout/*) | docs | Shipped (this PR) | complete: 7/7 mappers synthesized; MODULE-TABLE = 304/304 files (21/21 census chunks); soa_layout 5/5 docs |
| D-V3-W0b | V3 awareness layer (knowledge docs, v3-* agent cards, /v3 skill, /v3-audit command, CLAUDE.md+BOOT.md entrypoints) | docs | Shipped (this PR) | 4 knowledge docs, 4 cards, skill+command registered |
| D-V3-W1a | SoaEnvelope::mailbox_owner() ownership stamp | lance-graph-contract | Shipped | this branch; 775 contract tests green |
| D-V3-W1b | Ahead-firing batch writer (cast pairing + AHEAD KanbanMove at cast) | planner-adjacent | Queued | plan W1 |
| D-V3-W1c | Delegation cache (cast id vs envelope stamp) | batch writer | Queued | plan W1 |
| D-V3-W1d | MailboxId minting path (non-zero owners, uniqueness debug_assert) | contract | Queued | plan W1 |
| D-V3-W1e | Probes: ahead-update ordering + delegation miss | contract/planner | Queued | probe-first gate for W2 |
| D-V3-W1b | Ahead-firing batch writer (cast pairing + AHEAD KanbanMove at cast) | planner-adjacent | In progress | W1 STARTED 2026-07-02; WAL-shaped per preflight addendum (M24: cast = intent record) |
| D-V3-W1c | Delegation cache (cast id vs envelope stamp) | batch writer | In progress | W1 STARTED 2026-07-02; collapses into W1b writer (M24) |
| D-V3-W1d | MailboxId minting path (non-zero owners, uniqueness debug_assert) | contract | In progress | W1 STARTED 2026-07-02 |
| D-V3-W1e | Probes: ahead-update ordering + delegation miss | contract/planner | In PR | W1 STARTED 2026-07-02; probe lands FIRST (probe-first gate) + kill-after-cast replay test (M24) |
| D-V3-W2a | Per-mailbox kanban board as TENANT | contract | Queued | field-isolation matrix mandatory |
| D-V3-W2b | Supervisor wiring: moves via MailboxSoaOwner::advance_phase | lance-graph-supervisor | Queued | plan W2 |
| D-V3-W2c | symbiont SurrealDB-on-kv-lance arm | symbiont | Blocked (kv-lance fork coordinates) | POC = kanban_loop.rs |
Expand Down
Loading
Loading