fix: tune iOS runner response retention#665
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. |
|
Addressed the retention-default finding in Validation rerun: |
ReviewGood change. Replacing the heuristic Notes:
LGTM pending CI. Generated by Claude Code |
thymikee
left a comment
There was a problem hiding this comment.
Reviewed current head d243f1b06. No blocking findings.
The previous retention-policy concern is addressed: shouldRetainResponseJson is now exhaustive over CommandType, so future runner commands must make an explicit retention decision at compile time. The 16 KB cap and snapshot/screenshot exclusions remain intact.
|
Confirmed the behavioral-change note: retaining small targeted results such as
Keeping the switch exhaustive is deliberate despite the longer retain list, since it forces every future runner command to make an explicit retention decision. |
|
Summary
Tune the iOS runner command journal retention policy so small lifecycle responses remain recoverable from
lifecycleResponseJson, while snapshot and screenshot commands finish without retained response JSON.The retention fixture now documents the policy for scalar responses, small object/node responses, snapshot trees, screenshots, oversized JSON, and snapshot error metadata. Error code/message/hint fields remain available even when response JSON is intentionally dropped.
Touched-file count: 1. Scope stayed within the iOS runner command journal.
Validation
pnpm formatpassed.pnpm typecheckpassed.pnpm exec vitest run src/platforms/ios/__tests__/runner-session.test.ts src/platforms/ios/__tests__/runner-client.test.tspassed: 58 tests.pnpm build:xcuitestpassed for iOS and macOS runner targets.pnpm buildpassed before runtime validation.pnpm clean:daemonran before and after runtime validation.Simulator validation on iPhone 17 Pro (
C25DBB5B-9254-4293-A8D5-2785C78DE03A): direct runner status recovered a smalluptimeresponse fromlifecycleResponseJson; a snapshot command reportedcompletedandlifecycleResponseOk=truewith no retained response JSON; three repeated snapshots completed; a finaluptimeconfirmed the runner stayed responsive. A stale validationxcodebuildPID was found and stopped, and the final process check only matched the check command itself.Known gap: the public CLI does not expose the internal runner
statuscommand, so retained-response evidence used the runner client directly rather than a named daemon session.