# Missing runtime capture — evidence only

Head: [3926acc0d4](https://git.cafe/pingdotgg/t3code/commit/3926acc0d4d70d95a5e8747bfacec032a0253ebd), [#23537](https://git.cafe/pingdotgg/t3code/pulls/23537). Worktree `/home/ubuntu/wt/pr-23537`, clean before/after. Captured 2026-10-22 10:31:04–10:31:12 UTC on Linux x64, Node v26.12.1, pinned installed headless Chromium 154.0.8037.92. ServerBrowser blob `e212e495fd6f3415eb8ef11d841bf1242d33c82f` matches the auditor's ancestor/final identity. Existing sufficient listener/guard/frozen-isolated proof reused without repetition.

## Scope and limits

This is a **real production service harness**, not a full running app: production ServerBrowser, ServerBrowserContexts, PreviewAutomationBroker, PreviewManager and unavailable-desktop layer, real headless Chromium, real pages/CDP, real timers, isolated config/state, and a loopback HTTP fixture. It does not start the HTTP/WebSocket application or browser UI. Environment identity and installed executable are injected; the configuration uses the production `layerTest` helper to create isolated paths. Observation wrappers forward contextFor/newPage/page.close/context.close unchanged and log real events. Page fixtures are installed by direct real Playwright evaluate, broker opens/status, and manager closes. No mocked close logic, no production-file modifications. Timing includes observation overhead. Static harness identity is not a provider session launched by the full app.

Exact successful invocation, cwd above:

```sh
T3CODE_SERVER_BROWSER_SANDBOX=0 node /tmp/pr23537-evidence/runtime/capture.mts > /tmp/pr23537-evidence/runtime/capture-3.jsonl 2>&1
```

The script is delivered as `runtime-capture.mts`; `runtime-reproduce.sh` recreates the external module-resolution symlink and isolated runtime directory. Ambient environment inherited; no `.env`, credentials, live database, or secrets were read/copied. Only explicit runtime environment override is shown above. Profiles/state were new under `/tmp/pr23537-evidence/runtime/state`; removed after scope cleanup.

## Observations (monotonic milliseconds from transcript)

- **Pending confirm/shared sibling:** production status confirmed pending confirm at 850.929. Manager close requested at 851.168; real page.close called at 852.012 with `runBeforeUnload:false`, manager returned in 2.187ms, page close at 854.915. No dialog answer. Same-context sibling evaluation succeeded at 857.684; context remained open.
- **Finite delayed graceful unload/isolated ordering:** real synchronous 1800ms beforeunload handler logs start 1048.273, end 2848.516. During handler, page and context both open. Page close event 2849.695 with context still open; context.close call 2849.971; context close event 2855.512. No forced close call for this page. This shows finite renderer work, not arbitrary async unload awaiting.
- **Shared frozen target/sibling preservation:** freeze-start at 3023.016; graceful page.close call 3023.775; manager returns in 1.447ms. Sibling responds while target frozen. Unconditional page.close fallback call 8026.206 (5002.431ms after initial call); target page close event 8034.213; sibling responds at 8042.127 and same context stays open. Five seconds is configured grace **before a force-close attempt**, not a guaranteed completion bound. This is one observed timing sample, not a universal timing guarantee.
- **Secondary external close:** real CDP Target.closeTarget closes target at 8128.480; production cleanup calls close on already-closed page, then repeated manager.close returns; sibling responds at 8132.762. This is external-close coverage, not a crash or injected first-close rejection.
- Shared sibling closed normally; shared context closed only at scope teardown (8141.802); finalizer completed at 8197.374. Exec session exited successfully. Cleanup artifact confirms captured process IDs absent, fixture port closed, worktree clean. Owned browser contexts shut down via production scope, no pattern-based killing.

## Remaining gaps

- Full HTTP/WebSocket application capture was not performed; these observations are service-harness runtime evidence only.
- Controlled graceful-close rejection/fault row not attempted. External closure caused an already-closed close call to retry, but must not be presented as controlled initial transport-fault proof.
- No explicit timer schedule/cancel hook: absence of force-close before teardown for normal rows is not proof of timer cancellation. Existing modeled timer tests remain separate.
- No crash row, broad reliability claims, exact five-second deadline, or universal lifecycle/beacon delivery established.
- Independent code-review verdict remains **absent**; this capture gives no review/merge verdict.

## FRICTION

Two pre-capture harness attempts failed: invalid await inside a generator (syntax corrected); then data URL rejected by production preview URL normalization (changed to ephemeral loopback HTTP fixture). Neither opened a browser page. Successful capture used no network fixture dependency. No implementation edits, commits, PR comments/body changes, pushes, merges, watches, or PR polling. App-owned PR registration performed as required by harness. No visual paths; text transcript is the capture. Temporary scratch/state/symlink removed; deliverables retained here for parent cleanup.
