Skip to content

Make Git execution interruptible with completion views - #471

Merged
JacobStephens2 merged 2 commits into
issue-465from
issue-467
Oct 7, 2026
Merged

JacobStephens2 merged 2 commits into
issue-465from
issue-467

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

Ordinary Git now stops when its Command is interrupted. Independent completion views finish salvage and cleanup without clearing the interruption or permitting ordinary work to resume.

Git::new(directory) → shared captured execution → stop, reap, join on interruption
Git::completion()   → shared captured execution → finish with interruption recorded
                     ├─ Failed run salvage
                     ├─ confirmed Self-merge branch deletion and reconciliation
                     └─ Claim ending and both worktree Drop paths

Optional and boolean Git probes propagate cancellation and transport failures. Git retains its diagnostics and ten-second held-lock retry; GitHub captures remain on their existing implementation for the next Ticket.

Closes #467

Evidence

  • Before: ordinary_git_refuses_to_spawn_after_interruption failed: Git returned Ok("") and ran the alias after SIGINT.
    After: it returns interrupted without spawning. Git fixtures cover SIGINT, SIGTERM and SIGHUP, active cancellation, independent completion views, optional/boolean answers, transport failures and held-lock retries.
  • Before: routing Git through ordinary execution without completion propagation left the worktree behind in sigint_while_the_session_runs_stops_it_and_fails_the_run.
    After: interrupted salvage pushes the work and removes the worktree; rejected interrupted salvage retains the local work and reports its head. All 12 Failed run and 18 Merge run checks pass.
  • Final validation: cargo fmt --check and cargo clippy --all-targets -- -D warnings pass. cargo test: 1,270 passed, 0 failed; the existing manual latency probe remains ignored.

Test seams

  • Bound Git operations (run, succeeds, optional probes and completion views) against real temporary repositories and executable fixtures, with isolated Command interruption.
  • Existing Command workflows for Failed run salvage, Merge run completion, worktree cleanup and Claim ending.

Review

Reviewed against issue-465, pinned to 1fbb06b, including the inherited #466 prerequisite.

Standards

Both findings addressed: removed redundant Git parameters from the Worktree interface and reused the execution owner's signal-test isolation helper. The reviewer verified both fixes.

Spec

No findings.

Unaddressed findings

Standards

None; both findings were addressed.

Spec

None; no findings were reported.

Merge Danger

Door: two-way

No persisted-state migration; reverting restores the prior execution behavior.

Blast Radius: Command

Affects ordinary Git execution and finishing Git operations across Runs, Claims and worktree cleanup.

Built with codex · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit b3c9a41 into issue-465 Oct 7, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-467 branch October 7, 2026 00:52
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.

1 participant