fix(macapp): fence stale stop and steer actions - #1127
Conversation
d1931ae to
93d0460
Compare
d2cd29c to
2968674
Compare
2968674 to
b2ae9ba
Compare
* fix(macapp): bind ToolWalk to submitted run identity * fix(macapp): retain submitted run outcomes (#1131) * fix(toolwalk): observe displaced submission outcomes (#1138) * fix(toolwalk): observe displaced submission outcomes * fix(toolwalk): retain immutable timeout authority (#1139) * fix(toolwalk): retain immutable timeout authority * test(toolwalk): prove displaced timeout orchestration * docs(plan): record timeout authority regression evidence * docs: correct focused orchestration evidence count * fix(toolwalk): gate timeout cancellation by deadline ticket (#1146)
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
14ef088
into
codex/issue-1122-interactive-state
* fix(macapp): fence stale interactive affordances * style(macapp): format interactive control views * fix(macapp): fence stale stop and steer actions (#1127) * fix(macapp): fence stale stop and steer actions * fix(macapp): bind ToolWalk to submitted run identity (#1129) * fix(macapp): bind ToolWalk to submitted run identity * fix(macapp): retain submitted run outcomes (#1131) * fix(toolwalk): observe displaced submission outcomes (#1138) * fix(toolwalk): observe displaced submission outcomes * fix(toolwalk): retain immutable timeout authority (#1139) * fix(toolwalk): retain immutable timeout authority * test(toolwalk): prove displaced timeout orchestration * docs(plan): record timeout authority regression evidence * docs: correct focused orchestration evidence count * fix(toolwalk): gate timeout cancellation by deadline ticket (#1146)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a52c50a2f8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if !submission.isTerminal { | ||
| recordSubmissionFailure( | ||
| submission, | ||
| runID: started.runID, | ||
| message: "run event stream ended before a terminal event" | ||
| ) |
There was a problem hiding this comment.
Preserve forced-cancel state when detaching the stream
When the user presses Stop a second time before the terminal SSE arrives, cancel(runID:) marks the transcript cancelled and cancels streamTask, but HarnessClient.streamEvents represents task cancellation as a normal end-of-stream. Execution therefore reaches this unconditional EOF branch, which changes the submission to failed and—because the retired run still satisfies ownsVisibleSubmission when currentRunID is nil—overwrites the visible cancellation with a connection error and failed transcript. Reset/load detachments have the same false-failure behavior; skip EOF failure handling when the consuming task was intentionally cancelled.
Useful? React with 👍 / 👎.
* fix(macapp): bind external runs to controls * fix(macapp): fence stale interactive affordances (#1123) * fix(macapp): fence stale interactive affordances * style(macapp): format interactive control views * fix(macapp): fence stale stop and steer actions (#1127) * fix(macapp): fence stale stop and steer actions * fix(macapp): bind ToolWalk to submitted run identity (#1129) * fix(macapp): bind ToolWalk to submitted run identity * fix(macapp): retain submitted run outcomes (#1131) * fix(toolwalk): observe displaced submission outcomes (#1138) * fix(toolwalk): observe displaced submission outcomes * fix(toolwalk): retain immutable timeout authority (#1139) * fix(toolwalk): retain immutable timeout authority * test(toolwalk): prove displaced timeout orchestration * docs(plan): record timeout authority regression evidence * docs: correct focused orchestration evidence count * fix(toolwalk): gate timeout cancellation by deadline ticket (#1146)
Summary
Closes #1125
Stack
d1931ae2(codex/issue-1122-interactive-state)Test-first evidence
currentRunIDat invocation, so A could target B; deterministic A-to-B endpoint assertions define the regression.Verification
swift format lint --strict --recursive Sources Testsswift test --filter 'RunSessionExternalControlTests|ToolWalkTests'(32 tests / 4 suites)\n-swift test(225 tests / 43 suites)\n-./scripts/test-regression.sh(PASS; 85.5% coverage, zero zero-coverage functions)