perf: recover iOS runner responses by status#661
Merged
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
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
Add status-before-invalidate recovery for iOS runner post-send transport failures. The daemon now probes
status(commandId)before invalidating a session, recovers retained small responses, preserves runner failure code/message/hint fidelity, and refuses unsafe replay when lifecycle status says a mutating command may already have completed or is still in flight.Add a protocol optimization roadmap with acceptance criteria and iOS simulator validation for follow-up work: adaptive
uptimepreflights, status-visible transport, invalidation reduction, and response retention tuning.Part of #656. Touched 6 files; scope is iOS runner recovery plus the roadmap doc, with accepted formatter-only Maestro changes kept in the branch.
Validation
Verified with the focused iOS runner retry suite, the iOS runner client/session/retry/provider unit bundle,
pnpm typecheck,pnpm format,pnpm build:xcuitest, andpnpm build.Manual iOS simulator smoke used an isolated
status-recovery-smokestate dir: opened Settings, ransnapshot -i, clicked the visible window ref, ran anothersnapshot -i, and closed the session. The daemon log showed the expected runner start, Settings activation, snapshot, tap, and snapshot flow with no unexpected invalidation or restart markers.