chore(client): Phase 6b — bump TypeScript 5.9 → 6.0#555
Merged
Conversation
Phase 6b of the dep-update sweep. Single-line dep bump: typescript ^5.9.3 → ^6.0.3 TypeScript 6 introduced no new strict diagnostics that fire on this codebase. `bun run build` (which runs `tsc && vite build`) is green with zero source changes. No tsconfig.json relaxation; strictness level is unchanged. Tests (32/32 files, 581/581) and bun audit are unaffected by this dev-only bump. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 12, 2026
Detair
added a commit
that referenced
this pull request
May 12, 2026
`bun run lint` has been silently broken on main since PR #555 (TypeScript 6 bump). Three distinct bugs in the chain — fixing all three here so lint becomes useful again. Build and tests unaffected (581/581 passing). 1. eslint.config.mjs — eslint-plugin-solid subpath `eslint-plugin-solid/configs/typescript.js` failed Node's stricter ESM resolution because the package's exports map only exposes `./configs/typescript` (no `.js` suffix). Removed the suffix. 2. brace-expansion override The override `^1.1.13 || ^5.0.6` was deliberately a union (per the dep-update spec, "do not drop the 1.x bound"). But the only consumer in the tree is `minimatch ^5.0.2` — the 1.x bound was vestigial. The union let bun resolve to 1.x, which doesn't expose the named `{ expand }` export minimatch's compiled CJS expects, crashing `@eslint/config-array` with `(0, brace_expansion_1.expand) is not a function`. Tightened to `^5.0.6` only. 3. no-unassigned-vars rule (ESLint 10 recommended) This rule was added to `@eslint/js` recommended in ESLint 10 (Phase 6a) and fires false positives on SolidJS's ref pattern: `let myRef: T | undefined; <div ref={myRef}>`. The JSX ref={} binding form assigns the variable at render time, which ESLint's static analysis can't trace. Disabled — accounts for ~40 of the 62 errors that were appearing once lint became runnable. After this PR: bun run lint → 29 errors + 233 warnings, all real code findings. Remaining errors are deliberately left for separate per-area PRs (they touch specific files / call sites): 14× preserve-caught-error — missing `cause` on re-thrown errors 8× solid/prefer-for — Array#map should be <For> 3× solid/no-innerhtml — potential XSS, security review needed 2× no-case-declarations 1× no-useless-assignment 1× no-control-regex Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Phase 6b of the dep-update sweep (spec, plan). Builds on Phase 6a (#554).
Surprise outcome — zero source changes
The plan anticipated a "flood of new diagnostics that Phase 6b will have to fix in source" with a precursor PR escape hatch if the volume was unmanageable. In practice, TypeScript 6.0.3 introduced no new diagnostics that fire on this codebase.
bun run build(which runstsc && vite build) is green with zero source changes.tsconfig.jsonstrictness level is unchanged — no relaxation, no new ignore. The bump is just a single-line dep update.Test plan
bun run build—tsc && vite buildgreenbun run test:run— 32/32 files, 581/581 tests passbun audit— unchangedbun run lint— CI-only (pre-existing local resolver issue)🤖 Generated with Claude Code