# Bundle F — runtime evidence

**Additional differences outside child exclusion are present; see “What else changed”.**

Both sides: fs-18, Linux x86_64 6.1.102, Node v26.12.1, OpenCode 1.18.18 / `anthropic/claude-haiku-5-5`, Python 3.12 + websocket-client 1.9.2. Before home `/tmp/lead-26983-r1/evidence-capture/20261029T150359-before-measured/home`, port 19684; after home `/tmp/lead-26983-r1/evidence-capture/20261029T151950-after-final/home`, port 19685. Each source checkout is pinned and clean; external Node load-hook observation is disclosed in the transcripts, with its exact SHA-256. Every restart has its spawn PID, actual server PID, source SHA, port, home, observer hash and UTC time above the corresponding capture. Independent fresh databases; `T3CODE_DEV_SEED=0`. No browser, rendering, viewport/theme, Diff0 or DiffT applies. Timed captures use the real UTC clock and real one-minute scheduler, with the same scripted waits and activity leases; no fake clock is claimed.


Counts are completed `branchPullRequest` service calls (L), with descendant git subprocess attempts (G), attributed through trace/parent ancestry beneath each `ThreadPullRequestServiceV2.synchronize`. A cache hit is still a lookup. F separates failed wrapper attempts from real git executions. These are scoped service counts, not whole-server/provider process totals.


Before recording: [F-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7729dc3a8de6b258/F-before.txt)  
After recording: [F-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5377dbdbec639b52/F-after.txt)  
Raw evidence, complete state/events, scripts and counter: [runtime-evidence.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e2ef042f050fc63c/runtime-evidence.tar.gz)  
Reproduction: [reproduce.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1aaf0741be193d03/reproduce.md)

The ordered driver steps, exact UTC timestamps and restart environment appear before the paired trace excerpts inside each recording. Each per-request row contains trace/span IDs, branch attribution, discovery/validation counts, subprocess arguments/status and raw original service span objects.

## R08 — settled backfill fault exhaustion

| Measured interval or event | Before [37fbefd](https://github.com/pingdotgg/t3code/commit/37fbefd147197fab9d88f9c120560c3f21b52cfc) | After [45c1162](https://github.com/pingdotgg/t3code/commit/45c1162b91872e5e7a7ddd7843b24364caca0f4d) |
|---|---|---|
| Startup attempt 1, settled root and distinct child | 2 L / 2 G | 1 L / 1 G |
| Six eligible minute sweeps: attempts 2–5, then no retry twice | 2 L / 2 G; 2 L / 2 G; 2 L / 2 G; 2 L / 2 G; 0 L / 0 G; 0 L / 0 G | 1 L / 1 G; 1 L / 1 G; 1 L / 1 G; 1 L / 1 G; 0 L / 0 G; 0 L / 0 G |

## R08 — recovery before exhaustion

| Measured interval or event | Before [37fbefd](https://github.com/pingdotgg/t3code/commit/37fbefd147197fab9d88f9c120560c3f21b52cfc) | After [45c1162](https://github.com/pingdotgg/t3code/commit/45c1162b91872e5e7a7ddd7843b24364caca0f4d) |
|---|---|---|
| Startup failure | 2 L / 2 G | 1 L / 1 G |
| Second failed attempt, first minute | 2 L / 2 G | 1 L / 1 G |
| Fault switched off: successful null lookup, then no retry | 2 L / 40 G; 0 L / 0 G | 1 L / 20 G; 0 L / 0 G |

This is a disclosed real-server fault harness. The external executable fails exact `git remote` in only the marked synthetic root/child cwds, exit 87. Each failed call has one wrapper attempt and zero actual git executions. Root has five calls on both sides; child has five before and zero after. Recovery succeeds with null detection and removes further settled retry. No direct visibility into the private pending map is claimed.


## What else changed

The wrapper exits/errors disappear only for excluded child calls. Successful recovery git work is compared below. Setup root unsettle changes 8→13 G. Fault runs and retries use real scheduler timing; wall times and process identifiers differ across sides.

Synthetic IDs, provider transcript wording, real UTC timestamps, process IDs and scratch paths differ naturally. Same normalized fixture data and public actions are compared. Earlier after pilots are excluded from acceptance and retained separately.

Complete non-equal request-count inventory for these recording windows (including setup and provider boundary requests). An absent side means no corresponding request in that phase window; it is not silently treated as zero. The JSON inventory retains exact timestamps and span IDs. [count-differences.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ac35fe3a11109701/count-differences.json).

| Phase / request (thread, event, status, refresh, ordinal) | Before L/G | After L/G |
|---|---|---|
| F / `["A-parent", "thread.unsettled", null, true, 1]` | 1/8 | 1/13 |
| F / `["all", "startup", null, false, 1]` | 2/2 | 1/1 |
| F / `["all", "startup", null, false, 2]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 1]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 2]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 3]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 4]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 7]` | 2/2 | 1/1 |
| F / `["all", "sweep", null, false, 8]` | 2/40 | 1/20 |
