feat(contract): D-MBX-A6 Phase 1 — planner⟷ractor⟷surreal meta-DTO (kanban + soa_view + StepDomain::Kanban)#437
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a mailbox kanban contract and a zero-copy SoA read/owner trait pair, exposes them from the crate root, wires StepDomain::Kanban into orchestration parsing/profile/Display, and records the work in project board and epiphany docs. ChangesKanban and SoA View Contract Slice
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5fce0a5c97
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // These are NOT vertical-facing; they execute the cycle, not | ||
| // the policy. Starter values — tune empirically. | ||
| Self::Crew | Self::Ladybug | Self::N8n | Self::LanceGraph | Self::Ndarray => { | ||
| Self::Crew | Self::Ladybug | Self::N8n | Self::LanceGraph | Self::Ndarray | Self::Kanban => { |
There was a problem hiding this comment.
Format the new match arm to keep contract CI green
This added Self::Kanban arm is not in rustfmt's expected shape: running rustfmt --check on the modified contract files rewrites this single-line pattern into a multi-line arm. Since AGENTS.md marks cargo fmt --manifest-path crates/lance-graph-contract/Cargo.toml -- --check as a mandatory CI-gated check for this crate, this commit will fail the contract formatting gate until this arm is rustfmted.
Useful? React with 👍 / 👎.
…437) Split the over-width StepDomain catch-all pattern multi-line + drop redundant block braces, matching pinned-toolchain (1.95.0) rustfmt. Scoped to the one arm/ file I modified; the crate's pre-existing fmt deviations (14 other files) untouched. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…O (kanban + soa_view + StepDomain::Kanban) Wire lance-graph-planner, ractor (mailbox/supervisor), and surrealdb (surreal_container's transparent SoA view) through the canonical OrchestrationBridge surface — no parallel DTO family (lab-vs-canonical ruling). - kanban.rs: KanbanColumn (4-phase Rubicon + 2 terminal exits) + KanbanMove (Copy, <=16B; MailboxId + witness_chain_position pointer + Libet -550ms anchor). - soa_view.rs: MailboxSoaView (zero-dep borrow trait, &[T] columns = the transparent zero-copy SoA view, R1 'one SoA never transformed') + MailboxSoaOwner (advance_phase; read/owner split makes 'view is read-only' structural). - orchestration.rs: StepDomain::Kanban variant + 'kanban.' prefix (additive-safe). Contract stays zero-dep; consumers implement the traits (dependency inversion). 485 contract lib tests green (+6); planner/cognitive-shader-driver/supervisor cargo-check clean. Consumer impls deferred to follow-up slices. Board hygiene (same commit): LATEST_STATE inventory + STATUS_BOARD D-MBX-A6-P1 + EPIPHANIES E-SOA-VIEW-IS-A-BORROW + AGENT_LOG run. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…AP findings EW64 = CPU-style predictive prefetch co-issued with CE64 into the shader; (4x4)^4 L1-4 from cortex/hippocampus; Hebbian = CE64/EW64 SoA1:SoA2 superposition (design basis for the EpisodicWitness64 follow-up). DTO hunt: ResonanceDto duplicated (2 defs in thinking-engine = TD-RESONANCEDTO-DUP-1); StreamDto/BusDto single-def Wire DTOs; P64 = convergence crate. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…437) Split the over-width StepDomain catch-all pattern multi-line + drop redundant block braces, matching pinned-toolchain (1.95.0) rustfmt. Scoped to the one arm/ file I modified; the crate's pre-existing fmt deviations (14 other files) untouched. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
b9516d6 to
c5a319b
Compare
…k (Cognitive-RISC N1) Expose the per-row class/shape discriminator on the SoA view: class_id()/class_id_at() alias the existing entity_type u16 slot (= OGIT EntityTypeId), so the class hook lands with ZERO new column (R1 'one SoA never transformed') and zero new dep. Class machinery (labels/projection/jinja templates) resolves one layer up via lance-graph-ontology, never in the SoA/kv-lance columns. This is the freeze-time N1 hook; aerial+ (#436) is the discovery engine that populates it. Board: EPIPHANIES E-ARIGRAPH-IS-AN-ISLAND (dead-wiring audit, machete-corroborated) + E-AERIAL-IS-THE-DISCOVERY-PROPOSER (synergy synthesis). 485 contract tests green; soa_view.rs rustfmt-clean. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude/board/EPIPHANIES.md:
- Line 22: The line starting with the PR reference "`#436` shipped
`crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this
arc + Cognitive-RISC:" is being parsed as a Markdown heading; escape the hash or
wrap the PR number in backticks so it is rendered as plain text (e.g., change
"`#436`" to "\`#436`" or to "`#436`") to fix the MD018 warning while keeping the
rest of the sentence unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: c669265f-13df-4689-80bb-eeb20f92d4e2
📒 Files selected for processing (2)
.claude/board/EPIPHANIES.mdcrates/lance-graph-contract/src/soa_view.rs
🚧 Files skipped from review as they are similar to previous changes (1)
- crates/lance-graph-contract/src/soa_view.rs
|
|
||
| **Status:** FINDING (synergy synthesis, post-#436 rebase, 2026-05-30). | ||
|
|
||
| #436 shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this arc + Cognitive-RISC: |
There was a problem hiding this comment.
Escape the PR reference so it doesn’t become a heading.
#436 shipped ... is parsed as an H1 heading, which breaks document structure and triggers MD018. Escape the hash or wrap the PR number in backticks.
Suggested fix
-#436 shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this arc + Cognitive-RISC:
+PR `#436` shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this arc + Cognitive-RISC:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #436 shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this arc + Cognitive-RISC: | |
| PR `#436` shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM transcode). Synergies with this arc + Cognitive-RISC: |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 22-22: No space after hash on atx style heading
(MD018, no-missing-space-atx)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude/board/EPIPHANIES.md at line 22, The line starting with the PR
reference "`#436` shipped `crates/lance-graph-arm-discovery` (Aerial+ ARM
transcode). Synergies with this arc + Cognitive-RISC:" is being parsed as a
Markdown heading; escape the hash or wrap the PR number in backticks so it is
rendered as plain text (e.g., change "`#436`" to "\`#436`" or to "`#436`") to fix
the MD018 warning while keeping the rest of the sentence unchanged.
…-onto-SoA) + aerial->EW64 prefetch wiring F-RESONANCEDTO-IS-LAYERED-NOT-DUP: dto.rs (raw energy field) vs awareness_dto.rs (gestalt+user-model) are two layers, a name collision masking the missing qualia/gestalt -> i4-32D thinking-style/atom/strategy(elixir/jit/JITson) integration; NARS = the think-about-thinking meta-layer. Resolution = disambiguate + integrate onto the one SoA, not delete. E-AERIAL-FEEDS-EW64-PREFETCH: aerial's mined X->Y associations are the predictive-prefetch table EW64 consumes (fire-together -> wires-together). https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…its semantic/episodic edge duality
E-ARIGRAPH-PAPER-GROUNDS-CE64-EW64: Es semantic edges = CE64; Ee episodic edges
('happened at the same time') = EW64 = the witness arc. aerial+ generalizes the
co-occurrence; retrieval = semantic(Contriever, discovery-only float)+episodic search;
Ariadne loop = the 5-layer stack; HHTL/CAM = Wikidata-scale semantic substrate. The
lance-graph arigraph/ port is a faithful island to wire into the hot SoA + cold store.
https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…get strategy tag
Schedule-layer spine for the ractor SoA owner + planner candidate-gen:
- KanbanColumn::{next_phases, can_transition_to} — the Rubicon lifecycle DAG
(Planning->CognitiveWork->Evaluation->{Commit|Plan|Prune}; Planning->Prune Libet
veto; Plan->Planning re-deliberate; Commit/Prune absorbing).
- KanbanColumn::is_absorbing — cycle-END (Commit/Prune, tombstone) vs Plan
(terminal decision that re-deliberates); ractor driver tombstones iff absorbing
(LE-3 cycle-end commit/SLA hooks here).
- MailboxSoaOwner::try_advance_phase — checked default; legal edge -> KanbanMove,
illegal -> RubiconTransitionError (no mutation). Lifecycle enforcement is now a
contract-level testable invariant the ractor driver uses.
- ExecTarget{Native,Jit,SurrealQl,Elixir} on KanbanMove — planner JIT-adjacent
execution-target tag (resolves the #437 deferred NOTE; KanbanMove still <=16 B).
Zero-dep preserved; 489 contract lib tests (+4); planner/shader-driver/supervisor
cargo-check clean. Board: STATUS_BOARD D-MBX-A6-P2 + EPIPHANIES (same commit).
https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…get strategy tag
Schedule-layer spine for the ractor SoA owner + planner candidate-gen:
- KanbanColumn::{next_phases, can_transition_to} — the Rubicon lifecycle DAG
(Planning->CognitiveWork->Evaluation->{Commit|Plan|Prune}; Planning->Prune Libet
veto; Plan->Planning re-deliberate; Commit/Prune absorbing).
- KanbanColumn::is_absorbing — cycle-END (Commit/Prune, tombstone) vs Plan
(terminal decision that re-deliberates); ractor driver tombstones iff absorbing
(LE-3 cycle-end commit/SLA hooks here).
- MailboxSoaOwner::try_advance_phase — checked default; legal edge -> KanbanMove,
illegal -> RubiconTransitionError (no mutation). Lifecycle enforcement is now a
contract-level testable invariant the ractor driver uses.
- ExecTarget{Native,Jit,SurrealQl,Elixir} on KanbanMove — planner JIT-adjacent
execution-target tag (resolves the #437 deferred NOTE; KanbanMove still <=16 B).
Zero-dep preserved; 489 contract lib tests (+4); planner/shader-driver/supervisor
cargo-check clean. Board: STATUS_BOARD D-MBX-A6-P2 + EPIPHANIES (same commit).
https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…D, 3 P0 errors + D-CLS-3 vaporware 5-savant council + 3-brutal review (plan's own §2 + user requested) BEFORE agent spawn. Doctrine sound (classes.md verbatim) but factual errors vs source: (1) 381 OdooEntity consts not 66 (64 curated + 317 EXT_*); (2) class_id already exists (soa_view.rs:61, N1 hook #437) — D-CLS-5 would collide; (3) canonical DolceCategory has 6 variants not 4 (AbstractObject/Region/ Other, no 'Abstract') — D-CLS-1 From-test won't compile. D-CLS-3 vaporware: aerial mine()s rules not clusters entities — downgrade to deterministic group-by-on-structural-hash. Iron-rule YIELDS-WITH-AP: presence!=facet-code wall holds; AP2 — FieldPositionTable must freeze append-only (not recompute from union). Shippable-once-ratified: D-CLS-2(fix count)/4/5(after reconcile). 4 OD gates still blocking. No agent spawns until P0 fixed + OD ratified. https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
…by user reframe User asked: "5x council and 3x brutally honest review." Delivered 8 reviewers in parallel, all Opus, diverse lenses. Vote: 4 retire / 3 amend / 1 restructure on the strategic call. Council unanimous on 7 fact-corrections (F1-F7) regardless. I started auto-executing F1-F7 to the plan. User reframed mid-edit: the entire plan is wrongly framed — it treats class derivation as a NEW design problem when the existing OntologyRegistry (crates/lance-graph-ontology/src/registry.rs) already emits FAISS-IVF-like inverted lists per namespace label via enumerate(), already has per-G ContextBundle as the class-context scaffold (IRI interning + edge_types whitelist), and the class-extraction problem reduces to a group-by over namespace-bitmask across existing rows. PSCustomObject-from-XML pattern, not a design-classes-from-scratch pattern. ~470 LOC traversal, not 4,230 LOC 10-agent fan-out. Stopped editing the plan when the reframe landed. Committing partial work as audit trail; strategic next-step is user choice (a/b/c surfaced in chat). What landed in this commit: - council-verdict.md (NEW, +97 LOC): full 8-reviewer record + F1-F7 corrections + strategic dissent matrix for spec owner - plan v1 partial F1+F2+F3+F5+F7 (5 of 7): §2 OD honesty pass + 5th pre-condition OD-DOLCE-VARIANT-SET + C8 added + D-CLS-5 unified with PR #437's MailboxSoaView::class_id + D-CLS-8/9 council-flagged as deferrable - F4 (D-CLS-10 parent-walker) + F6 (R5 test strengthenings) NOT WRITTEN — intentionally stopped after reframe; polishing wrongly-framed plan - AGENT_LOG: honest record of what landed vs what stopped Key reviewer findings worth flagging in code/spec review later: - B1 verified 3 of 4 plan §2 "spec default-leans" were author-leans presented as spec quotes (third hallucination strike of the week, same pattern as the CLAUDE.md dep-pin hallucination earlier this session) - R3 caught PR #437 already shipped MailboxSoaView::class_id() -> &[u16]; plan was blind to it - R2 caught DolceCategory 4-way variant sets are NAME-INCOMPATIBLE (6 vs 4 vs 4 vs 5 variants); D-CLS-1 re-export path would fail to compile - B2 caught plan OMITS the parent-walker = 1/3 of classes.md:57 bounded- weekend triple Plan v1 is now SUPERSEDED pending user choice on framing reset. https://claude.ai/code/session_017gZ6sPRXYPj5n7uJ7NBtRv
Full-breadth integration spec wiring D-MBX kanban contract through witness commit (D-ATOM-5), surreal LIVE -> Rubicon kanban flip, ExecTarget backends, head2head two-view superposition in the shader driver, EW64-Markov Hebbian prefetch, language->SPO landing (D-LWS), and BindSpace decommission. Grounded against current main (#437/#439/ #444/#445) + two recon passes; flags the two hard blockers (lance-7 witness API, surreal fork dep / OQ-11.6) and the stale-branch caveat. https://claude.ai/code/session_01PLf95mURCY96TvKBFvSWEQ
…by user reframe User asked: "5x council and 3x brutally honest review." Delivered 8 reviewers in parallel, all Opus, diverse lenses. Vote: 4 retire / 3 amend / 1 restructure on the strategic call. Council unanimous on 7 fact-corrections (F1-F7) regardless. I started auto-executing F1-F7 to the plan. User reframed mid-edit: the entire plan is wrongly framed — it treats class derivation as a NEW design problem when the existing OntologyRegistry (crates/lance-graph-ontology/src/registry.rs) already emits FAISS-IVF-like inverted lists per namespace label via enumerate(), already has per-G ContextBundle as the class-context scaffold (IRI interning + edge_types whitelist), and the class-extraction problem reduces to a group-by over namespace-bitmask across existing rows. PSCustomObject-from-XML pattern, not a design-classes-from-scratch pattern. ~470 LOC traversal, not 4,230 LOC 10-agent fan-out. Stopped editing the plan when the reframe landed. Committing partial work as audit trail; strategic next-step is user choice (a/b/c surfaced in chat). What landed in this commit: - council-verdict.md (NEW, +97 LOC): full 8-reviewer record + F1-F7 corrections + strategic dissent matrix for spec owner - plan v1 partial F1+F2+F3+F5+F7 (5 of 7): §2 OD honesty pass + 5th pre-condition OD-DOLCE-VARIANT-SET + C8 added + D-CLS-5 unified with PR #437's MailboxSoaView::class_id + D-CLS-8/9 council-flagged as deferrable - F4 (D-CLS-10 parent-walker) + F6 (R5 test strengthenings) NOT WRITTEN — intentionally stopped after reframe; polishing wrongly-framed plan - AGENT_LOG: honest record of what landed vs what stopped Key reviewer findings worth flagging in code/spec review later: - B1 verified 3 of 4 plan §2 "spec default-leans" were author-leans presented as spec quotes (third hallucination strike of the week, same pattern as the CLAUDE.md dep-pin hallucination earlier this session) - R3 caught PR #437 already shipped MailboxSoaView::class_id() -> &[u16]; plan was blind to it - R2 caught DolceCategory 4-way variant sets are NAME-INCOMPATIBLE (6 vs 4 vs 4 vs 5 variants); D-CLS-1 re-export path would fail to compile - B2 caught plan OMITS the parent-walker = 1/3 of classes.md:57 bounded- weekend triple Plan v1 is now SUPERSEDED pending user choice on framing reset. https://claude.ai/code/session_017gZ6sPRXYPj5n7uJ7NBtRv
…perseded-by-#441 + EPIPHANY E-CHESS-IS-NOT-RETIREABLE + FINDING F-DIAGRAMS-450-CLOSES-LOOP The parallel `claude/sleepy-cori-aRK2x` + `claude/jolly-cori-clnf9` sessions shipped what my plan v1 (#440) was about to over-engineer. Reconciling my branch's audit trail with their shipped reality. STATUS_BOARD (status-flip per append-only doctrine; row content preserved as audit trail of "approach considered, not shipped"): - D-CLS-1 → Superseded (dissolved: DOLCE resolved late through cache, not consolidated; 4 enums coexist; OD-DOLCE-CANONICAL closed b31464d) - D-CLS-2 → Superseded-by-D-CLS-SIG (Rust function, not static PSV) - D-CLS-3 → Superseded-by-D-CLS-SIG (was VAPORWARE per #441 review; Aerial+ is for runtime data, not structural shapes) - D-CLS-4 → Superseded (no new crate; trait in contract + impl in ontology) - D-CLS-5 → Superseded-by-D-CLS-FM (reuses PR #437's MailboxSoaView class_id) - D-CLS-6 → Superseded (dissolved: class derived from signature(), not stored; "meta-DTO resolves; it does not store") - D-CLS-7 → Superseded-by-D-CLS-FM (FieldMask u64; position table IMPLICIT in OdooEntity.fields[] declaration order) - D-CLS-8 → Superseded-by-D-CLS-RENDER (trait method; C2 enforced by the TYPE not docstring; askama engine deferred) - D-CLS-9 → Superseded-by-D-CLS-AUDIT (falsifiable corpus-collapse; no 66-snapshot N4-freeze) D-CHESS-BRINGUP-1 unchanged (Queued); my earlier chat-statement proposing retirement was wrong and fully retracted (user: "retiring chess is incompetence"). EPIPHANIES (prepended): - F-DIAGRAMS-450-CLOSES-THE-LOOP — the two user-posted architecture diagrams (ODoo×OGIT+DOLCE+GoBD→Elixir/OTP; Dual Grammar §14) are now backed by shipped code via #450 panel-by-panel; board hygiene is training/seeding data for the panel-7 epiphany/fact/signal output loop, not human-only documentation - E-CHESS-IS-NOT-RETIREABLE-PLURAL-FALSIFIERS — retracting my retire-proposal; plural falsifiers is the doctrine (Odoo business-richness, Wikidata open-world, Chess minimal-ISA-closure, future medicine SNOMED/finance FIBO/law per #443's owl-dolce-hhtl-compartments-aerial-fed.md); each domain hits the machinery from a different angle; substitution is the anti-pattern; "we're only touching X" is the diagnostic signature classes.md F4 warned against AGENT_LOG (prepended): full reconciliation entry — rebase audit (no content deletions in any of my commits per `git show --stat`), context (PRs #441..#450), discipline correction (the "I'll discard" chat statement violated append-only as intent even though I committed everything), next steps. https://claude.ai/code/session_017gZ6sPRXYPj5n7uJ7NBtRv
…-before-dilution) THE file:line-grounded reference doc for the integrated-cognitive-planner arc — the target the 5-savant expansion + 3-brutal hardening agents must cite so they do not hallucinate architecture. 4-layer P0 (FORGET LADYBUG: thinking-engine>P64>cognitive-shader-driver), §1 grounded current state, §2 the 6 additive seams with FOLDs, §3 (hhtl-guid):path:documentid / ScopedReference addressing + Pinpoint/TiKV lessons, §4 the 8-step cognitive cycle -> Rubicon phases, §5 measure-first probes, §6 open questions, §7 reference index. Verdict: the integrated planner ~90% EXISTS (#437-#492 + unmerged jolly-cori-clnf9); remaining = 6 seams + addressing + a CognitiveCycle sequencer, NOT a new build. Board hygiene (same commit): prepend INTEGRATION_PLANS.md + AGENT_LOG.md. https://claude.ai/code/session_01D2WSmezQBNC3bUdHuGfGmo
…oaOwner cherry-pick + LanceVersionScheduler + SurrealMailboxView (D-PG-6) Lands four tasks from the shortest-unblocking-path list surfaced after PR #497-#501 + the AdaWorldAPI/surrealdb fork bump (lance/lance-index =7.0.0, lancedb =0.30.0, ndarray exact-rev). All four meet at the single contract trait `MailboxSoaView`, closing the cascade in one commit (E-UNBLOCK-CASCADE-1). ## Task 3 — `NiblePath::{from_guid_prefix, prefix}` (zero-dep, foundational) Ontology-side keystone follow-up of PR #498's `classid → ReadMode` LE contract. The 20-nibble `classid(8) | HEEL(4) | HIP(4) | TWIG(4)` prefix overflows the 16-nibble MAX_DEPTH: the deterministic fold drops the canon-reserved high u16 of classid (root-first pack: `classid_lo(4) | HEEL(4) | HIP(4) | TWIG(4)`), returning None when the fold would be lossy. `prefix(d)` is the O(1) ancestor view; `prefix(d).is_ancestor_of(self)` holds for every d ≤ self.depth (the routing-cache view of a deeper class path). +7 tests in `hhtl::tests`; contract lib 619 → 632 green. ## Task 2 — `impl MailboxSoaView + MailboxSoaOwner for MailboxSoA<N>` Cherry-pick of jolly-cori-clnf9 commit 463d71b (integrated-cognitive-planner-v1 §2 Seam #3, +149 LOC). Adds `pub phase: KanbanColumn` field + zero-copy repr(transparent) slice impls (edges_raw, meta_raw) + the in-RAM Rubicon driving-loop test (`test_in_ram_driving_loop_walks_rubicon_to_commit`). The contract spine (#437/#439) now drives an actual loop end-to-end — no surreal, no ractor bus needed for the in-process case. +1 driving-loop test; cognitive-shader-driver lib 85 → 86 green. ## Task 1 — `LanceVersionScheduler` over `VersionedGraph::versions()` D-MBX-9-IN core impl (the CI-gated twin of the contract slice shipped 2026-05-31). Lives in `crates/lance-graph/src/graph/scheduler.rs`. Wraps a `VersionedGraph` + inner `VersionScheduler<S = NextPhaseScheduler>` and exposes: - `drive_once(view, exec)` — read current Lance version, lower to a move - `drive_at_latest(view, exec)` — fold `versions().last()` into a move - `current_dataset_version()` — typed `DatasetVersion` over nodes head Closes `E-SUBSTRATE-IS-THE-SCHEDULER`'s OUT-direction end-to-end. The OUT direction stays propose-not-dispose (R1): returned `KanbanMove` is for the caller's `MailboxSoaOwner::try_advance_phase` to apply. +5 tests with real on-disk tempdir Lance (no mocks). ## Task 4 — `SurrealMailboxView<'a>` (D-PG-6 contract slice) Read-only `MailboxSoaView` adapter the SurrealQL projection populates via `from_columns(...)` — pure zero-copy borrow over the kv-lance scan's byte buffers. Imports `MailboxSoaView` but NOT `MailboxSoaOwner` (compile-time enforcement of `kanban.rs:1-21` "surreal=project-read-only, callcenter=commit"). `read_via_kv_lance()` returns the new typed `SurrealContainerError::BlockedColdBuild` until the surrealdb fork dep in `Cargo.toml` is uncommented — kept off by default to avoid the ~10 min cold surrealdb build for contributors who don't need it. The contract surface is available today; the integration is one Cargo.toml edit + a SurrealQL projection body in `view.rs`. +4 tests; new `lance-graph-contract` dep in surreal_container/Cargo.toml; BLOCKED(C) marker flipped to RESOLVED. ## What this unblocks - **D-MBX-9-IN-impl** — SHIPPED (the contract trait now has a Lance-backed implementor). - **D-MBX-A6-P3** — still queued, BUT Seam #3 (the in-RAM loop) is now in-tree; a downstream session can wire the emit-side without depending on the unmerged jolly branch. - **D-PG-6 (Rubicon kanban VIEW)** — contract slice SHIPPED; impl-side gated on `BlockedColdBuild` flip-on (one Cargo.toml uncomment + projection body). - **Identity-architecture v1 §3 P-SCOPE-CLASSIFY** — solved (the bijection-width fix is deterministic + ancestor-preserving + falsifiable by tests). ## Tests + clippy - lance-graph-contract: **632** (+7 hhtl) - cognitive-shader-driver: **86** (+1 driving-loop) - lance-graph::scheduler: **5** (new module, real Lance tempdir) - surreal_container::view: **4** (new module) All clippy `-D warnings` clean on the new files. Pre-existing lints in lance-graph-ontology / lance-graph-planner / ndarray_bridge.rs are out of session scope. ## Board hygiene (mandatory rule) - LATEST_STATE.md — Contract Inventory PREPEND for the new types. - EPIPHANIES.md — E-UNBLOCK-CASCADE-1: three independent landings converge on one trait surface, closing four queued deliverables in one commit. - AGENT_LOG.md — task-by-task summary with test counts. https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
…oaOwner cherry-pick + LanceVersionScheduler + SurrealMailboxView (D-PG-6) Lands four tasks from the shortest-unblocking-path list surfaced after PR #497-#501 + the AdaWorldAPI/surrealdb fork bump (lance/lance-index =7.0.0, lancedb =0.30.0, ndarray exact-rev). All four meet at the single contract trait `MailboxSoaView`, closing the cascade in one commit (E-UNBLOCK-CASCADE-1). ## Task 3 — `NiblePath::{from_guid_prefix, prefix}` (zero-dep, foundational) Ontology-side keystone follow-up of PR #498's `classid → ReadMode` LE contract. The 20-nibble `classid(8) | HEEL(4) | HIP(4) | TWIG(4)` prefix overflows the 16-nibble MAX_DEPTH: the deterministic fold drops the canon-reserved high u16 of classid (root-first pack: `classid_lo(4) | HEEL(4) | HIP(4) | TWIG(4)`), returning None when the fold would be lossy. `prefix(d)` is the O(1) ancestor view; `prefix(d).is_ancestor_of(self)` holds for every d ≤ self.depth (the routing-cache view of a deeper class path). +7 tests in `hhtl::tests`; contract lib 619 → 632 green. ## Task 2 — `impl MailboxSoaView + MailboxSoaOwner for MailboxSoA<N>` Cherry-pick of jolly-cori-clnf9 commit 463d71b (integrated-cognitive-planner-v1 §2 Seam #3, +149 LOC). Adds `pub phase: KanbanColumn` field + zero-copy repr(transparent) slice impls (edges_raw, meta_raw) + the in-RAM Rubicon driving-loop test (`test_in_ram_driving_loop_walks_rubicon_to_commit`). The contract spine (#437/#439) now drives an actual loop end-to-end — no surreal, no ractor bus needed for the in-process case. +1 driving-loop test; cognitive-shader-driver lib 85 → 86 green. ## Task 1 — `LanceVersionScheduler` over `VersionedGraph::versions()` D-MBX-9-IN core impl (the CI-gated twin of the contract slice shipped 2026-05-31). Lives in `crates/lance-graph/src/graph/scheduler.rs`. Wraps a `VersionedGraph` + inner `VersionScheduler<S = NextPhaseScheduler>` and exposes: - `drive_once(view, exec)` — read current Lance version, lower to a move - `drive_at_latest(view, exec)` — fold `versions().last()` into a move - `current_dataset_version()` — typed `DatasetVersion` over nodes head Closes `E-SUBSTRATE-IS-THE-SCHEDULER`'s OUT-direction end-to-end. The OUT direction stays propose-not-dispose (R1): returned `KanbanMove` is for the caller's `MailboxSoaOwner::try_advance_phase` to apply. +5 tests with real on-disk tempdir Lance (no mocks). ## Task 4 — `SurrealMailboxView<'a>` (D-PG-6 contract slice) Read-only `MailboxSoaView` adapter the SurrealQL projection populates via `from_columns(...)` — pure zero-copy borrow over the kv-lance scan's byte buffers. Imports `MailboxSoaView` but NOT `MailboxSoaOwner` (compile-time enforcement of `kanban.rs:1-21` "surreal=project-read-only, callcenter=commit"). `read_via_kv_lance()` returns the new typed `SurrealContainerError::BlockedColdBuild` until the surrealdb fork dep in `Cargo.toml` is uncommented — kept off by default to avoid the ~10 min cold surrealdb build for contributors who don't need it. The contract surface is available today; the integration is one Cargo.toml edit + a SurrealQL projection body in `view.rs`. +4 tests; new `lance-graph-contract` dep in surreal_container/Cargo.toml; BLOCKED(C) marker flipped to RESOLVED. ## What this unblocks - **D-MBX-9-IN-impl** — SHIPPED (the contract trait now has a Lance-backed implementor). - **D-MBX-A6-P3** — still queued, BUT Seam #3 (the in-RAM loop) is now in-tree; a downstream session can wire the emit-side without depending on the unmerged jolly branch. - **D-PG-6 (Rubicon kanban VIEW)** — contract slice SHIPPED; impl-side gated on `BlockedColdBuild` flip-on (one Cargo.toml uncomment + projection body). - **Identity-architecture v1 §3 P-SCOPE-CLASSIFY** — solved (the bijection-width fix is deterministic + ancestor-preserving + falsifiable by tests). ## Tests + clippy - lance-graph-contract: **632** (+7 hhtl) - cognitive-shader-driver: **86** (+1 driving-loop) - lance-graph::scheduler: **5** (new module, real Lance tempdir) - surreal_container::view: **4** (new module) All clippy `-D warnings` clean on the new files. Pre-existing lints in lance-graph-ontology / lance-graph-planner / ndarray_bridge.rs are out of session scope. ## Board hygiene (mandatory rule) - LATEST_STATE.md — Contract Inventory PREPEND for the new types. - EPIPHANIES.md — E-UNBLOCK-CASCADE-1: three independent landings converge on one trait surface, closing four queued deliverables in one commit. - AGENT_LOG.md — task-by-task summary with test counts. https://claude.ai/code/session_01Xzyc27Nx3f8WC5KzwfWfjx
Full-breadth integration spec wiring D-MBX kanban contract through witness commit (D-ATOM-5), surreal LIVE -> Rubicon kanban flip, ExecTarget backends, head2head two-view superposition in the shader driver, EW64-Markov Hebbian prefetch, language->SPO landing (D-LWS), and BindSpace decommission. Grounded against current main (#437/#439/ #444/#445) + two recon passes; flags the two hard blockers (lance-7 witness API, surreal fork dep / OQ-11.6) and the stale-branch caveat. https://claude.ai/code/session_01PLf95mURCY96TvKBFvSWEQ
D-MBX-A6 Phase 1 — planner⟷ractor⟷surrealdb, wired through the canonical surface
Wires lance-graph-planner ⟷ ractor (mailbox/supervisor) ⟷ surrealdb (
surreal_container's transparent SoA view) so the planner can plan efficiently over the one per-mailbox SoA — realized as an extension of the canonicalOrchestrationBridge/UnifiedStepsurface, not a parallel DTO family (perlab-vs-canonical-surface.mdDecision Procedure + the AGI-as-glove doctrine).This is Phase 1 (the contract slice) of the already-tracked
D-MBX-A6(unified-soa-convergence-v1.md §5 + §8.4).Added (all in the zero-dep
lance-graph-contract)kanban.rs—KanbanColumn(Rubicon phases Planning/CognitiveWork/Evaluation + terminal exits Commit/Plan/Prune) andKanbanMove(Copy, ≤16 B):MailboxId+witness_chain_position(R4 witness-as-pointer) +libet_offset_us(−550 ms Libet anchor, D-MBX-8).soa_view.rs—MailboxSoaView: a zero-dep borrow trait returning&[T]column slices — the transparent, zero-copy SoA view honoring R1 "one SoA never transformed." The in-RAMMailboxSoA<N>(ractor-owned), a surreal kv-lance view, and the planner all read the same bytes through one vocabulary (dependency inversion, likePlannerContract).MailboxSoaOwner: MailboxSoaViewadds the single mutation (advance_phase); the read/owner split makes "the view is read-only" a structural guarantee.orchestration.rs—StepDomain::Kanbanvariant +"kanban."prefix: the seam where planner emits / ractor owns-drives / surreal projects, all over the existing bridge.Invariants & doctrine
[dependencies]stays empty (zero-dep); consumers implement the traits.Verification
cargo test -p lance-graph-contract→ 485 lib tests pass (+6 new: 4kanban, 2soa_viewincl. a zero-copy-borrow test + a fake-impl proving satisfiability);orchestrationround-trip extended to coverKanban.cargo checkclean onlance-graph-planner,cognitive-shader-driver,lance-graph-supervisor(default +--features supervisor) —StepDomain::Kanbanis additive-safe (every downstream use is!=/matches!/from_step_type; no exhaustive match without a wildcard).Deferred to follow-up slices
{ lance-graph-planner | JIT | SurrealQL | elixir }execution-strategy set.impl MailboxSoaView + MailboxSoaOwner for MailboxSoA<N>incognitive-shader-driver.ConsumerEnvelope::Kanbanarm + handler.surreal_containerread-view (BLOCKED on OQ-11.6 fork) — lands with zero contract change once unblocked.Board hygiene (same commit)
LATEST_STATE Contract Inventory · STATUS_BOARD
D-MBX-A6-P1· EPIPHANIESE-SOA-VIEW-IS-A-BORROW· AGENT_LOG run.https://claude.ai/code/session_01R9AWgFa65uPnLyS2my2d2R
Generated by Claude Code
Summary by CodeRabbit
New Features
Documentation