supervisor+contract: quarantine the legacy actor surfaces; correct stale phase-progression comments - #883
Conversation
📝 WalkthroughWalkthroughThe PR documents the sealed-cycle path as the canonical production progression path. It reclassifies ChangesSealed-cycle architecture correction
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_64a9d2a9-f402-424b-b918-8a366fcbacbc) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ada596668
ℹ️ 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".
| //! Every `Actor::spawn` of [`KanbanActor`] in this repository is inside this | ||
| //! file's own `#[cfg(test)]` module (line 384+). There is no production |
There was a problem hiding this comment.
Correct the repository-wide spawn census
This census is factually incomplete: crates/lance-graph-supervisor/tests/w2b_real_owner_probe.rs:60-62 spawns KanbanActor<MailboxSoA> outside this module, and crates/onebrc-probe/src/lane_e.rs:170-178 spawns one per batch when Lane E runs. Because the same claim is used in the plan and epiphany board to characterize the actor layer as mechanically proven idle, distinguish unit/integration/probe/production usages rather than claiming every spawn is in this file.
Useful? React with 👍 / 👎.
| //! ⚠ DEPRECATED ARMS (operator ruling 2026-08-04): `KanbanMsg::{Advance, | ||
| //! MulAdvance, Tick}` — the ADVANCE/mechanism arms — are DEPRECATED. Production | ||
| //! orchestration is **cycle-driver + BatchWriter + KanbanStep**; an actor is ONLY | ||
| //! a meta process that INJECTS a SoA/kanban. Do not drive a phase from here. The | ||
| //! sole sanctioned revival is consolidation with the 34 NARS recipes + rung ladder. |
There was a problem hiding this comment.
Mark the public driver helpers as deprecated
Callers can access deliver_kanban_step, drive_mul_advance, drive_version_tick, drive_scheduled_tick, and run_to_absorbing directly through the re-exports in src/lib.rs:79-82, so they need not encounter this module header or the variant comments. Their own documentation at lines 254-415 still presents them as supported S2/S3 drivers and even recommends drive_version_tick, despite every helper constructing one of the newly prohibited message arms; propagate the warning to these public entry points or remove the contradictory recommendations.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 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 11: Update the “Measured zombie state” statement to distinguish
production spawns from integration-test spawns, including the KanbanActor
construction in w2b_real_owner_probe.rs. Re-run the repository-wide Actor::spawn
search and retain the zero-production-instantiation conclusion only if no
non-test usage exists; otherwise revise that conclusion while preserving the
separate observation about test-only actor wiring.
- Line 15: Update the A1/W1 labels and linked references in EPIPHANIES.md and
kanban-64k-inverted-awareness-v1.md to reflect that actors do not drive phase
progression. Remove wording that frames A1/W1 as selecting actor seams or
producing the first actor-owned emit_bootstrap_intent caller, while retaining
the ownership-injection seam and cycle-driver caveats.
In @.claude/board/PR_ARC_INVENTORY.md:
- Line 65: Prepend a new board entry for 2026-08-04 — lance-graph `#883`
containing this correction, and restore the historical 2026-08-03 — lance-graph
`#880` entry exactly as it was. Preserve the append-only governance rule, allowing
only status/confidence updates in existing entries.
In @.claude/plans/kanban-64k-inverted-awareness-v1.md:
- Around line 197-199: Update the C2 estimator mapping to retain ICC as ICC and
list κ as a separate agreement estimator; do not describe ICC as “κ-family
agreement.” Ensure the surrounding C1/C2 plan text consistently distinguishes
the two estimators.
- Around line 104-115: Synchronize the wave plan with the corrected A1
orchestration seam: revise the W1 deliverables at the section containing the
line 276 reference to remove per-mailbox KanbanMsg application and the
actor-owned emit_bootstrap_intent milestone, and update the line 137
“MulAdvance”-gated wording to describe cycle-driver MUL gating. Preserve
cycle-driver + BatchWriter + KanbanStep as the retained path.
In `@crates/lance-graph-supervisor/src/kanban_actor.rs`:
- Around line 9-12: Correct the duplicated spawn claim at
crates/lance-graph-supervisor/src/kanban_actor.rs:9-12 by distinguishing the
absence of production KanbanActor wiring from additional test instantiations,
explicitly acknowledging the integration-test spawn or limiting the statement to
production. Apply the same correction to the measured zombie-state record at
.claude/plans/kanban-64k-inverted-awareness-v1.md:116-120.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 4fe9e73c-af6d-46eb-92a6-09ec4160df92
📒 Files selected for processing (5)
.claude/board/EPIPHANIES.md.claude/board/PR_ARC_INVENTORY.md.claude/board/STATUS_BOARD.md.claude/plans/kanban-64k-inverted-awareness-v1.mdcrates/lance-graph-supervisor/src/kanban_actor.rs
| - **Review** — three external rounds, every finding verified against source before acting. Consistency round (3): a κ/ICC contradiction between the C2 rule and the D3 fusion measure; a task reference that resolved to an unrelated GitHub PR (qualified as session-local everywhere); a stale "no production caller" ground-state row. Inline round (4): a missed wave-table gate row; the `write-on-behalf.md` caller status. External P1/P2: the `MailboxFleet` impossibility (above) and vague W2 thresholds ("materially below"/"must converge") — the PR's own inertness rule turned on itself, fixed by pre-registration. **Claim-ceiling check passed clean twice** (claim (a) conditional on W2, claim (b) capped at reliability). **Process finding:** the "no production caller yet" fact went stale **three times** on this one branch; the durable form is citing the call site, never asserting the absence. | ||
| - **Process (governance)** — an operator-ruled **separation-of-concerns violation** occurred mid-arc: private-consumer identifiers were written into public plan/board text, the PR body, and PR comments. Remediated the same session — source files scrubbed, the three unmerged commits rewritten into one clean commit and force-pushed (`--force-with-lease`, unmerged PR branch only; `main` never touched), PR body rewritten, bot comments patched via REST. Honest residue recorded at the time: force-push removes refs but GitHub may retain orphaned SHAs until GC, comment/PR-body edit histories persist in the UI, and **pre-existing** occurrences on merged `main` history (older board entries, crate filenames) were surfaced for an operator decision rather than rewritten unilaterally. The standing lesson: the public/private boundary is a *drafting-time* rule, not a review-time cleanup. | ||
| - **Docs** — the plan; the four module headers; board files per the mandatory hygiene rule. | ||
| - **⊘ Correction (2026-08-04, operator ruling `E-ACTOR-IS-A-META-INJECTOR-NOT-A-DRIVER-1`):** the "Withdrawn" line above is right that `MailboxFleet`-over-registry is impossible, but the **replacement was also wrong**. A1 shipped a two-seam design gate whose second option — per-mailbox actors applying transitions via `KanbanMsg::Advance` — is the message bus #879's writer-fires-inline ruling already excluded, so **there was never a choice to make**. Orchestration is cycle-driver + BatchWriter + KanbanStep; the ractor is the ownership **guarantee dummy** (inject a SoA/kanban at spawn, hold it so single-writer is provable) and `KanbanStep` acts on behalf. "First ACTOR-OWNED caller of `emit_bootstrap_intent`" is withdrawn as a milestone. The advance arms are now deprecated in source. Mechanism of the defect: a codex-proposed framing was promoted to a live option after being verified against *source* but not against *standing rulings* — the bar is both. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Record this correction in a new board entry.
Line 54 marks the 2026-08-03 — lance-graph #880 entry as merged. Line 65 edits that historical entry. This breaks the append-only audit rule. Prepend a new `2026-08-04 — lance-graph `#883 entry for the correction and leave the #880 entry unchanged.
As per coding guidelines, “governance entries are append-only, with only status/confidence lines updated in place.” Based on learnings, merged entry content must remain unchanged and new information must be prepended.
🤖 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/PR_ARC_INVENTORY.md at line 65, Prepend a new board entry for
2026-08-04 — lance-graph `#883` containing this correction, and restore the
historical 2026-08-03 — lance-graph `#880` entry exactly as it was. Preserve the
append-only governance rule, allowing only status/confidence updates in existing
entries.
Sources: Coding guidelines, Learnings
06f30d8 to
da3db88
Compare
…ale phase-progression comments Documentation cleanup, stale-comment correction, legacy-surface quarantine, and a caller/spawn migration inventory. No runtime changes, no #879 redesign, no future actor proposal, no NARS/rung redesign, no statistics work, no change to the living MUL gate. #879 is the complete and independent production phase-progression path: plan evaluation -> KanbanMove intent -> BatchWriter -> sparse seal -> one WAL/version -> inline apply of the sealed transitions KanbanActor has no assigned architectural responsibility. It is legacy experimental compatibility code retained only because existing probes or consumers still reference it. No new production architecture may depend on it. Its presence does not designate it as the future home of an ownership, planning-initiation, concurrency, cognition, reasoning, or lifecycle mechanism. SEPARATION (do not conflate transport with the reasoning engine): the legacy surfaces are KanbanMsg::{Advance, MulAdvance, Tick} and the re-exported helpers deliver_kanban_step / drive_mul_advance / drive_version_tick / drive_scheduled_tick / run_to_absorbing. MulAdvance and drive_mul_advance are only legacy actor-message WRAPPERS -- not the canonical MUL reasoning engine. The living gate (lance_graph_contract::mul::i4_eval::gate_decision_i4) is independent, is consumed directly by the #879 path via cycle_driver::shade_owner and run_cognitive_work_gated[_over], and is NOT deprecated. The NARS tactic recipes and the awareness rung ladder are separate and untouched; no coupling to KanbanActor is stated or implied. cycle_driver.rs is canonical #879 code and is NOT stale -- only three inherited comments were: the header's actor-tree/open-bridge framing (removed; there is no actor bridge waiting to be completed), the honesty ledger's actor-owned production wiring line (removed; it is not a required deliverable), and run_cognitive_work's actor-leg claim, replaced with: it is a sequential contract-probe adapter proving the seal->apply->intent roundtrip and does not define the production execution model; production cognition may run independently and concurrently over the sealed Vn, with completed immutable outcomes converging only at the deterministic ordering/coalescing/seal boundary. gate_decision_i4, shade_owner, run_cognitive_work_gated[_over], sealing, transition application, recovery and runtime behaviour are unchanged. The same obsolete ractor-drives-the-transition wording is corrected in supervisor/lib.rs, contract::kanban, contract::soa_view and contract::orchestration; those comments now point only at the #879 sealed-cycle path. The caller/spawn inventory is kept strictly as deletion-impact evidence and a removal work-list, with no architectural legitimacy: own cfg(test) tests; tests/w2b_real_owner_probe.rs; onebrc-probe/src/lane_e.rs:170 (library source, not a test) via drive_version_tick. Removed from this PR: the planning-initiation-adapter wording, the future actor/nudge slice, any NARS/rung coupling to KanbanActor, the ownership-injection and guarantee-dummy framing, and any suggestion that parallel cognition belongs to an actor leg. Nothing replaces them. W1 ledger corrected -- SHIPPED: held owner is rescheduled, re-polled, wakes and advances later. OPEN: protect callers from retrying run_cycle with the drained writer instead of retrying SealFailure.casts. OPEN: surface/count a missing owner in cognitive_pass instead of silently skipping. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
da3db88 to
c65a405
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_8dc504e0-52b9-4b8d-a823-4f55ad5843b4) |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 `@crates/lance-graph-supervisor/src/kanban_actor.rs`:
- Around line 36-39: Update the comments around the sealed-cycle path and the
related sections near KanbanMsg::Advance, KanbanMsg::Tick, and
drive_version_tick to scope “not part of phase progression” and “never
permission to advance” to the canonical production path. Explicitly state that
the legacy Advance and Tick handlers retain their existing transition behavior
for compatibility callers, without changing their implementation.
- Around line 364-367: Update the documentation comment for drive_scheduled_tick
to reference KanbanMsg::Advance instead of KanbanMsg::Tick, matching the message
constructed by its implementation. Preserve the existing legacy warning and
scheduling-policy context.
🪄 Autofix
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: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 99932246-e15f-428e-a6a3-bfca8d56be7b
📒 Files selected for processing (10)
.claude/board/EPIPHANIES.md.claude/board/PR_ARC_INVENTORY.md.claude/board/STATUS_BOARD.md.claude/plans/kanban-64k-inverted-awareness-v1.mdcrates/lance-graph-contract/src/kanban.rscrates/lance-graph-contract/src/orchestration.rscrates/lance-graph-contract/src/soa_view.rscrates/lance-graph-supervisor/src/cycle_driver.rscrates/lance-graph-supervisor/src/kanban_actor.rscrates/lance-graph-supervisor/src/lib.rs
🚧 Files skipped from review as they are similar to previous changes (2)
- .claude/board/PR_ARC_INVENTORY.md
- .claude/board/STATUS_BOARD.md
| //! Comments in this file previously described the ractor as the thing that | ||
| //! advances a mailbox's Rubicon phase, with MUL gating and version ticks | ||
| //! composing "on top". That framing is corrected: phase progression is enacted | ||
| //! only by the #879 sealed-cycle path above. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Distinguish the canonical path from legacy transition behavior.
The new comments say that phase progression is enacted only by the sealed-cycle path. The unchanged handlers still apply transitions for compatibility callers. KanbanMsg::Advance calls state.try_advance_phase on Lines 151-155. KanbanMsg::Tick calls state.advance_phase on Lines 175-186. drive_version_tick sends KanbanMsg::Tick on Line 344.
Replace “not part of phase progression” and “never permission to advance” with wording that limits the statement to the canonical production path. State that the legacy arms retain their existing transition behavior.
Proposed wording
-//! That framing is corrected: phase progression is enacted
-//! only by the `#879` sealed-cycle path above.
+//! That framing is corrected: canonical production phase progression is enacted
+//! only by the `#879` sealed-cycle path above. Legacy actor arms retain their
+//! existing transition behavior for compatibility consumers.
- /// ⚠ **LEGACY (2026-08-04)** — not part of phase progression. `#879`'s sealed
+ /// ⚠ **LEGACY (2026-08-04)** — not part of the canonical production path.
+ /// This compatibility arm retains its existing phase-transition behavior;
+ /// `#879`'s sealed
- /// ⚠ **LEGACY (2026-08-04)** — not part of phase progression. A version tick
- /// is global knowledge, never permission to advance (`#879`'s ratified rule).
+ /// ⚠ **LEGACY (2026-08-04)** — not part of the canonical production path.
+ /// The canonical path treats a version tick as global knowledge; this arm
+ /// retains its existing compatibility transition behavior.
-/// arm. A version tick is global knowledge, never permission to advance.
+/// arm. The canonical path does not use a version tick as permission to advance;
+/// this compatibility helper still sends `KanbanMsg::Tick`.Also applies to: 62-64, 91-93, 335-338
🤖 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 `@crates/lance-graph-supervisor/src/kanban_actor.rs` around lines 36 - 39,
Update the comments around the sealed-cycle path and the related sections near
KanbanMsg::Advance, KanbanMsg::Tick, and drive_version_tick to scope “not part
of phase progression” and “never permission to advance” to the canonical
production path. Explicitly state that the legacy Advance and Tick handlers
retain their existing transition behavior for compatibility callers, without
changing their implementation.
| /// ⚠ **LEGACY (2026-08-04)** — constructs [`KanbanMsg::Tick`], a legacy | ||
| /// arm. Scheduling policy belongs to the cycle-driver, not an actor RPC. | ||
| /// Re-exported from `lib.rs`; notice repeated for callers. | ||
| /// |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Correct the drive_scheduled_tick message reference.
The comment says that drive_scheduled_tick constructs KanbanMsg::Tick. The implementation constructs KanbanMsg::Advance on Lines 384-387. Name KanbanMsg::Advance in the documentation so migration work targets the correct actor arm.
Proposed wording
-/// ⚠ **LEGACY (2026-08-04)** — constructs [`KanbanMsg::Tick`], a legacy
+/// ⚠ **LEGACY (2026-08-04)** — constructs [`KanbanMsg::Advance`], a legacy
/// arm. Scheduling policy belongs to the cycle-driver, not an actor RPC.📝 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.
| /// ⚠ **LEGACY (2026-08-04)** — constructs [`KanbanMsg::Tick`], a legacy | |
| /// arm. Scheduling policy belongs to the cycle-driver, not an actor RPC. | |
| /// Re-exported from `lib.rs`; notice repeated for callers. | |
| /// | |
| /// ⚠ **LEGACY (2026-08-04)** — constructs [`KanbanMsg::Advance`], a legacy | |
| /// arm. Scheduling policy belongs to the cycle-driver, not an actor RPC. | |
| /// Re-exported from `lib.rs`; notice repeated for callers. | |
| /// |
🤖 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 `@crates/lance-graph-supervisor/src/kanban_actor.rs` around lines 364 - 367,
Update the documentation comment for drive_scheduled_tick to reference
KanbanMsg::Advance instead of KanbanMsg::Tick, matching the message constructed
by its implementation. Preserve the existing legacy warning and
scheduling-policy context.
…tatistics work as C1b Post-merge hygiene, written on merge rather than as later cleanup (the delay is the anti-pattern the arc's own recovery note documents). Arc entries for #881, #882 and #883, plus the matching LATEST_STATE entry. The #883 entry records the ruling in its canonical wording: #879 is the complete and independent production phase-progression path; KanbanActor has no assigned architectural responsibility and its presence designates it as the future home of nothing. It also records the separation that must not blur -- MulAdvance and drive_mul_advance are legacy actor-message WRAPPERS, not the canonical MUL reasoning engine; gate_decision_i4 is independent, consumed directly by the #879 path, and not deprecated; the NARS recipes and awareness rung ladder are separate and untouched. The spawn inventory is recorded as deletion-impact evidence and a removal work-list only, with no architectural legitimacy. Restores the statistics scope that was deliberately removed from #883, now as its own deliverable rather than mixed into a legacy-surface correction: - C1 result: jc is in-tree; reliability.rs ships pearson / spearman / cronbach_alpha / icc (Icc2_1, Icc3_1), plus jirak.rs for the C4 noise floors. phi = pearson on two binary variables and KR-20 = alpha on dichotomous items, so those two renames are reporting work, not new math. kappa is absent from jc entirely -- the real gap, and it blocks D3's fusion falsifier. - C1b: kappa + McDonald's omega + effect size (Effektstärke), ADDITIVE ONLY. pearson/spearman/cronbach_alpha/icc stay untouched; any diff editing an existing jc statistic is an automatic reject, independent of merit. - C2 corrected: kappa is a SEPARATE estimator, not a renamed ICC. ICC stays ICC for the non-binary escalation only. No code, no runtime behaviour, no actor content. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
#884 was itself the post-merge hygiene PR for #881/#882/#883 — and it merged without its own arc entry, reproducing one level up exactly the gap it was written to close. Writing the hygiene PR does not discharge the rule for the hygiene PR. Entry added, with that noted in it. Records what #884 locked: - The C1 audit finding: phi = pearson-on-binaries and KR-20 = alpha-on-dichotomous are the SAME computations already in jc (named wrapper + caveat only, arithmetic not re-implemented); kappa is absent and is NOT a renamed ICC — the real gap, and the one that blocks D3's fusion falsifier. - Effect size means the r-family: R, R-squared, eta-squared, phi. Cohen's d explicitly out, calculated separately if ever wanted. The t-test is the significance companion to eta-squared, not a d-family route. - ADDITIVE ONLY with one carve-out: existing jc statistics keep their arithmetic, signature and semantics; the sole permitted edit to an existing file is widening reliability.rs's private helpers to pub(crate) for reuse — visibility only. - The transport-vs-engine separation carried from #883, and that the spawn inventory carries no architectural legitimacy. Board prose only. D-KIA-C1b remains Queued. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
Documentation cleanup, stale-comment correction, legacy-surface quarantine, and a caller/spawn migration inventory. No runtime changes, no #879 redesign, no future actor proposal, no planning-nudge proposal, no NARS/rung redesign, no statistics work, no change to the living MUL gate.
Canonical production path
No actor bridge, actor fleet, actor-owned driver, actor custody model, or actor message path is required.
KanbanActor status
The separation this PR is careful about
The legacy surfaces are
KanbanMsg::{Advance, MulAdvance, Tick}and the helpersdeliver_kanban_step/drive_mul_advance/drive_version_tick/drive_scheduled_tick/run_to_absorbing.MulAdvanceanddrive_mul_advanceare only legacy actor-message wrappers — not the canonical MUL reasoning engine. The living gatelance_graph_contract::mul::i4_eval::gate_decision_i4is independent, is consumed directly by the #879 path throughcycle_driver::shade_ownerandrun_cognitive_work_gated[_over], and is not deprecated. Each wrapper's doc says so explicitly, so marking the transport legacy cannot be read as deprecating the engine.The NARS tactic recipes and the awareness rung ladder are separate and untouched — no coupling to
KanbanActoris stated or implied anywhere in this diff.cycle_driver.rs — canonical, not stale
cycle_driver.rsis #879 code and is not stale. Only three inherited comments were:run_cognitive_work's actor-leg claim — replaced with: "a sequential contract-probe adapter used to prove the seal→apply→intent roundtrip. It does not define the production execution model. Production cognition may run independently and concurrently over the sealedVn. Completed immutable outcomes converge only at the deterministic ordering/coalescing/seal boundary." (No mention of KanbanActor.)Unchanged:
gate_decision_i4,shade_owner,run_cognitive_work_gated,run_cognitive_work_gated_over, sealing, transition application, recovery, runtime behaviour.Other stale active comments corrected
supervisor/lib.rs,contract::kanban,contract::soa_view,contract::orchestration— the "ractor is the OUT-leg / owns / drives the transition / ractor-driven hot path" wording now points only at the #879 sealed-cycle path.Caller/spawn migration inventory
Kept strictly as (a) evidence for why immediate deletion would break current consumers and (b) the removal work-list. It provides no architectural legitimacy.
kanban_actor.rs#[cfg(test)]tests/w2b_real_owner_probe.rs(60/103/144)onebrc-probe/src/lane_e.rs:170drive_version_tickRemoved from this PR
The planning-initiation-adapter wording; the future actor/nudge slice; any NARS/rung coupling to
KanbanActor; the ownership-injection and guarantee-dummy framing; any suggestion that parallel cognition belongs to an actor leg. Nothing replaces them.W1 ledger corrected
run_cyclewith the drained writer instead of retryingSealFailure.casts.cognitive_passinstead of silently skipping.Verification
Comment-only diff (no code lines added);
cargo fmt --checkclean on bothlance-graph-supervisorandlance-graph-contract;cargo check -p lance-graph-contractpasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
Summary by CodeRabbit