Evidence refresh for [#32587](https://git.cafe/pingdotgg/t3code/pull/32587): **4 / 4 requested rows captured**, 16 runs across eight before/after scenario pairs. Every after assertion passes. No unverified requested rows.

Before: merge-base [d313b2aff3](https://git.cafe/pingdotgg/t3code/commit/d313b2aff31991ab94c8ac80cdc38a54dd575604). After: head [f91433db1f](https://git.cafe/pingdotgg/t3code/commit/f91433db1fcb529d59bde305f555a33a0bb73e0e).

Environment: Ubuntu 24.04.4 LTS, Linux x86_64; `/bin/sh` = dash 0.5.12-6ubuntu5; Node v26.12.1. F01/F03: **real t3 release archive 0.1.8-nightly.20261107.4314**, cold production download and checksum verification in each fresh HOME. F12b: **fake, unversioned Node t3 serve**, with a tracked sleep process or HTTP-503 listener for unusable live sibling records. F19: **fake installed archive executable**, pinned to the same archive version, whose `--version` exits 42. All launches execute the complete rendered production launch script locally under dash, rather than over a real SSH transport.

Every fixture HOME and every artifact is under `/tmp/lead-32587-r2/capture-1/`. No live T3 home or data was used. No PR worktree edits, commits, pushes, or PR comments. Server-only surface; UI, desktop and mobile captures do not apply.

| Row | Before transcript | After transcript | Outcome shown after |
|---|---|---|---|
| F01 — cold archive, same alias, two concurrent launches | [F01-before-cold.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/36113c9abb74916d/F01-before-cold.txt) | [F01-after-cold.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ebe0154d479ca09a/F01-after-cold.txt) | Both launch commands exit 0 as managed; exactly one server start; recorded PID 2695595 is live and matches the runtime owner; no ownership error, launch lock or temporary runner. |
| F03 — cold real archive, two aliases sharing one home | [F03-before-cold.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e6441904753f9c98/F03-before-cold.txt) | [F03-after-cold.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a8447ecd3e0c55d/F03-after-cold.txt) | One managed launch and one external adopter, both exit 0 on port 3774; exactly one server PID 2697485. Shell trace explicitly resolves DEFAULT_RUNTIME_INFO, sets ADOPTED_PID, and adopts via server-runtime.json; the external alias never spawns a child. |
| F12b — reject unusable sibling records | [F12b-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/86135650f5a2c1b6/F12b-before.txt) | [F12b-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1721843106521fa0/F12b-after.txt) | Five variants: dead PID, missing port, garbage port, HTTP-503 port, and external sibling. Every variant rejects the candidate and starts exactly one new healthy managed fixture; sibling record is unchanged, new PID differs and is alive, launch locks and temporary runner are absent. |
| F19 — failed archive preflight before publication | [F19-before-archive-version-failure.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24f1c845eff1046a/F19-before-archive-version-failure.txt) | [F19-after-archive-version-failure.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/653398ddbfb8386d/F19-after-archive-version-failure.txt) | Full launch exits 42 at temporary runner --version. Existing run-t3.sh remains byte-identical (a12bc86f… on both sides of this after run), .next is removed, no home-lock acquisition is attempted and no server starts. |

The F01 baseline starts two children, returns managed from both launch commands, and leaves the losing dead PID 2694944 in its managed record while runtime owner 2694925 remains live. Its log records one ServerAlreadyRunningError. The F03 baseline similarly starts two children, returns managed for both aliases and leaves one dead managed record with one ownership error. Baseline F12b ignores sibling records and starts successfully; the after traces prove the new rejection branches preserve that fallback. Baseline F19 overwrites the installed runner before the same preflight failure. `OBSERVED_FAIL` labels are expected baseline observations, not capture-driver failures.

F12b variant pairs are concatenated in the same order in each linked transcript: dead-pid, missing-port, garbage-port, unready-port, external. In each after transcript, the selected shell trace shows the sibling path and predicates. Dead PID is skipped by server_running; external is skipped before its PID is consulted; missing port clears REMOTE_PORT and breaks without a readiness probe; garbage and HTTP-503 ports enter wait_ready 2000, clear REMOTE_PORT and break. All then pick a new port and start a managed server. The live unusable processes remain live until driver cleanup; the launch does not stop them.

What else changed (all behavioral differences observed, including intended ones):

- F01/F03 replace two attempted server starts and a losing ownership error with one attempted start. Both launch commands still return 0; F01 now records the actual live managed owner, and F03 changes the adopter from a dead managed record to an external record without a PID.
- F03 after serializes the aliases with the home lock. The waiting alias's trace shows five one-second lock backoffs in this capture before runtime adoption; baseline has no home launch lock. This is an observed interleaving, not a performance benchmark.
- After prepares and chmods the temporary runner before publication. Before publishes then chmods the installed runner. No permission-denied race happened in these particular cold runs.
- F12b after inspects sibling records, and probes nonempty garbage/unready ports using the native 2000 ms reuse limit. Before performs no sibling scan or sibling probe. Final fresh-launch behavior and preserved sibling records agree on both sides.
- F19 now invokes --version on the temporary runner and preserves the installed runner on failure. Before invokes it on the already-replaced installed runner. Both exit 42, leave no .next, acquire no launch lock and start no server.
- No other behavior difference was observed. Installed real binary SHA256 agrees across all four archive runs: eaf7b0f1fe2e08d2fbbdd74016cb3b4a145b93221396c76c108c1bf44695185f. Startup timings and ephemeral fixture ports varied and are not treated as product differences.

Reproduction:

Download the drivers into `/tmp/lead-32587-r2/capture-1/`. Create the before checkout with the command below, with the main checkout's dependencies already installed. Keep the PR checkout at the pinned head. The preparation driver links dependencies only in the before checkout and reads the after checkout. The renderer calls the real launchOrReuseRemoteServer API with a captured spawner; it does not edit the production source. The capture driver derives from the linked earlier Capture method and uses a nohup wrapper to record the PID before execing the real nohup. mv and rm wrappers exec the real commands without gating these cases.

```sh
git -C /home/user/t3code worktree add /home/user/wt/pr-32587-before d313b2aff31991ab94c8ac80cdc38a54dd575604
python3 /tmp/lead-32587-r2/capture-1/prepare-evidence.py
python3 /tmp/lead-32587-r2/capture-1/run-evidence.py
python3 /tmp/lead-32587-r2/capture-1/verify-cleanup.py
git -C /home/user/t3code worktree remove --force /home/user/wt/pr-32587-before
```

Each transcript records the SHA, environment, exact launch argv, environment values, working directory, input script SHA256, stdout/stderr, records and cleanup. Each run gets a fresh timestamped directory and HOME. The matrix runs each variant before and after using the same driver; the rendered production source is the only launch behavior changed between sides. No production waits or timeouts were shortened. Diagnostic selection was extended before F12b to include sibling reads and break statements; it did not change fixture behavior or production scripts. adapt-driver.py is retained as the initial adaptation step; it need not be run to reproduce with the final capture.py.

Source provenance: both tunnel.ts files matched their committed bytes. Before SHA256: e5725d5af406fd27a0ee9b43e7363a4ecc5ab8623f8ab05a62409dfb1b3d8c63. After SHA256: 32b509a806d0f78a28eac1bcee8e9ae1acca532176dc7afaf0043cdda3f52d1d.

Drivers and rendered scripts:

- [capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ef638a8b1d01094/capture.py)
- [render.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a0d782cb27b12cd/render.mjs)
- [prepare-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/11f9caace400097a/prepare-evidence.py)
- [run-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/468e245a74fd3bb0/run-evidence.py)
- [fixture-t3.cjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a92aa996ecfca39/fixture-t3.cjs)
- [command-shim.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5049a2fed50c9a7/command-shim.py)
- [unready-http.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/740a3ee9494fd196/unready-http.py)
- [verify-cleanup.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/40ae33ac30e6332d/verify-cleanup.py)
- [adapt-driver.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fc7eae558e2e74bd/adapt-driver.py)
- [before-node.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7fa68544175f6d66/before-node.sh)
- [after-node.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7370977ccb3158a4/after-node.sh)
- [before-archive.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/21e638117ae3c0ff/before-archive.sh)
- [after-archive.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/73388b0d67f7e684/after-archive.sh)
- [preparation.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c9b2614bd995a080/preparation.txt)
- [cleanup.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2a9c6cf6bec0a1e3/cleanup.txt)

Cleanup: all 46 tracked launch, owner, listener and server PIDs have no remaining /proc entries. A read-only scan finds no process with cwd under the scratch directory. All driver runs report no live tracked servers. The before worktree was removed after capture. The PR worktree was only read. Final disk check reported 234 GB available, above the 5 GB stop threshold. Evidence is retained in scratch; no evidence or synthetic home was deleted.

Public evidence contains only synthetic fixture data and selected launch/server diagnostics. Raw runtime/provider logs, generated homes and credentials are excluded. No runtime model identifiers are published.

Unverified requested rows: none. No claim is made for real SSH, macOS, zombie sibling candidates, missing-Node preflight, other fixture rows or UI surfaces.

FRICTION:

- tool | dash -x can interleave parent and background-child trace writes, leaving fragments under the transcript's stderr label | Use the independently recorded nohup argv and fixture events to disambiguate; all branch decisions used for these conclusions remain visible.
