Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 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)

Live numbers (this container, via HTTPS proxy, XAI_API_KEY): T1 direct grok-3-mini connectivity smoke 2958 ms ("OK"). T2/T3: the W3c oracle-node shape — a graph_flow::Task whose run() consults a rig agent (grok-4-0709, max_tokens 64, FailureTicket pronoun-disambiguation prompt) — executed through GraphBuilder + FlowRunner + InMemorySessionStorage: e2e 8660/8406 ms, API 8658/8405 ms, **framework overhead 2/1 ms**. Both runs Completed; the oracle answered the disambiguation correctly ("it" = the board, animacy reasoning). Verdict: the orchestration layer costs SIX orders of magnitude less than the oracle call it wraps — W3c's budget is purely the LLM round trip (seconds), reinforcing oracle-frequency-only (never per-transition) and the two-speed split. Ergonomics: the whole oracle node is ~30 lines; three frictions: rig-core's lib name is rig_core (not rig), .agent() needs the rig_core::client::CompletionClient trait in scope, errors map via graph_flow::GraphError::TaskExecutionFailed. Operator references folded: (a) rs-graph-llm IS the LangGraph-inspired Rig-integrated stateful/interruptible handler by design (author's framing; the queue-vs-state debate in that thread is answered in V3 by the kanban board being BOTH — WAL intent log + state); (b) GraphRAG-rs (automataIA/graphrag-rs) noted as RAG-side prior art with native LanceDB/Arrow support, Leiden, LightRAG, cAST tree-sitter chunking — candidate reference for the retrieval stages, not a dependency decision; (c) test-bench delta: planner serve.rs (Axum, OpenAI-compatible /v1/chat/completions, JITSON behind it) can serve as a LOCAL zero-cost oracle endpoint via rig's openai-compatible provider + graceful retry — the self-hosted langgraph test bench for CI (no external key, no spend).

## 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)

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 |
|---|---|---|---|
| **#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`. |
| **#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`. |
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 @@

---

## #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`.

**Added:** `lance-graph-planner::batch_writer` skeleton (`BatchWriter<P>`, `CastId`; todo! bodies) + 4 ignored probes in `tests/w1_probes.rs` (ahead-ordering, kill-after-cast replay, delegation miss-then-hit, stacked-casts-never-refused) — W1b green = fill bodies + un-ignore; `contract::classid_scan` (`ClassidForm` mirroring `classid_canon_compat`, `count_adoption`, 10 tests, zero bit math); D-PERT-1 (`ResonanceDto` → `PerturbationDto`, 8 files, deprecated alias; perspectival awareness_dto untouched); plan Addenda 1-8 + entropy rows M24 (board = WAL) / M25 (KanbanSessionStorage); rs-graph-llm sibling branch carries `dispatch_bench.rs`.

**Locked:** cast = DESCRIPTOR never bytes; sink flushes via `NodeRowPacket::as_le_bytes` (zero-copy incl. through the writer); **melden macht frei** — the writer NEVER refuses stacked casts (WAL entries, natural coalescing via live-store reads); **temporal.rs is the read side** — replay = `QueryReference::at(v, rung)` + `deinterlace` (M24 crash-replay = M25 session-replay = time-travel, ONE mechanism); W1b `ack` carries the assigned `LanceVersion` (CastId↔LanceVersion = the WAL↔temporal join); M15 GateDecision rename BLOCKING before any planner→kanban emission; rig = oracle-frequency only (2 history clones/call); graph-flow = replayable orchestration layer (~0.4-0.5 µs/step measured), ExecTarget keeps the hot path.

**Corrections shipped in-arc:** M7 premise ("zero production SoaEnvelope impls") FALSE — `NodeRowPacket<'a>` (canonical_node.rs:1275) is the live Lance byte path (codex #630 P2; surfaces ruled complementary); Addendum-6 mutation-freeze retracted by operator ruling (Addendum-7).

**Deferred:** W1b implementation (fill todo!s, un-ignore probes, ack-with-LanceVersion reshape); W6a CLI wrapper + real-corpus t₀ (no classid-keyed corpora in container); W2b real-owner KanbanActor probe; M21 canon-node-bytes extraction; KanbanSessionStorage impl (W3b).

**Docs:** `.claude/v3/INTEGRATION-PLAN.md` Addenda 1-8; EPIPHANIES E-V3-PREFLIGHT-1 (+CORRECTION), E-V3-KANBAN-SESSION-1, E-V3-PLANNER-SOA-AUDIT-1, E-V3-GRAPHFLOW-BENCH-1, E-V3-TEMPORAL-DEINTERLACE-1; ops: AdaWorldAPI/burn 403 build wall on rs-graph-llm/rig workspace roots.

**Confidence (2026-07-02):** HIGH — contract 771 + thinking-engine 362 + shader-driver 100 green; probes compile (4 ignored by design); codex threads resolved + reacted.

## #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`.
Expand Down
4 changes: 2 additions & 2 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ 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 | 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-W1b | Ahead-firing batch writer (cast pairing + AHEAD KanbanMove at cast) | planner-adjacent | In PR | 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 PR | 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 |
Expand Down
2 changes: 1 addition & 1 deletion .claude/v3/ENTROPY-MILESTONES.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
| M12 | 2 budget concepts (elevation `PatienceBudget` per-strategy vs the −550_000 µs Libet anchor per-cycle) | one budget allocator (elevation extended as the 550 ms scheduler, W2d) | elevation reads/writes the Libet anchor; doc cross-ref both ways | QUEUED (W2d) |
| M13 | 2 "OGAR action" concepts (elixir_template::OgarAction enum vs contract `action::ActionDef`+CapabilityExecutor RBAC gate) | keep BOTH (different jobs) — collapse the NAME ambiguity via explicit disambiguation in every doc/brief | guardrails §2 row (done) + compiled-templates.md disambiguation; grep unqualified "OGAR action" in briefs = zero | IN-FLIGHT (doc-side done this PR) |
| M14 | 3 `BindSpace` concepts (shader-driver singleton SoA; ladybug 8:8 dispatch table; graph/spo/merkle store) + stale "BindSpace" prose | scoped names; shader singleton RETIRES (M4); prose sweep to MailboxSoA vocabulary | grep bare `BindSpace` in doc comments describing per-mailbox mechanisms = zero | QUEUED (doc sweep + W7) |
| M15 | 2 `GateDecision` types (mul::{Flow,Hold,Block} live kanban gate vs collapse_gate::{gate,merge} write-merge) — the documented GATE-1 clash + 3 "CollapseGate" vocabulary users | rename the write-merge one (e.g. `WriteMergeGate`) and/or the dispersion op (`ResonanceDispersionGate`); mul::GateDecision keeps the name | grep `GateDecision` resolves to ONE type per import; cycle_accumulator GATE-1 note closed | RULING-NEEDED (rename choice) |
| M15 | 2 `GateDecision` types (mul::{Flow,Hold,Block} live kanban gate vs collapse_gate::{gate,merge} write-merge) — the documented GATE-1 clash + 3 "CollapseGate" vocabulary users | rename the write-merge one (e.g. `WriteMergeGate`) and/or the dispersion op (`ResonanceDispersionGate`); mul::GateDecision keeps the name | grep `GateDecision` resolves to ONE type per import; cycle_accumulator GATE-1 note closed | RESOLVED 2026-07-02: planner-local renamed MulGateDecision + deprecated alias (M15 worker; contract kanban gate keeps name; collapse_gate FLOW_XOR confirmed a THIRD distinct type, engine_bridge consumer) — grep GateDecision now resolves uniquely per import |
| M16 | 3 independently-invented fail-closed deferral patterns (RuntimeError::NotImplemented / EquivalenceClass::Failure-note / CompileError::NotImplemented) | one documented convention (not a new abstraction) | a §-note in compiled-templates.md naming the pattern; new deferrals cite it | QUEUED (doc-only) |
| M17 | 2 control-flow vocabularies with a FALSE 1:1 claim (graph-flow NextAction×6 vs template linear-only) | honest mapping: Step↔Task + ogar_name()↔Task::id(); control flow closed by StepMask/ControlSignal (W3a/b) | adapter tests replay a template with WaitForInput/End/GoTo semantics; compiled-templates.md corrected (this PR) | IN-FLIGHT (doc corrected; code W3) |
| M18 | 2 lifecycle vocabularies (planner sigma chain Ω→Δ→Φ→Θ→Λ vs KanbanColumn 6 phases) with no documented mapping | a documented mapping (or an explicit "orthogonal" ruling) | one table in mailbox-kanban-model.md; both modules cross-ref it | RULING-NEEDED |
Expand Down
17 changes: 17 additions & 0 deletions .claude/v3/INTEGRATION-PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -328,3 +328,20 @@ Operator: "check temporal.rs for a deeper understanding." Verified against
dispatchable = time-admitted AND data-ready — the standing rule
"updates reprioritize, never gate" holds because a data-blocked row is
dropped from the PROJECTION, not refused at the writer.

### Addendum-9 2026-07-02 — W3c oracle measured LIVE + the self-hosted test bench

- **Live numbers** (rig xai, grok-4-0709 oracle through FlowRunner):
framework overhead **1-2 ms** vs **8.4-8.7 s** LLM round trip. W3c's
budget IS the LLM call; orchestration is free. Full data:
E-V3-ORACLE-LIVE-1.
- **Test-bench delta (operator):** wire rig's OpenAI-compatible provider
at the planner's serve.rs (`/v1/chat/completions`, JITSON behind it)
as the LOCAL oracle for CI — zero external spend, no key, graceful
retry wrapping for a typical langchain-style bench. Lands with W3b's
KanbanSessionStorage tests.
- **References:** rs-graph-llm's stated design (LangGraph-inspired,
Rig-integrated, interruptible-by-design, step-by-step default) matches
the W3b role exactly; the thread's queue-vs-stateful debate is resolved
in V3 by the kanban board being both (M24 WAL + state). GraphRAG-rs
noted as RAG prior art (native LanceDB/Arrow, Leiden, LightRAG, cAST).
2 changes: 1 addition & 1 deletion crates/lance-graph-planner/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ use crate::selector::StrategySelector;
use crate::traits::*;

// Re-export key types for ergonomic API
pub use crate::mul::gate::GateDecision as Gate;
pub use crate::mul::gate::MulGateDecision as Gate;
pub use crate::mul::SituationInput;
pub use crate::thinking::style::{FieldModulation, ScanParams, ThinkingCluster, ThinkingStyle};
pub use crate::thinking::ThinkingContext;
Expand Down
Loading
Loading