# Terminal fallback polling evidence

Evidence for PR [#24640](https://git.cafe/pingdotgg/t3code/pull/24640), branch `takeover/pr-16874`. No PR body/comments/code/commits/pushes were changed.

26/31 matrix rows captured at both SHAs: 22 real-server RPC rows and 4 explicitly labelled service harness rows. W01–W05 remain cannot-verify windows.

Environment: fs-31 Linux x86_64; Node v26.12.1; Python shim in a private mount namespace; real apps/server with a fresh per-run database; compiled real native sidecars for R01/R14 and recovery R09. Harnesses use controlled runner/fake PTY/TestClock, no RPC/server/database. Viewport/theme/DPR/font scaling=N/A. No client/native macOS/Windows verification is claimed.

Before [e9236274a3](https://git.cafe/pingdotgg/t3code/commit/e9236274a3a6e0c731a7df4092db1e686f039068); after [63e44670dd](https://git.cafe/pingdotgg/t3code/commit/63e44670dd1d222cf63619d5e02415f2a9fd3bc2).

Fixture specification: [fixture-matrix.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f5e05ae1aa21f9f/fixture-matrix.md). Every Linux row is paired below; every Windows row is explicitly unverified.
## Paired captures and comparison sheets
| Row | Fixture | Before | After | Comparison |
|---|---|---|---|---|
| R01 | Real native sidecar, busy then idle | [R01-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/70c36ad55b4176c7/R01-before.txt) | [R01-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a3df34153403780/R01-after.txt) | [R01-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85c8912b3b7342fe/R01-comparison.md) |
| R02 | Fast fallback, one terminal | [R02-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/42f581672012efb5/R02-before.txt) | [R02-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d48b5586d9fd1493/R02-after.txt) | [R02-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04139fbb26a89b25/R02-comparison.md) |
| R03 | Fast shared fallback, 20 terminals/two threads | [R03-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/255e0fe96f0f2af5/R03-before.txt) | [R03-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e06542b112a08cb7/R03-after.txt) | [R03-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/acda4e7a5f4c6b63/R03-comparison.md) |
| R04 | 750ms successful fallback | [R04-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/098ee677c66a0587/R04-before.txt) | [R04-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/617c06f7a6b6cda2/R04-after.txt) | [R04-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/737b4b555b1c56cf/R04-comparison.md) |
| R05 | 5s successful fallback, one terminal | [R05-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1bb19eb9f1a95a2/R05-before.txt) | [R05-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2996ae9a60704164/R05-after.txt) | [R05-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c40c8b948c310d97/R05-comparison.md) |
| R06 | 5s shared fallback, 20 terminals | [R06-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e053e2d9c1547174/R06-before.txt) | [R06-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e78eaac03445c15a/R06-after.txt) | [R06-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/25e844158f6ddad6/R06-comparison.md) |
| R07 | 14s near-deadline successful fallback | [R07-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9141c7c5141187c/R07-before.txt) | [R07-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/775cb4c670e2123b/R07-after.txt) | [R07-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/629c0895d4bbc9c9/R07-comparison.md) |
| R08 | Known-busy terminal, hung fallback and retry | [R08-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d0bd85989fdf0a39/R08-before.txt) | [R08-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8daf36699dff237e/R08-after.txt) | [R08-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7562af9abf41b0a4/R08-comparison.md) |
| R09 | Immediate failures through cap; real native recovery and reset | [R09-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a664985bd7ba59c8/R09-before.txt) | [R09-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/10932a7b9894ad08/R09-after.txt) | [R09-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aedf5f296b488842/R09-comparison.md) |
| R10 | Delayed 5s nonzero failure | [R10-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fd54a4c0f571f773/R10-before.txt) | [R10-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4ba839bfbd0b43f6/R10-after.txt) | [R10-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1a9e3c29a179abe8/R10-comparison.md) |
| R11 | Truncated process table | [R11-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8d0013915649fa66/R11-before.txt) | [R11-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b783596fbf3d5f58/R11-after.txt) | [R11-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/82f97a9748e80caf/R11-comparison.md) |
| R12 | Spawn ENOENT then recovery | [R12-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f3ceda701ec04b85/R12-before.txt) | [R12-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e60f5ce1a35cffbf/R12-after.txt) | [R12-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8eaf469d9a755ca9/R12-comparison.md) |
| R13 | Empty/exited/reopened sessions | [R13-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7130d58943888970/R13-before.txt) | [R13-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/38c27c1aa3eca562/R13-after.txt) | [R13-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e3d1051463fd2ce2/R13-comparison.md) |
| R14 | Trusted quiet suppression and input/output wake | [R14-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a8bdd654a9123810/R14-before.txt) | [R14-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/31e99e7c31bd5ce9/R14-after.txt) | [R14-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5a2df042722013e3/R14-comparison.md) |
| R15 | Close during 5s query | [R15-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3384959125d1f986/R15-before.txt) | [R15-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/67fe58486f68036f/R15-after.txt) | [R15-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0eeda669f62a2968/R15-comparison.md) |
| R16 | Restart same ID and open new ID during 5s query | [R16-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b1a772307c5e9697/R16-before.txt) | [R16-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/705911eb45dc9120/R16-after.txt) | [R16-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9bdca40cbcf8bfae/R16-comparison.md) |
| R17 | Settlement without eligible sessions | [R17-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/65ba7b2aff54bbb5/R17-before.txt) | [R17-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/85689fce5444dbd2/R17-after.txt) | [R17-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/eacaff3c76afcc18/R17-comparison.md) |
| R18 | Settlement mixed selection and thread isolation | [R18-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f5e6c3e191eea61f/R18-before.txt) | [R18-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/77247ab4e8da4c00/R18-after.txt) | [R18-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8f27a58016719c05/R18-comparison.md) |
| R19 | Observed project-script success/nonzero completion | [R19-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc9d7928559996d1/R19-before.txt) | [R19-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fff14cb88b8a70fc/R19-after.txt) | [R19-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/47e5d5e867c8439b/R19-comparison.md) |
| R20 | Hung settlement fallback and queued resize | [R20-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8afe40615705bcfd/R20-before.txt) | [R20-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9bcc757c555f7abb/R20-after.txt) | [R20-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0018b74296eeefb9/R20-comparison.md) |
| R21 | Concurrent background and settlement queries | [R21-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0119360bed8b3480/R21-before.txt) | [R21-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/55ab9caa0c91e800/R21-after.txt) | [R21-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aab47237ad308131/R21-comparison.md) |
| R22 | Input and independent PTY output during settlement query | [R22-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d934ac38c04da49d/R22-before.txt) | [R22-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d7e9cf29f114ab4/R22-after.txt) | [R22-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/26a17bee71f4c290/R22-comparison.md) |
| H01 | Harness: absent processTable, slow/fast fallback and reset | [H01-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/178f9139c669c8f3/H01-before.txt) | [H01-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/59eef651b2e84844/H01-after.txt) | [H01-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/32de85104194fe15/H01-comparison.md) |
| H02 | Harness: custom inspector bypass and errors | [H02-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2aaf88ba3bee517/H02-before.txt) | [H02-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24910592452ce3df/H02-after.txt) | [H02-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3f0b51da29337757/H02-comparison.md) |
| H03 | Harness: delayed native supplier, fallback, recovery | [H03-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7a3bc5a87c690b1b/H03-before.txt) | [H03-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fb993ac4e9bff283/H03-after.txt) | [H03-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4e8521b12dbdc8f1/H03-comparison.md) |
| H04 | Harness: invalid PID/non-running filtering | [H04-before.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/81d9e910c735510a/H04-before.txt) | [H04-after.txt](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c909ceca2aa88fa6/H04-after.txt) | [H04-comparison.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dae771c5d9083143/H04-comparison.md) |
| W01 | Fast PowerShell / one and 20 terminals | cannot-verify windows | cannot-verify windows | No real Windows host; not attempted, as instructed |
| W02 | 5s valid PowerShell / one and 20 terminals | cannot-verify windows | cannot-verify windows | No real Windows host; not attempted, as instructed |
| W03 | Hung/delayed failure/truncation PowerShell | cannot-verify windows | cannot-verify windows | No real Windows host; not attempted, as instructed |
| W04 | Close/restart during slow PowerShell | cannot-verify windows | cannot-verify windows | No real Windows host; not attempted, as instructed |
| W05 | closeIdle selection/hang/resize | cannot-verify windows | cannot-verify windows | No real Windows host; not attempted, as instructed |
## What else changed
- Intended: 750ms fallback adds a roughly 3.2s duration floor; 5s/14s valid tables become accepted and publish before roughly 20s/56s idle; hung background timeout becomes roughly 15s with a 60s retry; delayed exit-7 reaches its actual failure and earns the floor; survivor/restarted identities can now receive those successful slow snapshots.
- Control outcomes match: native/quiet paths, fast native-failed backoff/cap/reset, rejection/state retention, filtering, stale identity protection, short closeIdle budget, selection, concurrent activity retention, and script success/nonzero behavior. No additional product behavior change was observed in these captures.
- Capture-only differences remain explicit: R03 opens sessions across the first polling boundary, producing slightly different first candidate sizes; R20 before includes an extra background query while waiting for the flushed cleanup span. Fresh PIDs, paths, random script terminal suffixes, timestamps, output batching, and scheduler jitter differ. The sheets show these rather than claiming byte-identical transcripts.
## Scripts and reproducibility
Exact per-run script copies and hashes are embedded in each transcript and archived below; paired script bytes were compared and match for every row. R14 includes an additional paired R14F idle-fallback segment. See the reproduction guide for seeds, gates, commands, and timing interpretation.
- [reproduce.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4313ab263cd223e3/reproduce.md)
- [capture-scripts.tar.gz](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/19804d90fa56f38f/capture-scripts.tar.gz)
- [driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0a92b14fc18dbbc/driver.mjs)
- [ps-shim.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c91c164e0b5e4b0/ps-shim.py)
- [native-fail.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/94f70119a2003244/native-fail.py)
- [native-proxy.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ab339a7cc76cf337/native-proxy.py)
- [preload.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cf4d7650e6bdebd0/preload.mjs)
- [launch.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b6e8f1ad5613d96b/launch.sh)
- [harness.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ebb41d91e2c180c2/harness.mjs)
- [build-native.sh](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e1391f2dd49415af/build-native.sh)
- [report.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/301c826cc8cf1878/report.py)
- [verify-captures.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0a0e1c5c7d144030/verify-captures.py)
- [environment-audit.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b2ab561d4ddbe8a1/environment-audit.json)
- [native-before-build.log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0aa1965b3cce069a/native-before-build.log)
- [native-after-build.log](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/091957e080c57168/native-after-build.log)
- [all-run-cleanup.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bc784a080e289aad/all-run-cleanup.json)
- [upload-verification.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d7fa87ca47f3d137/upload-verification.json)
## Cleanup and limitations
All 1148 recorded PIDs across real-server runs, including discarded preflights, were absent after teardown. Every selected run records empty final remaining-PID lists. The host /usr/bin/ps hash still equals the preserved pre-interception binary. Both source checkouts remained clean; the before worktree and capture scratch are removed after uploads. No server touched port 3773 or live ~/.t3 state.
W01–W05: cannot-verify windows (Linux VM; explicitly not attempted). H01–H04 are controlled harness captures and are not represented as real subprocess/native-client/Windows proof.
FRICTION:
- tool | Vite node launcher under a fresh HOME stalled terminal child readiness; affected preflights were discarded and retaken using the resolved runtime | terminal fixtures should use process.execPath.
- infra | Rust/native sidecar was initially absent; installed isolated Rust 1.99.1 and built both checkouts outside their worktrees | preinstall Rust or cache the matching native binary.
- tool | Intermittent VM DNS/ghdrop transport errors interrupted uploads; resumed remaining files without replacing links | retry/resume uploads at the file boundary.
