fix(macapp): bind external runs to controls - #1118
Conversation
5110254 to
3421969
Compare
3421969 to
ee11ede
Compare
* 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)
|
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: 4c337d65f9
ℹ️ 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 activeRunTimestamps[currentRunID] == nil, !externalRunIDs.contains(currentRunID) | ||
| { | ||
| false |
There was a problem hiding this comment.
Reconsider newer runs after provisional ownership resolves
When local A has received its startRun response but no timestamped SSE frame yet, this branch rejects every lifecycle frame from scheduled B, even when B's timestamps are genuinely newer. B is still added to activeRunIDs, but after A receives its first timestamp it is never reconsidered unless B happens to emit another lifecycle event; if B has already reached an approval/input wait, its controls remain suppressed, and A's later terminal also refuses B as a fallback because B's timestamp predates that terminal. This can leave a live scheduled continuation invisible and unactionable, so B should be reconsidered once A's provisional ownership becomes timestamped.
Useful? React with 👍 / 👎.
Closes #1007
Summary
Scheduled run activestatusTest-first evidence
RunSessionExternalControlTestsinitially failed because RunSession had neither scoped event application nor scheduled-run state.Verification
swift test --package-path macapp --filter RunSessionExternalControlTests(PASS)swift test --package-path macapp(PASS; 252 tests / 46 suites)./scripts/test-regression.sh(PASS; normal, race, coverage)Promotion note
This PR has been rebased onto the current callback merge chain and independently reviewed at its current head. The installed-app scheduled-continuation proof remains the separate #1010 convergence gate.