# Evidence matrix — PR [#23456](https://git.cafe/pingdotgg/t3code/pulls/23456)

Head [dca0af89a8](https://git.cafe/pingdotgg/t3code/commit/dca0af89a8b60ae4a5dd81859fa5ee06c7544aaf), base [96bae5465b](https://git.cafe/pingdotgg/t3code/commit/96bae5465bc5dfaedc890998a7a71672fb470ae2). Capture 2026-10-22 UTC. This is evidence delivery, not a merge approval.

| Row | Evidence captured | Scope / honest limit |
| --- | --- | --- |
| A | Existing after.txt retained byte-for-byte: attached T3 child completes PONG after parent settlement; before/red/tests also retained. | Sufficient sequential behavior per pass 1; not repeated. Historical process provenance cannot be retroactively reconstructed because its checkout/state are absent. Ignore the old artifact's incorrect empty-matrix assertion. |
| U | Fresh real Codex native child, persisted origin `provider_native`, app owner, provider thread and parent subagent mapping in U-before.json. Only parent attached before settle. At 10:20:30.145 cleanup sees empty attachments, native child unload ends .158; parent unload ends .161. Selected native unsubscribe requests and acknowledgments corroborate. | Actual app server, real Codex, normal MCP settlement. Diagnostic service harness is loaded, with U gates unarmed; this is **instrumented runtime capture**, not an unmodified/UI run or unit test. |
| C1 | Real T3-delegated child (`app_owned`) initially detached. Parent cleanup paused before this child-owner lock 10:23:13.616. Normal app child send resumes 10:23:24.319–.638 and completes C1_PONG. Release 10:23:44.952; cleanup recheck .955 finds child attached and skips unload. Same child's C1_AFTER_CLEANUP durably completes 10:23:59.522, with no intervening native unsubscribe. | **Instrumented service-harness runtime capture**, real server/provider and persisted runs/messages. Gate artificially creates overlap. Native child cannot receive app messages, so this follow-up uses T3-delegated lineage, as existing A does. |
| C2 | Real parent settlement unloads detached delegated child. Native unsubscribe acknowledged, then harness gates unload return 10:25:39.811. Child requests same lock 10:25:40.383 while attachments/loaded set empty. Release .383; unload returns .386; cleanup lock request 3 finishes .405; attach request 4 acquires .413. Native resume follows; C2_PONG durably completes 10:25:44.053. | **Instrumented service-harness runtime capture** with real provider traffic. Delay is after native acknowledgment and before unload effect returns (~572ms); proves manager unload/attach serialization. Does **not** prove an attach while the native unsubscribe wire request itself is pending or naturally occurring production contention. Timeout unchanged. |
| P | PID/cwd/executable/argv/runtime identity and clean HEAD/source hashes for instrumented run. Separate PID 636010 loads 971 project modules unchanged, all matching HEAD blobs; manager loaded digest equals final-head `2424f84d8cebaf64133f5d915127f0752e22e146d2fa5498c50fcc2e8c6d70f3`. Real normal-app FINAL_HEAD_PONG durably completes in that unmodified server session. | New-run provenance independently corroborated. Instrumented PID 604978 has separately recorded original and transformed manager digests; never described as byte-identical execution. Historical A process attestation remains unavailable. |

Read `commands.md`, `diagnostic.ndjson`, `protocol.ndjson`, `persisted-results.json`, `final-projections.json`, and provenance files together. No mocked adapters/test output are represented as runtime proof. The existing 43 passing tests were not rerun. Web/desktop/mobile share this changed server lifecycle, but no visual clients, OpenCode, relay, tunnel or mobile runtime were tested.

## Status — one Cafe read

Exact supplied head. 34 successful, 0 pending, 0 failing checks. Conflict readiness pending because Cafe reported its older-base conflict snapshot stale (`current:false`); no status polling. No merge-readiness claim.

## FRICTION / remaining limits

- Historical runtime checkout and isolated DB absent; no reconstruction of the old unloaded IDs or old server process. Fresh U mapping supplied instead.
- Native app thread follow-up rejected: “This subagent is run by its provider and cannot take messages. Message the parent thread instead.” Initial C1 native attempt retained; switched to explicitly identified T3-delegated child.
- First background launch did not survive the shell. Subsequent servers used tracked foreground tool sessions and captured runtime PIDs. `project list` is not a supported CLI command; used project add and snapshots instead.
- Native logs have a `[timestamp] NTIVE:` prefix, not bare NDJSON; extractor corrected and included for inspection.
- C1/C2 require diagnostic gates. If acceptance demands entirely uninstrumented contention or native wire-in-flight overlap, those specific proofs remain missing. Do not silently mark them covered by the old unit test.
- All three running server PIDs exited; port 28946 empty. Checkout clean. Isolated state and private raw logs deleted after selected extraction. Sanitized scripts/transcripts retained. No tracked edits, commits, pushes, PR edits/comments, merges, watches or repeated forge reads.

Model/harness: gpt-6.1-sol through Codex in T3 Code.
