# Reproduce A43 only

Before: dc84b0962efa4f4e05ef392c08986a9cd7c994d1. After: c4cb969cf5fb3ef8aa43259002fbf3058979058d. This is simulated WSL on Linux, not native Windows/WSL. All fixture data is synthetic. No isolated component harness.

1. Use /home/ubuntu/wt/pr-26030-before2 at the before revision and /home/ubuntu/wt/pr-26030 at head. Install dependencies with the global `vp install`. Do not change tracked files. Extract the scripts to /tmp/lead-26030-r1/evidence-capture-2. Scripts contain explicit paths for this run; adjust those if rebuilding elsewhere. `python3 setup.py` creates a NEW timestamped run and writes run-path.txt. The original run was run-20261027T190904Z.
2. Run `python3 start.py before` and `python3 start.py after`. Each creates its own fresh --home-dir with T3CODE_DEV_SEED=0 and --no-seed. Never use live userdata as seed. These isolated child environments put the executable wslpath stub first on PATH and set WSL_DISTRO_NAME=Ubuntu and PROOF_MOUNT_ROOT to a custom mount. The shared synthetic C: directory contains notes.md, plain.ts and wide.png; lowercase symlink aliases support canonicalized metadata lookup. X: is unused inherited setup from the previous capturer.
3. Read real [dev-runner] ports before proceeding. This run used before web/server 7320/15360 and after 7650/15690. Adjust port literals in bootstrap-before.js, bootstrap-after.js and record-a43.js if shifted. Start `node browser-host.mjs` as an owned process; it exposes only a loopback driver on 19376 and uses the repo Playwright 1.60.0 and Chromium 148.0.7778.96. Retain its process/session for cleanup.
4. Run driver snippets SEQUENTIALLY via `node send.mjs <script>`: bootstrap-before.js, bootstrap-after.js. They pair through the app UI using fresh startup tokens (not included in this upload), and seed using project/create and orchestration RPC commands. seed.js creates a single A43 thread, defers `[Documents](C:/Users/me/Documents)` and stops it before provider start. Bootstrap-after had an ERR_ABORTED navigation race on this run; after the app had connected, recover-after.js completed its seed. The inspection/debug scripts preserve how that race was diagnosed. No code changes were made.
5. Run inspect-click.js (installs RPC observers, theme and layout helpers, then clicks the real chip on each side), capture-stills.js, then retake-narrow.js. The original resize-only narrow captures hid the Files panel, so they are diagnostic/superseded. retake-narrow.js clicks the chip at the narrow viewport and publishes the actual responsive Files surface. All screenshots use network idle, fonts.ready, reduced motion, 10.5 seconds after the known error and two pixel-identical captures 500 ms apart. The head's persistent Loading files… is the diagnostic finding and is intentionally retained. Accepted desktop files are in stills-20261027T191147Z; accepted narrow files are in stills-20261027T191332Z. capture-manifest.json names the final selection.
6. Run record-a43.js. It uses fresh authenticated contexts (no authentication is filmed), 1440x1000 dark, and the same click at ready+3 s, observes the error and holds to ready+17 s. Run environment.js. RPC observers record only selected project reads/listings and metadata: method, input and decoded response/result tag; they exclude authentication and asset grants. runtime-proof.py opens only the isolated synthetic databases read-only and reports zero provider sessions and turns.
7. Run process-evidence.py and inspect-recordings.py. They create PNG originals, scaled overview sheets, magenta Diff0 for ANY nonzero RGB channel difference and Diff8 for max-channel >8/255 (quarter-bright grayscale baseline), plus trimmed MP4s. Recording video zero is ready+0.5 s; step timestamps are converted in recording-published-manifest.json. Open every accepted original and diff. Inspect all recordings (contact frames at 0, 2.8, 4.2 and 15.8 s, plus full-size final frames were inspected here).
8. Run close-owned-browser.js, then stop-owned.py using ONLY captured PIDs/process groups. Verify ports 7320, 15360, 7650, 15690 and 19376 closed. Upload public outputs, seed/driver scripts, sanitized logs and raw capture/recording evidence. No storage state, credentials or databases are uploaded. Remove only your before checkout and evidence-capture-2 subdirectory after all uploads.

This run captured A43 only. Existing R1/R2/R3/C1 evidence was not recaptured. Browser zoom/font scaling 100%, DPR 1, no device emulation, reduced motion, locale en-US, UTC, fixed calendar clock 2026-10-27 18:00 UTC on client/server (timers run normally). All capture viewports and themes are in environment.json and capture-manifest.json.
