# Native runtime evidence sheet for [#17885](https://git.cafe/pingdotgg/t3code/pull/17885)

Additional observation beyond the scheduling outcome: on base the subscribed last snapshot remained at A=waiting even though A=completed had persisted. This is recorded as an observer limitation, not attributed to this PR. The authoritative persisted sequence is included alongside that stale snapshot.

What else changed:

- Expected N1: W inherits hold on base; on head W is eligible and starts once after A settles. Q stays byte-for-byte held, never starts, and has null start/completion on both sides. Native child completes on both sides; its completed projection and a later consumed wake appear on head.
- Expected N2: persisted notification provenance changes from agent/provider to agent/server. Both runtimes retain Q and W until Resume and deliver one command-detail prompt afterward. The native pair therefore demonstrates the provenance change and preserved release behavior; the direct adapter scratch replay is the red/green assertion of the actual delivery value.
- Generated thread/run/attempt/message/provider-turn/native-task IDs, timestamps, ports, synthetic paths, command process IDs, provider response wording, native latency and step cadence differ. The raw diff retains those differences; the semantic diff omits only the explicitly stated fields.
- N1 runs the same driver and seed prompts on fresh databases. Head reaches two conditional MCP progress pings. Base times out waiting on its stale last streamed snapshot, so those later conditional pings do not execute. This limits comparison of post-failure ping behavior; it does not alter the captured held-W creation boundary or persisted completed-A state.
- Initial cancelled/interrupted work and the number of native frames emitted before Stop differ with provider scheduling. These are setup timing differences, not new prompt behavior. Resuming N2 renumbers released queue ordinals on both sides; stable run IDs retain their original ordinal suffix.
- No visual surface changed or was captured. No claim is made that nothing else changed at zero threshold. No claim is made about the separate idle-launch Claude adapter variant described in the matrix.


Environment: fs-33; Linux 6.1.102 x86_64; Node v26.12.1; Vite+ / Vitest 5.0.5; Claude Code 2.1.303 / claude-sonnet-5-5; Codex CLI 0.163.0 / gpt-5.6-sol. Real CLIs use the existing CLIProxyAPI hub. Backend: each checkout’s real apps/server/src/bin.ts start entry, development origin, file watcher disabled. Client: HTTP project RPC, WebSocket orchestration RPC, isolated t3 thread send CLI/MCP. Fresh synthetic databases with T3CODE_DEV_SEED=0. Real UTC clock. Browser/device/viewport/theme/DPR/font scaling: not applicable to this server-only capture.

Before [e5ea25d129](https://github.com/pingdotgg/t3code/commit/e5ea25d1292e5342db8508bf48ded67b88b82b82); after [c740ee52fa](https://github.com/pingdotgg/t3code/commit/c740ee52fabfabea61f16a43a1591c5777d54eca). Both native pairs used the same driver per pair, fresh databases created by each revision, and identical synthetic prompts. They are real app/backend + real provider CLI captures, not adapter replays or forged provider commands. The backend runs without Vite’s watcher because test cache writes restarted the watcher during the first attempt. No live T3 database was read or seeded.

## Pair recordings and state diffs

| Recording / matrix rows; viewport and theme N/A | Before — [e5ea25d129](https://github.com/pingdotgg/t3code/commit/e5ea25d1292e5342db8508bf48ded67b88b82b82) | After — [c740ee52fa](https://github.com/pingdotgg/t3code/commit/c740ee52fabfabea61f16a43a1591c5777d54eca) | Diff0 (exact run state) | DiffT (semantic run state) |
|---|---|---|---|---|
| N1 / Claude / F01, F02, F03 | [N1-claude-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/450a23d0032b908e/N1-claude-before.txt) | [N1-claude-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/853adbbc230371cf/N1-claude-after.txt) | [N1-claude-diff0.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/869e4c1f745a80e2/N1-claude-diff0.txt) | [N1-claude-diffT.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b014204e5f1bb082/N1-claude-diffT.txt) |
| N2 / Codex / F06, F20 | [N2-codex-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/035c65ed767de5f5/N2-codex-before.txt) | [N2-codex-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/48dbdf6ae9e04b02/N2-codex-after.txt) | [N2-codex-diff0.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3c6ec9b28134dc84/N2-codex-diff0.txt) | [N2-codex-diffT.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e91c49d5d7de3351/N2-codex-diffT.txt) |

No image threshold applies. Diff0 preserves every run-state character. DiffT compares stable original run identity, status, held flag and presence of start/completion; UUIDs, timestamps, ordinal renumbering, queue position and provider wording are omitted. The transcript itself preserves all selected event payloads and safe native frames. A reader can rebuild other diffs from the archive.

Drivers / seeding: [N1 identical driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b4eef0048aa9dc8a/runtime-driver.mjs); [N2 identical final driver](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9084a8ea214708f/runtime-driver-final-codex.mjs); [acceptance checker](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5ab9af48b2524aba/verify-runtime-captures.py); [all source scripts, generators, scratch tests, configs and test overlays](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b94db99c2be4f03b/reproduction-scripts-and-scratch-tests.zip). Each runtime driver is also its seed script. [Machine-checked acceptance facts](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0da2c91084382486/runtime-acceptance.json). [Full test logs, synthetic driver/event captures and all 15 attempted runs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b81371d0459f171f/capture-logs-and-attempts.zip). Rejected/race-missed attempts remain in that archive but are not offered as acceptance proof.

## Narrated steps and timestamped boundaries

N1 steps: user starts a long turn; queues Q; Stop commits; wait for interruption; isolated CLI/MCP starts A beside Q; real 30-second background completion arrives during settlement of A; observe W scheduling without releasing Q; on successful progression, send two CLI/MCP progress pings, observe child finalization and later wake. Every driver action/prompt has a timestamp above its native/event consequences in the transcript. Event sequence, not occurredAt, determines persisted order: completion timestamps can be generated before their transaction commits.

**N1 before**: thread `a035e4a9-1786-40dd-88eb-f61e40b2be4a`; A original run 3, Q original run 2, W original run 4. Full run/attempt/message/provider-thread/provider-turn IDs are in the linked transcript. W created at sequence 81 with A still blocking, Q held, no Stop marker for A. W held=true (null means absent/unheld), source agent/provider. A persisted completed. W finishes `queued` with 0 start transition; Q byte-equal=true, no start/end. Native local_agent `ace1e666a6ca6d142` completed at 2026-10-27T14:35:57.680Z with `PROBE_17885_OK`. Persisted same-ID subagent updates: 0; completed projection=false; later wake completed=false.

**N1 after**: thread `ca7117cf-6070-4109-9560-73268f0fb747`; A original run 3, Q original run 2, W original run 4. Full run/attempt/message/provider-thread/provider-turn IDs are in the linked transcript. W created at sequence 75 with A still blocking, Q held, no Stop marker for A. W held=none (null means absent/unheld), source agent/provider. A persisted completed. W finishes `completed` with 1 start transition; Q byte-equal=true, no start/end. Native local_agent `a9a11523fb32b2498` completed at 2026-10-27T14:31:58.390Z with `PROBE_17885_OK`. Persisted same-ID subagent updates: 63; completed projection=true; later wake completed=true.

On base the native child completes despite W staying held; the server never creates its subagent row within the captured interval. Do not describe this as the native child failing to finish. On head the native ID maps to one persisted subagent that progresses and completes, and original run 7 consumes the later native completion. The two MCP pings are original runs 5 and 6 and are not counted as provider wakes.

N2 steps: same initial Stop/held-Q setup; MCP starts root command with 45-second native Node timer; root ends without polling; MCP starts a companion command and consumes its exit before ending companion turn; observe 90 seconds without queue release; explicit Resume; observe 45 seconds. The root command completion arrives during companion work, after the root turn has settled. No forged native frames.

**N2 before**: thread `b04a1de0-04b7-4360-948c-5953930605b7`; native root turn `01a17dcb-b8d5-7c20-94f1-1d4962d0bbb4`, command `exec-7a1210c5-8652-415d-a82c-89209dfe091e`. Root settled 2026-10-27T14:38:06.385Z; actual command completed 2026-10-27T14:38:49.369Z; W original run 5 queued held at sequence 99 while companion run 4 blocks and Q original run 2 is held. Persisted provenance agent/provider. Q byte-equal before release=true. Resume 2026-10-27T14:39:41.772Z; native turn/start count between completion and Resume=0; command-detail prompt start after Resume=2026-10-27T14:39:47.469Z, exactly 1; Q and W both complete. Complete attempt/message/provider-turn mappings appear in the transcript.

**N2 after**: thread `048117d8-6dc8-408b-8fea-7aefe4265b64`; native root turn `01a17dcb-b49e-7930-80bf-8573423d2ad2`, command `exec-00db3a19-26dd-4d27-bda5-c12fc13530c8`. Root settled 2026-10-27T14:38:07.899Z; actual command completed 2026-10-27T14:38:49.932Z; W original run 5 queued held at sequence 93 while companion run 4 blocks and Q original run 2 is held. Persisted provenance agent/server. Q byte-equal before release=true. Resume 2026-10-27T14:39:43.116Z; native turn/start count between completion and Resume=0; command-detail prompt start after Resume=2026-10-27T14:39:48.081Z, exactly 1; Q and W both complete. Complete attempt/message/provider-turn mappings appear in the transcript.

The runtime logs show the concrete command-to-notification-to-held-run-to-native-input chain. The offer request’s delivery property was not directly logged by the runtime: its value is inferred from persisted provenance and the unchanged continuation mapping. The separately linked direct Codex adapter replay observes the actual offer object and proves `message_text` on head for exit 0, nonzero and null; undefined on base.

No missing required native pair. Unverified beyond the matrix minimum: identical post-failure N1 ping comparison (base never reaches those conditional steps), an independent idle-launch Claude adapter variant, and live sessions for providers other than Claude/Codex.
