Skip to content

WIP: TS 7 experiment - #395

Draft
MatiasFernandez wants to merge 2 commits into
mainfrom
mfernandez/migrate-to-ts-7
Draft

WIP: TS 7 experiment#395
MatiasFernandez wants to merge 2 commits into
mainfrom
mfernandez/migrate-to-ts-7

Conversation

@MatiasFernandez

Copy link
Copy Markdown
Collaborator

No description provided.

MatiasFernandez and others added 2 commits August 7, 2026 21:29
client/tsconfig.json relied on @types/jsdom's global DOM lib reference
being auto-included; restricting `types` to an explicit allowlist
makes that dependency visible instead of implicit. mcp-server's
outDir was dead since noEmit is set on the same config and esbuild
produces the real output. Both are TS 6/7 semantic changes that
surface as errors on newer compilers — verified as a no-op here on
the current 5.9.3 toolchain (0 errors, full test suite green).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
npm run compile / CI now run through tsgo (typescript@7.0.2, the
native Go rewrite) instead of tsc — roughly 6x faster on this repo,
which matters because .vscode/launch.json runs it as a preLaunchTask
on every F5. TypeScript 7 ships no JS API, so typescript-eslint (which
calls ts.createProgram directly, and peers typescript <6.1.0) can't
run on it; hence the dual install — typescript stays pinned to 6.0.x
purely for ESLint's type-aware rules, tsgo does the compiling. Every
script invokes tsgo by explicit path since both packages ship a `tsc`
bin and node_modules/.bin/tsc is install-order-dependent.

Verified: emitted .js is byte-identical between tsc@6.0.3 and tsgo
across client/server (including the allowJs gemStoneVersion.js path),
watch mode's start/settle banners and diagnostic path format still
match the $tsc-watch/$tsc problem matchers, stale .tsbuildinfo from
either compiler triggers a clean rebuild rather than reuse, and
lint/format/compile/test/package all pass. F5 extension-host smoke
test still needs a manual GUI check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant