Repository navigation
Continue coordinators a verified owner-authorized Orca window ended (Pod 0.21.14) - #121
Merged
Merged
Conversation
Add pod continue (internal window-continuation): a new coordinator in the recorded worktree continues an open objective whose coordinator a verified owner-authorized Orca stop or restart ended, with derived provenance and no per-objective owner decision. The host's authorization verifier proves the window through a new orca_window relay action; Pod proves loss, place, Run and admission identity, records each admission readback without settling, and rebinds the existing Run through run-use. Status, the non-owner refusal and the objective list show the step or its lead condition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Only the caller's own pending attempt ends, and only on a definite objective-level loss; status reports objective eligibility apart from the reading terminal's readiness. The plain list stays record-only outside a live Orca terminal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tinue Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A pending continuation fences successor claims and historical retirement; replacement and retry keep every earlier attempt; the initial admission readback stays beside the completion readback; discovery checks the recorded worktree, shows a pending claimant its own resumable step and runs under one time budget, degrading to unknown on failed or slow reads; any window block leads non-owner refusals and status with a lead task. A host without a verifier keeps its existing paths unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
R150 defines derived coordinator continuation after a verified owner-authorized Orca window, with scenarios A501-A506 and coverage. R02, R29, R105 and A94 name it as a coordinator-change path beside the owner handoff; R108 and R148 keep the list read-free outside a live Orca terminal and bound its continuation check inside one. Requirement and scenario numbers follow main and are renumbered after pod#109 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A successor whose claim is reserved and whose coordinator a verified Orca window ended showed "rerun the same internal succession claim" as its primary action, although completing the claim needs coordinator authority first. Status now keeps the available window continuation step primary until authority has moved; after pod continue it points to completing the original claim. Succession and window semantics are unchanged. Adds an end-to-end regression in tests/test_window_status.py: reserved claim, verified window, status order, pod continue, then claim completion with its original decision. Part of #110 (review round 2, WC2-R5). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One deadline now bounds every Orca read of the objective list's window discovery: each read's timeout is clamped to the time left, no worker page starts once it is spent, and the first runtime read is inside it. A failed, timed-out or partial read lists as continuation unknown with its reason, never as a refusal. Detection checks the attempt bound, so status and the list never offer a step that refuses attempts_full, while the pending claimant's own rerun stays available. Each row keeps the transition's initial readback unchanged across retries and every ended attempt's readback, time and runtime, validated and preflighted. Inside Orca the list reads only the personal authorization_verifier setting, and with none it reads nothing from Orca or a provider; R108, A256 and R159 with A533 to A537 say so. Committed regressions cover the auditor's interruption, second-restart and preceding-helper controls. Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A window block appears only to a reader that is not the recorded coordinator, so a claim rerun from that terminal cannot succeed; status keeps the window step or its lead task first in both cases. Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stop discovery before further peer, history or objective reads after its deadline, and list unavailable admission reads as unknown while preserving continuation execution with UNKNOWN admissions. Add focused regressions and align A537 coverage. Part of #110. Co-Authored-By: Codex GPT-6.1 Sol <noreply@openai.com>
Clamp local Git timeouts to the remaining discovery budget and stop reads after exhaustion. Preserve existing timeouts and failure handling for callers without a deadline. Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Check the discovery deadline before each immutable chunk read and propagate exhaustion through peer loading and objective rereads. Include context/history ancestry, directory metadata and verifier setting/process-start checks, with failing-before regressions and A537 coverage. Part of #110. Co-Authored-By: Codex GPT-6.1 Sol <noreply@openai.com>
Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The list runs no closed peer's full closure proof, whose config, Governor, governance and source reads its budget cannot bound; such a row lists continuation unknown (peer_closure_unverified), and status and the command prove it. A537 names the Git-read clamp, the closure skip and the single unchecked metadata lookups. Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Publish only rows finished before the shared deadline, isolate read-only repository inventory and cache access, and keep exhausted reads unknown. Add worker-boundary regressions and align the discovery contract and coverage. Part of #110. Co-Authored-By: Codex (GPT-6.1 Sol) <noreply@openai.com>
It asserts the list returns by a short real deadline, which the lane rules place in serial. Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Distinguish fatal Git origin reads from proved absence, preserve worktree stat errors, and check ancestor Git markers without swallowing access failures during discovery. Cover the process and stat boundaries while keeping ordinary status and command behavior. Part of #110. Co-Authored-By: Codex (GPT-6.1 Sol) <noreply@openai.com>
The detector reduced an evidence closure it could not inspect to absent, so the list could offer a continuation the command refuses. It now lists closure_unreadable as unknown. Part of #110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Part of #110.
Summary
An owner-authorized Orca stop or restart ends every live terminal, including each open objective's coordinator. Until now each such objective needed its own owner decision (R105 handoff) before a new coordinator could continue it. This change adds a third coordinator-change path,
pod continue --objective ID --json(internalwindow-continuation). It continues an open objective whose recorded coordinator a verified owner-authorized window ended, with derived provenance and no per-objective owner decision.orca_window, schemace-orca-window/v1). That window's pre-stop runtime must be the objective's recorded runtime, and it must have seen the recorded coordinator live at its final read. A drain that ended no session, an unauthorized or unverifiable restart, or a missing verifier each refuses with a named condition.window_continuationrow, rebinds the existing Run withrun-useand rereads it, then writes the row done. Reruns finish an interrupted attempt; a lost pending claimant is replaced; a second claimant is refused; a done replay writes nothing. Each ended attempt keeps its observation.pod status --objective;pod status --listinside a live Orca terminal with a verifier.continuation unknownwith a reason. A closed peer sharing the Run is left to status and the command to prove.Spec
Verification
tests/test_window_continuation.py,tests/test_window_status.py,tests/test_discovery_bound.pyandtests/test_discovery_git_budget.py. One wall-clock test moves into the serial lane; no budget or target changes.🤖 Generated with Claude Code