fix(macapp): fence stale interactive affordances - #1123
Conversation
3421969 to
ee11ede
Compare
d1931ae to
93d0460
Compare
* 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)
4c337d6
into
codex/issue-1007-external-run-controls
|
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: 14ef088d4f
ℹ️ 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".
| // timestamped lifecycle evidence arrives. Preserve that timestamp | ||
| // so a genuinely later scheduled continuation can take visual | ||
| // ownership, while an older replay still cannot. | ||
| activeRunTimestamps[event.runID] = timestamp |
There was a problem hiding this comment.
Preserve only the lifecycle-start timestamp
Because locally submitted runs are consumed concurrently from per-run and conversation-wide streams, an A event can be applied out of order after B actually started. This assignment overwrites A's lifecycle timestamp on every selected nonterminal event: for example, A starts at t1, an A message at t3 arrives first, and B's start at t2 arrives afterward; B is then compared against t3 and incorrectly rejected even though it started after A. Keep the first timestamped lifecycle evidence instead so the newer continuation becomes the visible action owner.
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 #1122
Stack
34219699Test-first evidence
swift test --package-path macapp --filter RunSessionExternalControlTestsfailed because PendingApproval/PendingPlan had no runID and explicit expectedRunID action APIs did not exist.Verification
swift test --package-path macapp --filter TranscriptTests(19 tests)swift test --package-path macapp --filter RunSessionExternalControlTests(11 tests)swift test --package-path macapp(222 tests / 43 suites)./scripts/test-regression.sh(PASS; total coverage 85.5%, zero uncovered functions)Scope / rollback
Native in-memory state and client actions only; no server, callback, TUI, persistence, or wire change. Revert this commit to restore the prior native behavior.