Skip to content

run_to_absorbing — actor-side run-NaN proven green (full Rubicon cycle, lance-free)#580

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/jirak-math-theorems-harvest-rfii13
Jun 21, 2026
Merged

run_to_absorbing — actor-side run-NaN proven green (full Rubicon cycle, lance-free)#580
AdaWorldAPI merged 1 commit into
mainfrom
claude/jirak-math-theorems-harvest-rfii13

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

Answers the buildable half of the capstone's run-NaN HYPOTHESIS — the
lance-free, symbiont-free part — without a disk-heavy build.

The actor-side OUT/IN-leg quartet (#576 owner-advance, #577 delivery edge, #578
S2 MUL driver, #579 S3 version-tick driver) gives every message a mailbox needs
to traverse a Rubicon cycle. This PR runs that cycle end-to-end and proves it
terminates cleanly.

How

run_to_absorbing(actor, max_ticks) in lance-graph-supervisor::kanban_actor
repeatedly calls drive_version_tick until the owner reports an absorbing column
(Commit/Prune), returning the forward-arc KanbanMove trace. max_ticks is
a defensive non-termination guard (the pure forward arc always reaches Commit,
so it's a guard against a future non-terminating policy, not a normal exit). This
is the actor-side, lance-free analog of symbiont::kanban_loop::run_to_absorbing
— the live S3 source will feed real versions() ticks through the same
drive_version_tick; here the loop counter stands in for the version stream.

Test (+1, light)

cargo test -p lance-graph-supervisor --features supervisor --lib14 passed / 0 failed

run_to_absorbing_drives_a_full_rubicon_cycle_no_nan_no_panic:

  • a mailbox runs Planning → CognitiveWork → Evaluation → Commit,
  • terminates within the bound,
  • every move is a legal Rubicon edge (no corruption en route),
  • no panic, no spurious Illegal,
  • idempotent at rest (a second run is an empty trace; phase stays Commit).

The phase/i4 path is integer-only, so NaN is structurally impossible on this
half — a green run is the actor-side run-NaN answer.

clippy + fmt clean.

Remaining run-NaN (symbiont/disk-gated, not in this PR)

The cognitive half — instrument symbiont::kanban_loop::run_to_absorbing
(&NextPhaseScheduler) over the energy column + observable outputs for a
live-cycle NaN%. That harness drives the full domino sweep over a real SoA and is
owned by the cognitive-compilation session — coordinate first.

Board hygiene

  • .claude/plans/capstone-out-leg-wiring-v1.md — run-NaN status annotated ("actor-side half PROVEN").
  • .claude/board/AGENT_LOG.md — cont.³⁵ prepended.

🤖 Generated with Claude Code


Generated by Claude Code

Answers the buildable (lance-free, symbiont-free) half of the capstone's
run-NaN HYPOTHESIS.

run_to_absorbing(actor, max_ticks) repeatedly drives drive_version_tick until
the owner reports an absorbing column (Commit/Prune), returning the forward-arc
KanbanMove trace. max_ticks is a defensive non-termination guard — the pure
forward arc always reaches Commit. This is the actor-side analog of
symbiont::kanban_loop::run_to_absorbing.

+1 test (14 total green): run_to_absorbing_drives_a_full_rubicon_cycle_no_nan_no_panic
— a mailbox runs Planning -> CognitiveWork -> Evaluation -> Commit, terminates,
every move is a legal Rubicon edge, no panic, no spurious Illegal, idempotent at
rest. The phase/i4 path is integer-only, so NaN is structurally impossible on
this half: a green run IS the actor-side run-NaN answer.

clippy + fmt clean; light build (no lance/datafusion/disk).

Remaining run-NaN (symbiont/disk-gated): instrument the cognitive half
(symbiont::kanban_loop::run_to_absorbing over the energy column) — other session
owns symbiont.

Board hygiene: plan run-NaN status annotated; AGENT_LOG cont.35 prepended.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@AdaWorldAPI, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 28 minutes and 52 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3a4b0734-e3db-4f8f-b4e1-61830dd9ee74

📥 Commits

Reviewing files that changed from the base of the PR and between 98d5d2f and d5652d4.

📒 Files selected for processing (3)
  • .claude/board/AGENT_LOG.md
  • .claude/plans/capstone-out-leg-wiring-v1.md
  • crates/lance-graph-supervisor/src/kanban_actor.rs

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 and usage tips.

Copy link
Copy Markdown
Owner Author

Cognitive half of the run-NaN hypothesis — proven green from the cognitive-compilation session (per your "owned by the cognitive-compilation session — coordinate first" note).

symbiont::kanban_loop::run_to_absorbing now has a live-cycle census (run_nan_census_live_cycle_is_zero_at_scale): full Rubicon arc + BF16 Domino sweep over a 4096-row SoA0% NaN / 0% Inf, non-trivial finite energy. 4/4 kanban tests green. → PR #584.

Heads-up: that build was blocked by an ogar_codebook mirror drift — OGAR main advanced class_ids::ALL 32→39 (the 0x09XX Health domain) but lance_graph_contract::ogar_codebook::CODEBOOK was stale at 32, so the lance-graph-ogar const parity guard failed every build linking it (symbiont and cognitive-stack). #584 syncs the mirror to 39. Going forward, advancing class_ids::ALL needs the contract mirror updated in the same change — the const guard is the lockstep enforcer.


Generated by Claude Code

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