# Evidence index — issue 24300

Audited checkout: [4a840995](https://git.cafe/pingdotgg/t3code/commit/4a840995dada0a22f22cb68d32b0cb666bb40ba9), clean at packaging time. Final comparison base / merged-in main: [1c10563ddb](https://git.cafe/pingdotgg/t3code/commit/1c10563ddb33). This means main merged into the implementation branch, not a claim that this fix has landed. Before runtime used then-current main [2fd28bf938](https://git.cafe/pingdotgg/t3code/commit/2fd28bf938).

- [Final exact-head runtime transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bb21091b109b573a/runtime-final.md) — primary agent's real web/server observation.
- [Sanitized protocol milestones](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/83ed1da753e044bb/runtime-milestones.txt) — independently extracted allowlisted fields, plus explicitly attributed lead observations and current captured-PID absence check.
- [Recorded test evidence](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a0aa951b5de0983e/test-evidence.md) — exact-head check summary, earlier adapter green, resume guard mutation red/restored green accounting.
- [Before runtime](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca65e70a6ed5a55f/runtime-before.md).
- [Initial red summary](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d3ca317dd4f6bbe1/red-tests.txt) — reported by prior test agent; summarized, not raw runner output.
- [Pass-1 matrix and audit](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/762265305cbec559/matrix-pass1.md) — historical checklist, superseded by final evidence for runtime and integration findings.

## Capture accounting

| Matrix | Required rows | Captured rows | Status |
|---|---:|---:|---|
| Visual | 0 | 0 | Complete: server-only exception; red tests plus runtime transcript |

Only server behavior and internal provider transport/lifecycle code changed, across six implementation/test files. No client render paths or wire schemas changed. Web, desktop and mobile receive existing failure presentation. Other providers unchanged. No screenshots or recordings are required or claimed.

## Six regression cases

| Case | Evidence |
|---|---|
| Adapter: unanswered thread/start | Initial reported red; four-case focused green at earlier head; exact-head full affected check; final controlled SIGSTOP runtime |
| Adapter: session retirement after deadline | Four-case focused green at earlier head; exact-head full affected check; final runtime cleanup (absent from initial red filter) |
| Adapter: unanswered turn/start | Initial reported red; earlier focused green; exact-head full affected check; no separate final real-process turn/start stall capture |
| Adapter: idle transport death | Initial reported red; earlier focused green; exact-head full affected check; final idle SIGKILL/replacement runtime |
| Service: unknown setup outcome cannot retry | Exact-head full affected check; final runtime no automatic replacement after timeout; interim runtime had exposed this integration gap |
| Service: unknown resume outcome cannot create fresh thread | Direct fallbackEnsureThread assertion fails with resume guard removed, passes when restored; exact-head full affected check |

The four-adapter focused green was at [7a5e564496](https://git.cafe/pingdotgg/t3code/commit/7a5e564496ce5fbbec63e5865f4b9967fbe8415a), not final head. Exact-head check: 140 tests in four files, format, lint, two knip checks, GraphQL and typechecks of three affected packages passed; existing lint warnings only. This was the changed-file check, not the entire repository suite. Resume assertion red/restored green preceded final head; final affected suite includes all six cases.

## Runtime conclusion and limits

Linux Ubuntu fs-04, x86_64, native codex-cli 0.163.0, isolated worktree state, primary's real web client/server. Final outgoing thread/start at 22:54:29.245 UTC; lead-recorded persisted failure at 22:56:29.258 (120.013 seconds). Original stopped PID gone by 22:56:39 with no replacement until explicit manual request. Manual replacement completed; subsequent idle process death retired the shared session, and an existing native thread resumed on a distinct process and completed. All wrapper-recorded PIDs are absent at packaging. Primary reports its server stopped; packager launched no server/browser/test and signalled no process.

The fixed 120-second threshold bounds setup/request acceptance, not model/tool execution. Shared-process retirement can interrupt sibling turns. This changes an indefinite wait into bounded failure and retirement; it does not prove the original natural hours-long backlog cause. Windows/macOS process cleanup, natural workload lag, archived-thread unarchive recovery and a silent resume deadline were not independently exercised here.

## FRICTION

- Interim after capture was invalidated by a Node-watch restart; the uninterrupted interim attempt then discovered automatic retry. Neither is used as final proof. Final uninterrupted exact-head capture records the corrected behavior.
- Initial red artifact is a reported summary and omits the fourth adapter case. No stronger red coverage claim is made.
- Before state seeding failed on migration mismatch; empty isolated state was used and labelled by primary.
- Final lead narrative rounds baseline display to 22:54:24; raw allowlisted marker is 22:54:24.848 and completion 22:54:25.138. No material deadline discrepancy.
- PID/projection/UI observations are attributed to the primary; protocol milestones independently cross-check requests and completions. This packaging audit did not rerun the experiment.
- No upload/tooling blocker. Only sanitized artifacts were uploaded via ghdrop; no settings, environment, auth, startup URLs or whole provider trace uploaded. No implementation edits, commits, pushes, merges or watches.
