Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
Thanks for the PR. The code reads correctly at 5c349ba, but it needs one live run before merge. All 14 of 14 checks pass at this head, and I know of no conflicts. This PR changes the production route for replay divergence capture and for ref publication. Finalization used to refuse any rebuilt record. Now it publishes into the latest record of the same lifetime, see session-replay-command.ts. Refs that were suppressed as stale-capture before can now be published on a live replay. Only mocked-dispatch fixtures cover this route, and the PR body says live provider evidence is still pending. Those tests cannot show that a divergence ref published on a real device works in the next command. Please do one run at 5c349ba on an iOS simulator or an Android device. Run a Not blocking, take or leave: I read the merge-base and 8fc9fe9 code paths but did not run the tests or the planted-regression mutations. I also did not check whether every open or replacement path could carry the old snapshot, generation, runtime revision and refFrame together in a same-entry |
|
Completed the requested live control at exact head The helper control reported Ran a native script containing {
"code": "REPLAY_DIVERGENCE",
"reason": "selector_not_found",
"screen": {
"state": "available",
"refsGeneration": 206361,
"refs": [{"ref": "e11", "role": "text", "label": "Network & internet"}]
}
}Without another snapshot, the separate command |
|
Thanks for the live run at 5c349ba. It covers the route I asked about: the replay divergence returned |
10ff582 to
f36994c
Compare
974356e to
b08a3f6
Compare
b08a3f6 to
c0cb32f
Compare
c0cb32f to
0e24d48
Compare
0e24d48 to
7f2e379
Compare
7857480 to
57c2f32
Compare
57c2f32 to
a6b53be
Compare
|
The earlier concern is addressed: the lifetime changes through open, replay and shutdown now look correct at 57c2f32, but one gap in the iOS launch-prompt route still needs live proof. Commit 75ea97f changes how The head moved to a6b53be after this review. The new commit comes from the base branch (it joins daemon dispatches before shutdown retires session admission), so this verdict still describes 57c2f32. I will check the new head separately. |
a6b53be to
d652aef
Compare
|
The requested live prompt evidence remains pending; the mocked controls do not establish the real runner button shape. I am tracking the current iOS smoke job and will only count it if it reaches the URL open and subsequent app read. Historical failed runs do not count as passing proof. The help and command documentation now describe both |
There was a problem hiding this comment.
All reported issues were addressed across 90 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
1551ae2 to
8039c90
Compare
|
Thanks for the update. The delta at 8039c90 fixes the selector recorder (r4176770576) and the launch-confirmation diagnostic (r4176770608), but one optional recorder still throws when a session lifetime ends mid-request. The two guarded recorders, session-action-recorder.ts:120 and selector-recording.ts:140, now return when Not blocking, and you can take or leave these: d652aef adds the guard to On the open threads, r4176770587, r4176770590 and r4176770595 still apply even though they are marked resolved (all three point at the unguarded I did not run local tests, and I did not trace the claim that existing-session locks keep retirement out of a request through request-binding.ts and daemon-session-idle-expiry.ts. The red-without-fix claims rest on reading the pre-fix code. I did not check whether the open timeout covers two extra 10s alert reads on the failed-accept route. Smoke Tests was still running when I checked, so CI is pending. I know of no conflicts. Before merge, please fix and test |
|
The remaining optional recorder was real: my earlier replies overstated coverage. It is now fixed at The exact-head affected gate passed 13,443 tests with one skipped, twelve documentation controls and selected tooling. #3152/#3155 are rebased and pushed with their own passing gates. Fresh CI remains pending. Native verification at this head captured the real SpringBoard title and exactly Screenshots show the fresh attempt before and after. JSON files retain the raw alert and refusal response. The isolated session/daemon/device are being cleaned up. Physical recording-health remains blocked by signing. Observed alert (before acceptance): {
"success": true,
"data": {
"message": "Open in \u201cAgent Device Tester\u201d?",
"items": [
"Cancel",
"Open"
]
}
}Open result: {
"success": false,
"error": {
"code": "COMMAND_FAILED",
"details": {
"reason": "launch_confirmation_unanswered",
"appBundleId": "com.callstack.agentdevicelab",
"dispatched": "unknown"
}
}
} |
|
Thanks for the update. The alert and clipboard recording fixes at 62d6af6 look right, but the live iOS evidence is still missing. The alert, clipboard and settings handlers now record through the guarded The live run requested earlier has not happened yet (launch-confirmation.ts#L135). Your two native attempts raised the prompt with simctl first, then had the CLI dispatch the URL a second time. That is a different route with two hand-offs, and both runs returned Of the earlier inline threads, none of the P1 or P2 threads still apply. These are done or intentional, so please resolve them: snapshot-settings, recordIfSession, snapshot-alert and selector-recording are fixed at this head. request-generic-dispatch and interaction-runtime are intentional, because the finalizer keeps Smoke Tests is still running. It exercises iOS |
|
The iOS Smoke Tests job at 62d6af6 is green, and it covers the open-URL route I asked about. Its live fixture scenario runs |
|
Verified the accepted alternative at exact head This verifies the ordinary single-dispatch route required by your latest review. The artifact does not separately retain the |


Summary
Preserve captured session lifetimes through open, replay, interactions and shutdown. Alert and settings now share the optional action recorder and skip journals after retirement; delete their duplicate recorder. Snapshot/interaction finalizers retain strict readiness checks.
Refuse Apple open success when a recognized URL confirmation remains after failed acceptance, even if the app runs behind it. Help describes this failure and the English-title plus Cancel/Open recognition rule. Consolidates eight original layers; depends on #3140. Related to #3116.
Validation
62d6af6340:pnpm check:affected --runpassed 13,443 tests with one skipped, twelve documentation controls and selected tooling. All 52 focused recorder/prompt controls pass. Both alert regressions were red; clipboard and first-read button-shape mutants were red.iOS smoke at unchanged prompt code reaches cold URL open and subsequent destination reads. Fresh CI is pending. Dedicated local prompt verification captured exactly Cancel/Open but its first native accept timed out and correctly refused success; positive accepted-response proof remains pending. Physical recording-health remains blocked by Xcode signing. User handles merges.