Repository navigation
academy_batch: a restore session carries the capture and footprint it restores to, and the admitted lane is inserted where it is made; no required input is read back from an Option (touch-clean for card 0f52dd80) - #5711
Merged
Conversation
…er for a free engine wakes on the release, never a timer (card 0f52dd80, part A) IntelMac 2026-11-02: deploy-consume refused fd1673e at 17:39:58Z on a busy gate (ensure_serving wedged 17:36-17:47Z, age 640 s against a 180 s bound) and the actuator then waited its 54 min build bound with no build started. Part B makes that deferral wake on the gate's release; this part gives the gate a release anything can wait on. - serving_lifecycle: the three loose Arcs (held flag, start, step) become one private GateState with a watch generation that every release bumps, after the flag clears. LifecycleGate::new takes only the planner's settled flag; try_operation, is_held, in_flight (start + step) and subscribe_release are the API (subscribe first, then read is_held: a release between the two is a change the receiver still sees). ServingOperation::acquire is private. - The serving daemon holds one `lifecycle: LifecycleGate` in place of reconciling / reconcile_started_ms / reconcile_step; every reader and the two operation sites go through it. Tests: engine serving_lifecycle 4/0, including every_release_is_a_change_a_subscriber_sees_with_the_gate_free (a subscriber before a release wakes and reads free, one after reads free, a reacquire reads held, two releases are two generations). Mutation receipt: no release published fails it at its 5 s bound. continuum-serving serving_daemon 129/2. The two failures (budget.rs:464, budget.rs:689) fail identically on canary on this host (host-dependent, card c4d84be3). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FRQWzgSfo79JtnwZywHKrE
… restores to, and the admitted lane is inserted where it is made; no required input is read back from an Option (touch-clean for card 0f52dd80)
Four run-time complaints ('missing original restore session', 'private teacher missing',
'restore capture missing', 'original serving footprint missing') are now unrepresentable:
Restoring { session, capture, bytes } is set once when the restore begins, and cleanup reads
all three from it; the borrower is the lane prepared now or admitted after retirement, inserted
once. continuum-serving serving_daemon 129/2 (the two host-dependent budget tests, as on canary).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FRQWzgSfo79JtnwZywHKrE
joelteply
commented
Nov 2, 2026
joelteply
left a comment
Contributor
Author
There was a problem hiding this comment.
PASS at d3ba119 (source read, no local rerun; CI 28 pass / 0 fail).
- Gate:
GateStatereplaces the three looseArcs behind a privateacquire, and every caller goes throughtry_operation().Dropclearsheldbefore bumping the release generation, so a woken waiter reads the gate free.subscribe_releasedocuments subscribe-then-read, which closes the release-before-subscribe race. - Test:
every_release_is_a_change_a_subscriber_sees_with_the_gate_freecovers Codex's release, reacquire, release case (two generations, held again between them). academy_batch: the session, capture and footprint now travel as oneRestoring, deleting three read-back complaints.borrower.insert(lane)binds the admitted lane where it is made. The one remainingok_or_else("incumbent restoration footprint is unknown") fails at the seam that builds the state, which is where it belongs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four run-time complaints ('missing original restore session', 'private teacher missing',
'restore capture missing', 'original serving footprint missing') are now unrepresentable:
Restoring { session, capture, bytes } is set once when the restore begins, and cleanup reads
all three from it; the borrower is the lane prepared now or admitted after retirement, inserted
once. continuum-serving serving_daemon 129/2 (the two host-dependent budget tests, as on canary).
Co-Authored-By: Claude Opus 5.5 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01FRQWzgSfo79JtnwZywHKrE