Repository navigation
Conversation
A run left pending a commit or verification refused handoff, plan, build and resume with "reconcile before execution", and recover refused with "requires its destination-specific resume command". None of them named the command that clears the operation, so a run whose commit hook rejected the message looked permanently stuck, though checkpoint and verify both accept it. Every refusal on a pending operation now names its clearing command. A run nobody will ship also had no terminal state other than shipped, so its Chronis task stayed claimed. allstack abandon <run> --epoch N checkpoints the active worktree, records a terminal abandoned event, releases the task when this run holds the claim under any epoch, and removes the run's worktrees under the same unexpected-edit check as ship. It is refused once publication starts. Repeating it retries the release and cleanup.
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.
Summary
commitandverificationpoint tocheckpoint,verifyorabandon.publicationpoints toship. The rest point torecoverorabandon. Before this,handoff,plan,buildandresumesaid "reconcile before execution" andrecoversaid "requires its destination-specific resume command", so a run whose commit hook rejected the message looked permanently stuck.allstack abandon <run> --epoch Nends a run that will not ship. It checkpoints the active worktree, records a terminalabandonedevent (newStage::Abandoned), releases the Chronis task when this run holds the claim under any epoch, and removes the run's worktrees under the same unexpected-edit check asship. It is refused once publication starts. Repeating it retries release and cleanup. Commits already made in the original checkout stay.currenttreats an abandoned run as inactive.docs/reference/cli.mddocuments the new exit and thecheckpointroute for a pending commit.Test plan
cargo nextest run --locked: 90 passed, 2 skipped (the bootstrap tests that need a real Chronis)cargo fmt --check,cargo clippy --all-targets --locked -- -D warningsstranded_commit_names_its_exits_and_can_be_abandoned:handoffandrecoverrefusals namecheckpoint,verifyandabandon; a stale epoch is refused;abandonends the run,buildis refused afterwards, a repeat records no second eventabandon_is_refused_once_publication_starts: refused mid-publication with a pointer toship, refused after shipping, no task release in either caseonly_an_unpublished_run_can_be_abandoned_and_abandonment_is_terminal: event validation allows abandon from planning, building and verifying only, and nothing after itcnin a scratch tracker: a claim held byallstack:<run>:codex:3readsstatus:in-progress/claimed_by:<actor>, andcn releaseas that actor yieldsstatus:open, the fieldsTasks::releaseparsese7e4d8d: ubuntu-24.04, macos-15 and source-and-dependencies passLimits
Tasks::releasehas no automated test against a real Chronis; the adapter shape was checked by hand as above.1596a6d9. Abandoning it would releaset-b5248f.abandonfails if the active worktree is missing, because it checkpoints first.🤖 Generated with Claude Code