build(deps-dev): bump vite to 8 and typescript to 6 in /ui - #140
Merged
Merged
Conversation
Lands the two dependabot majors that couldn't merge as-is:
- vite 6.0.0 -> 8.1.5. Build/lint/tests all pass unchanged with the
existing vitest 2.1.9 + @vitejs/plugin-vue 6.0.8 (both already declare
vite 8 in their peer ranges). The only fallout was a ~0.4pp UI coverage
dip from vite 8's different bundling/sourcemap output shifting which
branches land as "uncovered" in a few components (AccountList.vue,
SourceTable.vue, Activity.vue). Closed the gap - and then some - with a
new App.vue shell smoke test (0% -> 98.5% on that file), since the app
shell had no mount coverage at all. Net UI line coverage: 88.58% ->
89.36% locally (CI's cached main baseline is 88.51%).
vitest 4.1.x is the first line that declares official vite-8 support,
but it switches @vitest/coverage-v8 to AST-aware remapping, which
reports substantially LOWER (~84%) coverage on this codebase - not a
real regression, just a stricter measurement that can't clear the
regression gate without a baseline reset. Deferring that bump
deliberately; left a comment in vitest.config.ts explaining why so it
isn't "helpfully" redone later.
- typescript 5.6.0 -> 6.0.3. The only break was tsconfig.json's baseUrl,
deprecated in TS 6 (TS5101, removed in TS 7). Removed it and converted
the "@/*" path mapping to the explicit relative form ("./src/*"), which
TypeScript resolves relative to the tsconfig file when there's no
baseUrl - build/typecheck output is unchanged. vue-tsc 2.2.12 (peer
range >=5.0.0) needed no bump.
telemetry-worker already pins typescript ^6.0.3 (unrelated recent merge)
and has no vite dependency - left untouched.
Verified locally: pnpm -C ui lint (0 errors), pnpm -C ui run build
(vue-tsc + vite build), pnpm -C ui test:unit (271/271 passing),
pnpm -C ui run test:coverage (89.36% lines, up from 88.58%), and
cargo check -p driven-app.
Supersedes #121 and #122.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Coverage
Gate: passed - no coverage regression (epsilon 0.1 pp). |
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 broke and how it was fixed
vite 6.0.0 -> 8.1.5 (
ui/package.json). Build/lint/tests all pass unchanged with the existingvitest2.1.9 +@vitejs/plugin-vue6.0.8 (both already declare vite 8 in their peer ranges - no peer-dep incompatibility, contrary to my first guess). The only fallout was a ~0.4pp UI coverage dip: vite 8's different bundling/sourcemap output shifts which branches land as "uncovered" in a few components (AccountList.vue,SourceTable.vue,Activity.vue). Closed the gap - and then some - by addingsrc/__tests__/app-shell.test.ts, a smoke test forApp.vue(the app shell), which had zero mount coverage before this (0% -> 98.5% on that file alone). Net UI line coverage: 88.58% -> 89.36% locally (CI's cachedmainbaseline is 88.51%).vitest4.1.x is the first line that officially declares vite-8 support, and I tried it - but it switches@vitest/coverage-v8to AST-aware remapping, which reports substantially lower (~84%) coverage on this codebase. That's not a real regression in test quality, just a stricter/more-accurate measurement, but it can't clear the CI coverage-regression gate without a baseline reset (which I can't do without merging). So the vitest bump is deliberately deferred - left a comment invitest.config.tsexplaining why, so it isn't "helpfully" redone later and silently breaks the gate.typescript 5.6.0 -> 6.0.3 (
ui/package.json). The only break wastsconfig.json'sbaseUrl, deprecated in TS 6 (TS5101, removed in TS 7). Removed it and converted the"@/*"path mapping to the explicit relative form ("./src/*") - TypeScript resolvespathsrelative to the tsconfig file when there's nobaseUrl, so behavior is unchanged.vue-tsc2.2.12 (peer range>=5.0.0) needed no bump.telemetry-workeralready pinstypescript ^6.0.3(an unrelated recent merge) and has novitedependency at all - left untouched.Test / gate results (all local)
pnpm -C ui lint- 0 errors (13 pre-existing i18n key warnings, unrelated)pnpm -C ui run build(vue-tsc --noEmit && vite build) - passespnpm -C ui run test:unit- 271/271 tests passing (29 files)pnpm -C ui run test:coverage- 89.36% lines (up from 88.58% onmain), deterministic across 3 runscargo check -p driven-app- passesSupersedes #121 and #122.
🤖 Generated with Claude Code