Recommendation: reject this candidate. Returning total usability did not reproduce: replication -45 ms (-1.47%), 95% CI [-15.56%, +8.53%]; combined -57 ms (-1.94%), CI [-14.15%, +1.91%]. No source promotion or further timing loop.
Ubuntu 24.04 x64 VM, default 4 CPU / 8 GB, Boat bx_9a2kqwpz, production packaged directory. Returning: frozen synthetic 12 projects / 48 threads and settings, matched cold compile/Chromium code caches. Fresh: every launch uses a unique empty home. No profiler, build, or metadata scans during replication.
| Cell | Pairs / attempts | Baseline success | Candidate success | Harness errors A / B |
|---|---|---|---|---|
| original returning | 20 / 40 | 19/20 | 20/20 | 1 / 0 |
| replication returning | 20 / 40 | 20/20 | 20/20 | 0 / 0 |
| combined returning | 40 / 80 | 39/40 | 40/40 | 1 / 0 |
| original fresh | 20 / 40 | 18/20 | 20/20 | 2 / 0 |
| replication fresh | 20 / 40 | 20/20 | 20/20 | 0 / 1 |
| combined fresh | 40 / 80 | 38/40 | 40/40 | 2 / 1 |
Milliseconds. Baseline and candidate columns show all-attempt median / nearest-rank p95; missing endpoints rank above successful endpoints and are explicitly censored. Paired deltas use only pairs with both milestones observed. Negative means candidate faster. Usable minus ready is descriptive only and has no acceptance interval.
| Cell | Milestone | Baseline median / p95 | Candidate median / p95 | Paired ms / % | 95% paired % interval | Faster / paired n |
|---|---|---|---|---|---|---|
| original returning | Total usable | 2952.0 / 4392.0 | 2582.4 / 3635.8 | -254.6 / -10.9% | -17.5 to 1.9 | 11/19 |
| original returning | First window | 623.2 / 1927.5 | 564.2 / 881.9 | -21.5 / -3.5% | -14.5 to 6.3 | 13/20 |
| original returning | Command-ready | 1773.3 / 3167.9 | 1660.7 / 2550.7 | -68.5 / -3.2% | -8.5 to 6.8 | 11/20 |
| original returning | Usable minus ready (descriptive only) | 1065.9 / 1336.9 | 917.7 / 1206.9 | -234.3 / -19.9% | descriptive only | 14/19 |
| replication returning | Total usable | 3202.3 / 4109.1 | 2914.5 / 4695.1 | -45.2 / -1.5% | -15.6 to 8.5 | 11/20 |
| replication returning | First window | 607.0 / 686.2 | 680.5 / 1282.9 | 90.4 / 13.3% | 1.2 to 33.6 | 5/20 |
| replication returning | Command-ready | 1775.9 / 2035.5 | 1834.8 / 3534.7 | 128.5 / 6.6% | -3.7 to 16.0 | 7/20 |
| replication returning | Usable minus ready (descriptive only) | 1309.7 / 2243.0 | 1023.3 / 1986.3 | -207.1 / -17.9% | descriptive only | 15/20 |
| combined returning | Total usable | 3042.2 / 4342.4 | 2742.2 / 4695.1 | -56.8 / -1.9% | -14.1 to 1.9 | 22/39 |
| combined returning | First window | 613.7 / 899.0 | 595.4 / 1282.9 | 14.8 / 2.6% | -5.7 to 13.1 | 18/40 |
| combined returning | Command-ready | 1775.9 / 3055.1 | 1795.6 / 3114.4 | 52.7 / 3.3% | -5.2 to 8.3 | 18/40 |
| combined returning | Usable minus ready (descriptive only) | 1183.1 / 2243.0 | 959.8 / 1986.3 | -208.1 / -17.9% | descriptive only | 29/39 |
| original fresh | Total usable | 3363.4 / right-censored | 3342.9 / 5770.9 | 16.4 / 0.6% | -5.7 to 10.4 | 9/18 |
| original fresh | First window | 704.4 / 899.5 | 832.7 / 2246.9 | 103.3 / 16.0% | 7.4 to 27.1 | 4/20 |
| original fresh | Command-ready | 2203.5 / 70971.3 | 2246.9 / 4584.7 | -5.8 / -0.3% | -10.8 to 14.5 | 10/20 |
| original fresh | Usable minus ready (descriptive only) | 1122.3 / right-censored | 974.2 / 1356.9 | 4.3 / 0.5% | descriptive only | 9/18 |
| replication fresh | Total usable | 4591.7 / 6797.6 | 4266.6 / 5468.3 | -55.2 / -1.4% | -12.0 to 16.8 | 10/20 |
| replication fresh | First window | 960.4 / 1508.6 | 921.7 / 1306.4 | -6.3 / -0.9% | -11.5 to 13.3 | 11/20 |
| replication fresh | Command-ready | 2897.3 / 4744.9 | 2714.1 / 3678.9 | 71.8 / 2.7% | -14.3 to 12.9 | 9/20 |
| replication fresh | Usable minus ready (descriptive only) | 1583.6 / 2107.9 | 1440.0 / 2008.7 | -9.7 / -0.6% | descriptive only | 10/20 |
| combined fresh | Total usable | 3760.3 / 6956.1 | 3873.6 / 5770.9 | -15.0 / -0.5% | -5.7 to 9.5 | 19/38 |
| combined fresh | First window | 793.2 / 1201.7 | 879.1 / 2080.3 | 92.7 / 10.2% | -0.2 to 16.0 | 15/40 |
| combined fresh | Command-ready | 2586.0 / 5289.3 | 2541.2 / 4149.2 | 40.3 / 1.7% | -10.4 to 12.0 | 19/40 |
| combined fresh | Usable minus ready (descriptive only) | 1308.7 / 2731.1 | 1254.5 / 1975.7 | -4.0 / -0.4% | descriptive only | 19/38 |
The original returning total usable result (-255 ms, -10.93%) did not reproduce (-45 ms, -1.47%). Both intervals cross zero. Returning usable-minus-ready remains lower (replication -207 ms, -17.90%), but is descriptive and cannot replace total usable. Returning first window instead worsened by +90 ms (+13.27%, interval [+1.22%, +33.56%]). The original fresh-window delay (+103 ms, +16.02%) did not reproduce (-6 ms, -0.89%, interval [-11.47%, +13.25%]); combined fresh window remains +93 ms (+10.22%) with interval [-0.20%, +15.98%]. Fresh total usable remains inconclusive in each cohort and combined. No established total startup gain justifies promotion.
Replication fresh candidate pair 12 reached usability, then page.screenshot timed out at 1000 ms. Its usability timing remains valid and its harness failure is counted separately. Startup success uses observed usability, not screenshot success; this yields 80/80 usable replication launches and 79/80 harness passes.
Every attempted measured launch is retained, including failures, without replacement. Original returning run stopped and resumed missing launches after its baseline failure. The replication controller retains failed samples and continues the predeclared 20 pairs, unchanged from the original resume policy. The milestone observer deadline is 90 seconds per until operation, not a single 90-second launch deadline; waits can be sequential. Failed usability is right-censored, never assigned an invented 90-second duration. Command-ready failures and times retain the harness semantics.
{
"utc": "2026-11-08T13:35:28Z",
"cohort": "original",
"overlappingUsableInterval": [
{
"fixture": "fresh",
"round": 11,
"side": "b",
"started": "2026-11-08T13:35:26.183Z",
"usableMs": 3078.3802100000003
}
],
"launchAndCleanupInterval": [
{
"fixture": "fresh",
"round": 11,
"side": "b",
"started": "2026-11-08T13:35:26.183Z",
"usableMs": 3078.3802100000003
}
],
"note": "Point-in-time supplied by dispatcher. Inspection duration unknown; no rows excluded."
}The metadata inspection duration is unknown. Its timestamp maps to the original fresh candidate pair 11 launch interval. No row has been removed. The timestamp occurs after that launch first-window milestone (13:35:27.019 UTC), but before command-ready and usability. It cannot explain the earlier window timestamp for this sample. The original interference and interruption limit causal confidence. Bootstrap intervals use 10,000 paired resamples, seed 20261108; combined resampling preserves the original and replication cohort counts, and remains descriptive under temporal drift and censoring.
{
"cohort": "original",
"fixture": "returning",
"round": 15,
"side": "a",
"started": "2026-11-08T13:26:09.824Z",
"windowMs": 533.1025199999999,
"commandReadyMs": 70705.098915,
"usableMs": null,
"error": "Error: milestone timeout: locator.count: Target page, context or browser has been closed\n at until (file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:17:8)\n at async file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:51:3"
}{
"cohort": "original",
"fixture": "fresh",
"round": 3,
"side": "a",
"started": "2026-11-08T13:30:53.411Z",
"windowMs": 907.740333,
"commandReadyMs": 72086.471935,
"usableMs": null,
"error": "Error: milestone timeout: locator.innerText: Target page, context or browser has been closed\n at until (file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:17:8)\n at async file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:51:3"
}{
"cohort": "original",
"fixture": "fresh",
"round": 6,
"side": "a",
"started": "2026-11-08T13:32:54.211Z",
"windowMs": 735.570121,
"commandReadyMs": 70971.25608600001,
"usableMs": null,
"error": "Error: milestone timeout: locator.innerText: Target page, context or browser has been closed\n at until (file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:17:8)\n at async file:///home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:51:3"
}{
"cohort": "replication",
"fixture": "fresh",
"round": 12,
"side": "b",
"started": "2026-11-08T13:51:29.541Z",
"windowMs": 1098.693167,
"commandReadyMs": 3214.230247,
"usableMs": 5272.38737,
"error": "page.screenshot: Timeout 1000ms exceeded.\nCall log:\n - taking page screenshot\n - waiting for fonts to load...\n - fonts loaded\n\n at /home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs:75:14"
}Base source 6417151c093e54dbba0e6c824c69d03983793b9a. Corrected candidate is an experimental artifact with the canonical patch below, not a source commit. Original artifact immutable; both use the identical Electron binary. Singleton lock/cookie/socket filtering is active. Original public-router failure probe is retained in the original archive. No source files were edited.
--- /home/user/t3-baseline/.local/source/apps/web/src/main.tsx 2026-11-08 12:05:26.000000000 +0000
+++ /home/user/t3-baseline/.local/renderer-bootstrap/source-min50k/apps/web/src/main.tsx 2026-11-08 13:20:15.319618433 +0000
@@ -24,6 +24,16 @@
}
});
+const initialMatches = router.matchRoutes(router.latestLocation);
+const initialRoutes = Object.values(router.routesById).filter((route) =>
+ initialMatches.some((match) => match.routeId === route.id),
+);
+if (initialMatches.some((match) => match.routeId === "/_chat/")) {
+ initialRoutes.push(router.routesById["/_chat/draft/$draftId"]);
+}
+// Canonical route loading retains the router's rejected promise and owns its error surface.
+void Promise.all(initialRoutes.map((route) => router.loadRouteChunk(route))).catch(() => {});
+
const app = <AppRoot router={router} />;
// Split by runtime to keep Clerk out of local startup and clerk-js out of browser builds.
7722b3b95b0a31e24906f8046c1bf29cb03c1b99f67058b0b9a4c0e8681c0d87 /home/user/t3-baseline/.local/artifact-original/linux-unpacked/t3code 75aab08523d3a1f3d5752d8414d2ccfa7595942c86dbcb8ff26a08ecae0d4e98 /home/user/t3-baseline/.local/artifact-original/linux-unpacked/resources/app.asar 7722b3b95b0a31e24906f8046c1bf29cb03c1b99f67058b0b9a4c0e8681c0d87 /home/user/t3-baseline/.local/renderer-bootstrap/artifact-route-warm-canonical/linux-unpacked/t3code b266c4dc51106a9bfa9cb1bd7027f65b494d5b0df59c6e0a5d09b6dceb89c11f /home/user/t3-baseline/.local/renderer-bootstrap/artifact-route-warm-canonical/linux-unpacked/resources/app.asar 32541a67ce260b153ef275240d782d914baa40999c33b46019d5b8cb4d69e8e0 /home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/bench.mjs d4f573022a82ba1c09e52626e97941531d5a347ce8a98114320bc969eef50c1b /home/user/t3-baseline/.local/renderer-bootstrap/toolkit-latest/pairs.py
Fixture manifest and SHA256 per file are retained in replication-preflight.json, including the frozen database and settings. The same installed package and source directory resolve Playwright for both artifacts. No NODE_DISABLE_COMPILE_CACHE or BENCH_TRACE is set. Two discarded warmups per side per fixture precede measurement; all eight warmup records are archived separately.
boat exec --timeout 0 bx_9a2kqwpz -- xvfb-run -a -s '-screen 0 1280x900x24' python3 /home/user/t3-baseline/.local/renderer-bootstrap/replication.py
import pathlib,json,os,shutil,subprocess
E=pathlib.Path('/home/user/t3-baseline/.local/renderer-bootstrap');R=E.parent;N=str(R/'toolchain/node-v26.12.1-linux-x64/bin/node');B=str(E/'toolkit-latest/bench.mjs');source=str(R/'source')
for fixture in ('returning','fresh'):
if True:
for side in 'ab':
out=E/f'replication-warmup-{fixture}-{side}';out.mkdir()
binary=R/'artifact-original/linux-unpacked/t3code' if side=='a' else E/'artifact-route-warm-canonical/linux-unpacked/t3code'
if fixture=='returning':
(out/'fixtures').mkdir();shutil.copytree(E/'fixture-cold-code/returning',out/'fixtures/returning',symlinks=True,ignore=shutil.ignore_patterns('SingletonLock','SingletonCookie','SingletonSocket'))
with (out/'controller.log').open('w')as log:subprocess.run([N,B,str(binary),source,str(out),fixture,'2'],stdout=log,stderr=subprocess.STDOUT,check=True)
root=E/f'replication-{fixture}';root.mkdir(exist_ok=False);rows=[]
for r in range(20):
pair={'round':r}
for side in ('ab'if r%2==0 else'ba'):
out=root/f'{r:03}-{side}';sample=out/'samples.jsonl'
if not sample.exists():
out.mkdir(exist_ok=True)
if fixture=='returning':
(out/'fixtures').mkdir();shutil.copytree(E/'fixture-cold-code/returning',out/'fixtures/returning',symlinks=True,ignore=shutil.ignore_patterns('SingletonLock','SingletonCookie','SingletonSocket'))
env={**os.environ,'BENCH_PORT_BASE':str(40000+r*2+(side=='b')),'BENCH_CDP_PORT_BASE':str(41000+r*2+(side=='b'))}
binary=R/'artifact-original/linux-unpacked/t3code' if side=='a' else E/'artifact-route-warm-canonical/linux-unpacked/t3code'
with(out/'controller.log').open('w')as log:subprocess.run([N,B,str(binary),source,str(out),fixture,'1'],stdout=log,stderr=subprocess.STDOUT,env=env,check=False)
pair[side]=json.loads(sample.read_text().strip())
if pair[side].get('profiled'):raise SystemExit('unexpected profile')
rows.append(pair)
(root/'pairs-complete.jsonl').write_text(''.join(json.dumps(row)+'\n'for row in rows))
print(f'{fixture} pair {r} retained errors '+str({s:bool(pair[s].get('error'))for s in 'ab'}),flush=True)
subprocess.run(['sha256sum',str(R/'artifact-original/linux-unpacked/t3code'),str(R/'artifact-original/linux-unpacked/resources/app.asar'),str(E/'artifact-route-warm-canonical/linux-unpacked/t3code'),str(E/'artifact-route-warm-canonical/linux-unpacked/resources/app.asar'),B,str(E/'toolkit-latest/pairs.py')],stdout=(E/'replication-sha256.txt').open('w'),check=True)
Original commands, run/resume scripts and artifacts remain in full20-results.tar.gz. Replication logs, scripts, harness source, hashes, warmups and raw samples remain in replication-results.tar.gz. Combined exact samples are replication-all-attempts.jsonl and full derived statistics are replication-analysis.json. No native macOS or Windows timing claim. PostPlan uses fallback black and white because the active host theme could not be read.