github johnsoncodehk/typescript-native-bridge v6.0.3-bridge.8.tsgo.7.0.2

2 hours ago

Highlights

Memory (#41): tsserver process-tree RSS on an SFC-heavy Vue fixture went from ~2× stock typescript to 1.19× stock, with the settled JS heap (335–352MB) below stock's own 881MB floor; post-navigation idle heap dropped a further 646.8 → 542.9MB. Five bridge-side retention bugs fixed — see Performance below.

Windows / VS Code (#44): the win32 bridge.node now delay-loads node.exe with a notify hook, so the addon loads under renamed hosts — VS Code running tsserver as Code.exe (ELECTRON_RUN_AS_NODE) no longer fails with "not a valid Win32 application". Verified end-to-end under Electron-as-node in CI.

Deterministic diagnostics (#42): whole-program diagnostics are now byte-identical across runs — checker assignment mirrors the compiler pool's index stride (per-run TS2430 blame-set variance), and the ambient-module index is sorted instead of leaking Go map iteration order.

Framework checkers (#38, #46): host-injected ambient roots (astro's global Astro/Fragment, svelte2tsx's __sveltets_2_* shims) now survive snapshot rebuilds — no more program-wide TS2304/TS2708 false positives after the first rebuild.

Fixes

  • #40: Program.emit with non-empty customTransformers throws loudly (tsgo can't execute JS transformers) instead of silently emitting untransformed output; empty shells pass — 9a7f8b2
  • #45: the TNB ACTIVE banner box is gone — one dimmed stderr line (▎ …), no escape codes when piped — 9bd7f34, e7af59e
  • Resolve the live project for thin-program RPCs ("snapshot N not found") — c9fdf6c
  • Sync overlay before thin-program lsnav wire queries — 2474dc8
  • Detect host-less disk writes in snapshot builds — 0d2723e
  • One SourceFile per logical file under case-folded queries — e4ea3ce
  • Stock-faithful forEachResolvedModule + getGlobalDiagnostics5f37f49
  • Treat host-virtual extensions as overlay candidates in node_modules — f2fe4fa
  • Stop disposing lsnav handles on no-change syncs ("symbol handle N not found in snapshot registry") — d470d76
  • Keep API extra roots across snapshot rebuilds — 9bab476
  • Two auto-import registry invalidation bugs — 53858dc
  • #43: exclude source maps from the npm tarball (by @KazariAI in #43)

Performance

  • #41 (B-1): lazy JS AST for virtual/overlay files — generated TS of .vue SFCs no longer eagerly mirrored onto the JS heap — 5361d20
  • #41: updateSnapshot params deduped structurally instead of retaining ~15MB of JSON per tsconfig — 8b332e1
  • #41 (B-3): light-stub tsserver walk + idle-evict scan-materialized full SourceFiles — ~410MB collectible after whole-program scans — 52ad8c6, 44801ea
  • #11: demand-gated cross-generation node-index reuse; idle-drain of per-generation index caches and decoded-node populations — acbaeb3, 153cb50

CI & tooling

  • Nightly now runs the win32 bridge test suite every night, including an Electron-host load probe — 2dd08cc, b1f5cf0
  • New witnesses: astro7 framework case (#38), __sveltets_2_* svelte patterns (#46), triage-diag-determinism.mjs (#42)
  • sim-nav baseline refreshed for volar pin 996b89cbc — 0309a5a
  • sim-xfile divergences now exit non-zero — 42fd94b

Full Changelog: v6.0.3-bridge.7.tsgo.7.0.2...v6.0.3-bridge.8.tsgo.7.0.2

Don't miss a new typescript-native-bridge release

NewReleases is sending notifications on new releases.