# Shared terminal verification

Final source: [792b3451ae](https://git.cafe/pingdotgg/t3code/commit/792b3451ae28eb9ec4a1ce51b597a9ec23887e3d). Baseline: [d14ace8233](https://git.cafe/pingdotgg/t3code/commit/d14ace8233ad3cf7856b6b834824f888240d67a1).

## Required changed-file checks

Executed the repository's `scripts/check-changed.ts` with Node. The checkout stayed clean and unchanged throughout this final run, which exited 0. An external PATH wrapper serialized all top-level check commands and affected-package typechecks after the default Promise.all gate exhausted the VM while native uploads and dev servers were active. Child Node heaps were capped at 3072 MiB. No repository code was changed for this operational adjustment. Step durations include time waiting for the serialization lock.

Final summary copied from the completed run:

```text
check:changed summary
  pass  format  2.0s
  pass  lint  1.5s
  pass  knip 1/2  12.4s
  pass  knip 2/2  53.9s
  pass  graphql (apps/server)  58.5s
  pass  typecheck (29 packages)  57.0s
  pass  test (6 files)  87.2s
  CI also runs: full test suites, build, mobile native lint, release smoke
  unused patch check skipped: no dependency files changed
```

All 96 selected tests passed. Lint reported existing warnings. Swift and Kotlin are not compiled by this TypeScript gate; native build and rendering evidence are recorded separately.

## Regression proofs

The initial shared-geometry test attached 130×15 and 54×15 viewers. Before implementation, both latest stream events lacked the actual PTY geometry:

```text
expected { wide: null, narrow: null }
to deeply equal { wide: { cols: 54, rows: 15 }, narrow: { cols: 54, rows: 15 } }
```

The overflow ownership test has recovery and cancellation-before-recovery variants. Removing the outer viewer hold reproduces the failure in both:

```text
AssertionError: expected { cols: 130, rows: 15 }
to deeply equal { cols: 50, rows: 12 }
```

After the fix, `vp test run src/terminal/Manager.test.ts src/terminal/OutputProtocol.test.ts` in apps/server passed all 60 tests. These tests verify stream lifetime and recovery; they do not substitute for native visual captures or claim a recorded 8 MiB overflow.

## Lead real-web integrated pass

After merging main at [c43af3a581](https://git.cafe/pingdotgg/t3code/commit/c43af3a581cd59722a4ac40dc788fb45d6134f1e), the lead ran the committed truecolor PTY fixture in the real web app. A 1280-wide viewer with the sidebar open rendered the complete 130×15 grid. Resizing to 390 CSS pixels rendered the complete 48×15 grid with border and cursor. Restoring 1280 returned `stty size` to `15 130`. The lead exited the TUI and closed the viewer before formal capture. The subsequent 792b commit changes only iOS freed-layer cleanup; the web and server files are byte-identical to this integrated pass.

Earlier two-independent-connection sanity checks at 65a showed both clients agreeing on 48×15, then 39×15 after narrowing the phone viewport, and restoring the wide 163×15 grid on detach. These historical sanity checks do not replace final paired recordings.
