deps(frontend): TypeScript 7 (lands #383, issue #388) - #428
Open
WalksWithASwagger wants to merge 1 commit into
Open
deps(frontend): TypeScript 7 (lands #383, issue #388)#428WalksWithASwagger wants to merge 1 commit into
WalksWithASwagger wants to merge 1 commit into
Conversation
Bumps the frontend `typescript` devDependency from ^5.8.3 to ^7.0.2, landing Dependabot #383 and tracked by #388. Verified locally (Node 26): `tsc --noEmit` typecheck, `vite build`, and `vitest run` all pass under TypeScript 7. The lint toolchain is NOT yet TS7-compatible: typescript-eslint@8.65.0 declares peer `typescript >=4.8.4 <6.1.0` and hard-refuses TS 7.0 at runtime, so both `npm ci` (strict peer resolution) and `eslint .` fail. No released typescript-eslint supports TS 7.0 yet (tracked upstream in typescript-eslint#10940, targeting TS >=7.1 via a TS6-API side-by-side setup). Left for human decision — see PR body and #388. Refs #388 Supersedes #383 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017F63bPvWRFR4iVEm83Pzoj
This was referenced Aug 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bumps the frontend
typescriptdevDependency from^5.8.3to^7.0.2.5.9.3→7.0.2), which currently fails CI. Please do not merge build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /frontend #383 in favor of this PR; leave both open for a maintainer decision.frontend/package.jsonandfrontend/package-lock.json.Honesty up front: CI is RED and this is not cleanly mergeable yet
This is the riskiest item in the dep batch (a two-major TS jump to the new native/Go port). The bump itself is clean, but the repo's lint toolchain does not support TypeScript 7 yet, and that is not fixable with a surgical, in-scope change. Landing this as-is would knowingly break the
testgate. Filing it review-ready so a human can decide.What passes vs. fails (verified locally, Node 26)
tsc --noEmit(typecheck)tsc@7compiles the source cleanly, no type errors.vite build.output/fine; vite/rollup/esbuild don't need the TS JS API.vitest run(test)npm ci(CI install step)eslint .(lint)CI's
testjob runsnpm --prefix frontend cithennpm run verify(which chains frontendtypecheck && test && build && lint). It will fail at the install step first, and would fail at lint even if install were forced.Root cause (single upstream issue, two symptoms)
typescript-eslint@8.65.0declares peertypescript: ">=4.8.4 <6.1.0", which TypeScript 7 violates, and it also throws at runtime:npm ci(strict peers) errors:npm installonly downgrades this to a warning;npm ci, which CI uses, is strict.)eslint .throwstypescript-eslint does not support TS 7.0.Additional context: the
typescript@7npm package is the native Go port — it ships only a nativetscbinary (notsserver) and no longer exports the JS compiler API at the main entry ("." → lib/version.cjs; the real API moved to./unstable/*). Tools thatrequire('typescript')for the classic API (typescript-eslint) therefore break.Why I did not "fix" it
Per the task's guardrails (no blanket
any/@ts-ignore, no unrelated dep bumps, change only what TS7 requires): there is no releasedtypescript-eslintthat supports TS 7.0 (support is tracked for TS >=7.1 in typescript-eslint#10940). Every real workaround is out of scope for a surgical bump. Deliberately left for maintainer decision.Options for a maintainer
5.9.xuntiltypescript-eslintships TS 7.x support (typescript-eslint#10940), then revisit. Lowest risk.typescript@6, usetypescript@7'stscfor typecheck). Architectural change beyond a dep bump; would need its own issue..npmrclegacy-peer-deps=trueand drop typescript-eslint / TS-aware lint. Makes CI green but weakens the lint gate — not recommended.Verification commands run
Refs #388. Supersedes #383. Do not merge until the lint-toolchain blocker is resolved.
🤖 Generated with Claude Code
https://claude.ai/code/session_017F63bPvWRFR4iVEm83Pzoj