Skip to content

supervisor+contract: quarantine the legacy actor surfaces; correct stale phase-progression comments - #883

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/x265-x266-plans-review-h9osnl
Aug 4, 2026
Merged

supervisor+contract: quarantine the legacy actor surfaces; correct stale phase-progression comments#883
AdaWorldAPI merged 1 commit into
mainfrom
claude/x265-x266-plans-review-h9osnl

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Aug 4, 2026

Copy link
Copy Markdown
Owner

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

plan evaluation → KanbanMove intent → BatchWriter → sparse seal
                → one WAL/version   → inline apply of the sealed transitions

No actor bridge, actor fleet, actor-owned driver, actor custody model, or actor message path is required.

KanbanActor status

#879 is the complete and independent production phase-progression path.

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.

The separation this PR is careful about

The legacy surfaces are KanbanMsg::{Advance, MulAdvance, Tick} and the 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 through cycle_driver::shade_owner and run_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 KanbanActor is stated or implied anywhere in this diff.

cycle_driver.rs — canonical, not stale

cycle_driver.rs is #879 code and is not stale. Only three inherited comments were:

  1. The header's actor-tree / open-bridge framing — removed; there is no actor bridge waiting to be completed.
  2. The honesty ledger's "actor-owned production wiring: NOT proven" — removed; it is not a required deliverable.
  3. 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 sealed Vn. 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.

site kind
kanban_actor.rs #[cfg(test)] unit tests
tests/w2b_real_owner_probe.rs (60/103/144) integration probe
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; any suggestion that parallel cognition belongs to an actor leg. Nothing replaces them.

W1 ledger corrected

  • SHIPPED — a 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.

Verification

Comment-only diff (no code lines added); cargo fmt --check clean on both lance-graph-supervisor and lance-graph-contract; cargo check -p lance-graph-contract passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki

Summary by CodeRabbit

  • Documentation
    • Clarified the sealed-cycle workflow as the canonical path for applying phase transitions.
    • Documented legacy compatibility surfaces and removed outdated references to actor-driven progression.
    • Updated architectural records and planning notes to reflect current shipped and outstanding work.
    • Clarified ownership resolution, concurrency, deterministic cycle sealing, and lifecycle behavior.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR documents the sealed-cycle path as the canonical production progression path. It reclassifies KanbanActor, its messages, and its helpers as legacy compatibility surfaces. It updates architecture records and lifecycle documentation without changing executable behavior.

Changes

Sealed-cycle architecture correction

Layer / File(s) Summary
Architecture records
.claude/board/*.md, .claude/plans/...
The records withdraw actor-fleet ownership proposals, identify the sealed-cycle path as canonical, update caller and spawn evidence, and revise W1 and parallelism tracking.
Contract lifecycle documentation
crates/lance-graph-contract/src/kanban.rs, crates/lance-graph-contract/src/orchestration.rs, crates/lance-graph-contract/src/soa_view.rs
The documentation assigns transition application, mailbox mutation, and absorbing-state tombstoning to the sealed-cycle driver.
Supervisor path and legacy surface
crates/lance-graph-supervisor/src/cycle_driver.rs, crates/lance-graph-supervisor/src/kanban_actor.rs, crates/lance-graph-supervisor/src/lib.rs
The documentation defines the cycle-driver fleet and cognition boundaries. Actor messages and helpers are marked as legacy compatibility code.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested reviewers: claude

Poem

A rabbit marks the sealed-cycle way,
While legacy actors fade from play.
The MUL gate keeps its steady light,
And cycle drivers set things right.
Hop, document, and seal.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main changes: marking legacy actor surfaces and correcting stale phase-progression documentation.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

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

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review August 4, 2026 09:42

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +9 to +10
//! Every `Actor::spawn` of [`KanbanActor`] in this repository is inside this
//! file's own `#[cfg(test)]` module (line 384+). There is no production

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +1 to +5
//! ⚠ 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 872db42 and 3ada596.

📒 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.md
  • crates/lance-graph-supervisor/src/kanban_actor.rs

Comment thread .claude/board/EPIPHANIES.md Outdated
Comment thread .claude/board/EPIPHANIES.md Outdated
Comment thread .claude/board/PR_ARC_INVENTORY.md Outdated
- **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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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

Comment thread .claude/plans/kanban-64k-inverted-awareness-v1.md Outdated
Comment thread .claude/plans/kanban-64k-inverted-awareness-v1.md Outdated
Comment thread crates/lance-graph-supervisor/src/kanban_actor.rs Outdated
@AdaWorldAPI
AdaWorldAPI force-pushed the claude/x265-x266-plans-review-h9osnl branch 2 times, most recently from 06f30d8 to da3db88 Compare August 4, 2026 10:33
@AdaWorldAPI AdaWorldAPI changed the title supervisor+plan: deprecate the KanbanMsg advance arms; correct A1 — the actor is a meta injector, not a driver supervisor: mark the legacy actor advance surfaces; correct stale phase-progression comments Aug 4, 2026
…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
@AdaWorldAPI
AdaWorldAPI force-pushed the claude/x265-x266-plans-review-h9osnl branch from da3db88 to c65a405 Compare August 4, 2026 11:57
@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

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

@AdaWorldAPI AdaWorldAPI changed the title supervisor: mark the legacy actor advance surfaces; correct stale phase-progression comments supervisor+contract: quarantine the legacy actor surfaces; correct stale phase-progression comments Aug 4, 2026
@AdaWorldAPI
AdaWorldAPI merged commit 48d4841 into main Aug 4, 2026
6 of 7 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 3ada596 and c65a405.

📒 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.md
  • crates/lance-graph-contract/src/kanban.rs
  • crates/lance-graph-contract/src/orchestration.rs
  • crates/lance-graph-contract/src/soa_view.rs
  • crates/lance-graph-supervisor/src/cycle_driver.rs
  • crates/lance-graph-supervisor/src/kanban_actor.rs
  • crates/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

Comment on lines +36 to +39
//! 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ 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.

Comment on lines +364 to +367
/// ⚠ **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.
///

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ 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.

Suggested change
/// ⚠ **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.

AdaWorldAPI pushed a commit that referenced this pull request Aug 4, 2026
…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
AdaWorldAPI added a commit that referenced this pull request Aug 4, 2026
…w-h9osnl

board: post-merge entries for #881/#882/#883 + re-scope the removed statistics work as C1b
AdaWorldAPI pushed a commit that referenced this pull request Aug 4, 2026
#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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants