fix(toolwalk): observe displaced submission outcomes - #1138
Conversation
6a3cd1f to
57abd5a
Compare
63cf9fc to
d223738
Compare
f5186fb to
d2876bb
Compare
d223738 to
eb64af3
Compare
* fix(toolwalk): retain immutable timeout authority * test(toolwalk): prove displaced timeout orchestration * docs(plan): record timeout authority regression evidence
d2876bb to
1f996d8
Compare
626f2bb
into
codex/issue-1128-submission-handle
|
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1f996d8b53
ℹ️ 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".
| for task in submissionStreamTasks.values { | ||
| task.cancel() |
There was a problem hiding this comment.
Preserve submission state when cancelling streams
When A remains passively observed after B displacement and a later C starts, this registry contains both local streams, so reset() or load() cancels them here. HarnessClient.streamEvents responds to cancellation by normally finishing its AsyncThrowingStream; consequently the for try await in submit() falls through to recordSubmissionFailure(... "run event stream ended before a terminal event") instead of entering the CancellationError catch. The detached A/C handles are therefore rewritten as transport failures, and an outstanding waiter can report a false failure after an intentional conversation switch; suppress the post-loop EOF failure when the parent task is cancelled.
Useful? React with 👍 / 👎.
* 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)
* 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)
* 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)
* 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)
Closes #1133
Scope
Passive observation: a selected scheduled B revokes A controls but not A terminal/failure/EOF outcome observation. The merged #1136 child supplies the immutable exact-A cancellation capability; combined acceptance proves terminal judging after B and A-only timeout cancellation after B→C.
Evidence
swift test --package-path macapp --filter PassiveSubmissionOutcomeIntegrationTests(10/10 combined suite)swift format lint --strict --recursive macapp/Sources macapp/Testsswift test --package-path macapp(247 tests / 46 suites)./scripts/test-regression.sh: normal, race, coverage 85.5%, zero uncovered functionsStacked base:
codex/issue-1128-submission-handle/ #1129.