tsgo-backed TypeScript 6.0.3, bridge rev 9. Requires Node ≥ 20. Drop-in via package-manager override — see the README.
Fixes
- LSP memory leak / gradual freeze (696dbb2) — per-generation re-wrap of bundle-prototype accessors chained every program island onto the shared prototypes (~0.65 MB retained per generation). On project-reference-heavy repos this was the "F12 a few times and tsserver grinds to a halt" report. Hooks now install once per process.
- External disk edits now reach tsgo (481ea9f, issue #49) — all three host classes: typescript-eslint
project:watch-lint (including unsaved-buffer code), tsserver updateOpen re-send, and plaintsc -wcontent edits + file adds. Every phase stock-identical. - Nondeterministic whole-program diagnostics (75eab3f, issue #51) — stride-pass checker-group releases are deferred past RunAndWait, so an idle slot can't be warm-re-leased into a later group mid-pass. Diagnostics are byte-identical across fresh runs; the witness is wired into CI.
- Exit-code parity (5087d67) —
tsc --noEmitwith errors now exits 2 like stock (whole-program emit degenerates to emitBuildInfo,emitSkipped: false). Wrapper scripts that branch on exit codes behave the same as with stock. - Export-map resolution (cd383be) — importability is compared in realpath space.
Performance
- Whole-program diagnostics join point restored in build mode (a7b1252)
- Type-keyed checker queries memoized per generation (85c964a)
- Discarded explainFiles strings skipped; disk-identical opens adopted (3f92bd4)
- Empty updateSnapshots killed on the edit path (8ca1be6)
- Re-measured against stock 6.0.3: vue-tsc ~3x, ESLint ~parity (fb21057, 96130d2 — methodology in the README)
Tooling
- mdx-tsc added to the verified compatible tools list (6989610)
- volar pins moved to master @343049a14 (cabe599)
- Gate hardening: nightly sim-nav uploads shard logs on failure (6d93ff3); stock-side harness timeouts no longer fail the baseline gate, and a geterr timer race that could kill a shard is fixed (1260751)