{{ message }}
Repository navigation
fix(mothership): report a paused Copilot workflow whose cancel lost the race to an unreported terminal run - #9293
Merged
Conversation
…he race to an unreported terminal run
Contributor
There was a problem hiding this comment.
No issues found across 2 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Heads up: you’re close to your flex budget. Increase your flex budget so reviews don’t pause.
Turn on auto-fix | Re-trigger cubic
Contributor
This branch was previously deployed
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
finalizePausedCancellationForTerminalRunruns when a cancel of a paused run loses the race to another writer that already made the run terminal. That writer may never report the Copilot tool bound to the execution: the stale-execution sweep, or a resume worker killed after its log write. The tool then waits out the Copilot client wait.reportCopilotToolForSettledPause, the same ascompletePausedCancellation. The reporter is idempotent: it does nothing unless the log is terminal, a CAS lets only arunningrow claimed by this execution through, and it never throws. A report the winner already made is therefore a no-op.Type of Change
Testing
workflow-client-settlement.integration.ts: 13/13. New: a paused execution whose cancel lost the race to a run that failed unreported is delivered to the waiting Copilot turn. It goes red without the call.human-in-the-loop-managerpluslib/execution(1306 pass).check:test-patternsand biome pass. Full type-check andcheck:auditsrun in CI.Checklist
test-auditauthoring gate)