# Worktree base-fetch timeout — evidence index

Target: [#18537](https://github.com/pingdotgg/t3code/pull/18537), [GitCafe #18537](https://git.cafe/pingdotgg/t3code/pulls/18537).

Before: [7fd2e09e38](https://github.com/pingdotgg/t3code/commit/7fd2e09e381a61f427da09dd7a8f2c9c1558fe59).
After: [cefc1ace94](https://github.com/pingdotgg/t3code/commit/cefc1ace94bfe0d9f0bd97655a899fc4eccdffe3).
These supersede the older SHA pair named in the [original fixture matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/50aef7d7336f6c39/matrix.md). After is the requested final merge commit incorporating current main.

## Captured rows

Three required real-runtime sessions captured. Six affected matrix rows covered by the required runtime, focused tests and source inspection; U1–U5 are unchanged controls/N/A, not missing captures.

| Row | Result | Evidence |
|---|---|---|
| R1-before | Healthy 37s-delayed transport fails after 30.032s; setup failed, no worktree | [R1-before.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4430a91c7983d78a/R1-before.md) |
| R1-after | Same healthy 37s-delayed transport completes setup after 37.278s; fresh worktree HEAD=B | [R1-after.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3b6612c08952966f/R1-after.md) |
| R2-after | Genuinely hung transport fails after 300.052s at the real five-minute production deadline; clear Git command timed out error, no worktree | [R2-after.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e6f1976ade78292d/R2-after.md) |
| T1, T2 | Before: exactly two expected failures, 163 pass. After: all 165 pass. Deferred/TestClock deadline tests, no wall sleeps | [scoped-tests.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5b5f4c08c9fc2c1/scoped-tests.md) |
| S1 | Scoped worktree-base fetch covered by launchThread runtime R1/R2 | Runtime transcripts above |
| S2 | Full driver test file passes existing ref-lock retry/missing-ref behaviors; shared options cover scoped/unscoped invocations and retry; branching unchanged by diff | [scoped-tests.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b5b5f4c08c9fc2c1/scoped-tests.md) plus source inspection |

## Environment and methodology

2026-10-24 UTC; Linux fs-01, x86_64, kernel 6.1.102; Node v26.12.1; Git 2.43.0. Real `vp run dev` server/web, actual server origin http://127.0.0.1:15913, web port 7873; no browser/device/DPR/font/viewport/theme (server-only override). Source was clean at each exact SHA. Only `/home/ubuntu/wt/pr-18537` was used for application source; no other source worktrees were created or used.

Fresh homes and bare/seed/client Git fixtures under `/tmp/ev-18537/<session>`, explicit `--home-dir`, `--no-seed`, `T3CODE_DEV_SEED=0`; no read/copy of live userdata. Same topology, content, 37s delay and actual upload-pack on both R1 sides; fixture commit timestamps and generated IDs/homes differ intentionally for isolation. Local base/cache remain A; remote is advanced to B before launch. Exact A/B hashes are in each transcript.

Project seeding uses `projects.mutate`; entry uses `orchestration.launchThread` with `startFromOrigin:true`, not direct `vcs.createWorktree`. Launch acceptance is followed by `subscribeWorktreeSetup` terminal snapshots and `orchestration.getThreadProjection`. No initialMessage, setup script or provider session is started. R2 wrapper blocks indefinitely in signal.pause without sending refs, has no timeout, and is allowed to hit the unmodified production 300,000ms limit. RPC client budget is 410s. Progress/liveness observations establish pending beyond 30s. Driver and RPC records use UTC plus monotonic elapsed time; transport records include its own monotonic start.

The 5m limit applies **per fetch invocation**, not a total worktree deadline. Terminal time includes a little subprocess/reporting overhead. No config knob exists or was introduced. Authentication startup lines are redacted, and no token/cookie/pairing URL/environment file/home directory is uploaded.

## What else changed

Production diff from the specified before commit to final after commit: only the fixed five-minute fetch timeout constant/comment and shared `fetchRemote` timeout option. The existing test file imports TestClock and adds healthy/hung cases. No changed retry/fallback branching, other fetch helper deadlines, checkout/removal deadlines, contracts, clients or provider adapters. No source edits or commits were retained during capture, no dependency changes/install were needed, and no forge comments, pushes, watches or PR creation were performed. Visual differences are N/A; no claim of pixel identity is made.

## Reproduction and cleanup

- [REPRODUCE.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f1e34b6f47db346/REPRODUCE.md)
- [capture.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/da4d5939c40e6675/capture.py)
- [rpc-client.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b5f472bba30cf44/rpc-client.mjs)
- [upload-pack.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f75d0efc16966270/upload-pack.py)
- [reproduce-tests.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/799fcafbaeea9ff9/reproduce-tests.sh)
- [cleanup-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ce3aedd33adb4a91/cleanup-verification.json)
- [verify-cleanup.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c4d8032ee06a8ee/verify-cleanup.py)
- [sha256.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c9125fde8074113/sha256.json)

Every server was stopped by its captured owned process group; recorded wrapper PIDs were already exited or explicitly terminated. Cleanup verification checks captured client/server/wrapper PIDs, remaining owned server-group members, closed capture ports, and restored clean `takeover/pr-18537` at the final SHA. Reproduction files remain outside the worktree for auditor pass 2.

## FRICTION and gaps

- The provided matrix carries old SHA provenance; this capture uses the exact updated before/after pair above.
- First harness startup could not resolve transitive `ws` as a direct server dependency. It failed before any RPC, was cleaned up, and was replaced with a fresh-home attempt resolving the installed pnpm ws 8 package explicitly. That aborted attempt is retained locally under `/tmp/to-18537/attempt1` and `/tmp/ev-18537/R1-before-attempt1`; it is not presented as runtime proof.
- Server authentication requires a private dev cookie; generated credentials stayed in process memory and were omitted from transcripts.
- Raw launch acceptance cannot prove setup, and direct worktree RPC bypasses this fetch. Terminal setup and HEAD checks were required.
- No missing required runtime or test captures. WAN/provider/UI/platform-specific behavior is outside this server-only fixed-deadline change and the authorized matrix.
