Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
The change in 47b63ec looks right to me, but the live iOS run for the runner-backed recording route is still missing, and Smoke Tests failed on a step this diff does not touch. src/daemon/request-recording-health.ts:14 now inspects the handle after runner observation and checks that the resource is still the same object. That sits on the iOS runner-backed recording route (runner AVAssetWriter with showTouches), and the PR body says live validation is still pending. Without a live run, nothing shows that a real recording still adopts its runner id on the first command, still invalidates after a runner restart, and is not skipped because some production path rebuilds the screenRecording object. Please run this on an iOS simulator at this head: Not blocking: the "locked request preparation keeps its captured lifetime" cases in request-recording-health.test.ts could move to request-execution-scope.test.ts, which already mirrors that source module. Take it or leave it. I judged the regression from a read of the pre-change code. I did not run the focused tests or the claimed mutants. I also did not check whether any production path rebuilds the screenRecording object with the same handle and fence while a request is being prepared. Such a rebuild would make health observation skip silently, which is conservative, not wrong. Smoke Tests failed at step 7, the fixture home-screen text wait, with reason wait_readiness_exhausted in the runner-start phase, so the iOS runner never started within 60s. This looks unrelated: the diff only changes behavior when a session holds a runner-backed screen recording, and that scenario has none at that point. The TS2883 DurableCaptureSlotClearResult errors are in files this diff does not touch, so they appear to come from the base stack, and the build still completed. I attributed that from file paths only, not from base CI logs. A rerun of Smoke Tests should clear it. Before merge, the live iOS run at this head must show the runner id adopted and the invalidation after a runner restart, and Smoke Tests must pass on a rerun. |
|
I traced the requested live route at Update, 2026-10-03: a wired CoreDevice-backed iPhone 17 Pro is now connected and unlocked. The real Settings open succeeds, but runner build-for-testing fails before recording starts. Xcode reports The runner-exit/restart live control remains outstanding. The simulator smoke rerun passed on One acceptance detail also needs correction: a successful current physical recording start already requires |
|
Thanks, you are right. On a simulator The live check for 47b63ec now needs a CoreDevice-backed physical iPhone or iPad: |
958983e to
1f29268
Compare
47b63ec to
16c4bee
Compare
1f29268 to
cc0643b
Compare
16c4bee to
4829ba2
Compare
cc0643b to
f095e6e
Compare
4829ba2 to
f6a58ef
Compare
f095e6e to
995874e
Compare
1eec328 to
2507aae
Compare
995874e to
1a6fe40
Compare
2507aae to
a679c1e
Compare
1a6fe40 to
6c3e88b
Compare
|
Consolidated into #3140 as part of reducing #3116 to seven PRs. The composition preserves the complete pre-consolidation source tree, including tests and later review corrections. This PR is superseded; its review discussion and native evidence remain available. Outstanding findings transfer to the owning keeper in the implementation record. |
|
Summary
Locked request preparation captures the session lifetime before observing recording health. It refreshes that lifetime afterward and refuses retirement, instead of re-storing the captured record or adopting a successor. Handler context follows the same lifetime.
Recording health pins its resource across runner observation and reads the handle's latest state afterward. Intervening record rebuilds remain valid; changed handles, fences and retired sessions stay untouched.
Removes the health upsert and late binding lookup. Four files; 180 gross lines. Part of #3116, stacked on #3142.
Validation
Head
47b63ecc10: 45 focused tests passed. Three production mutants failed the intended resource, stale-upsert and context assertions; restored tests passed. Quick checks and parent-scoped Fallow passed.pnpm check:affected --base fix/session-ownership-review --runpassed on this exact head, including 796 related tests and all selected local gates. Independent read-only audit found no actionable findings. CI and live device validation remain pending.