Skip to content

build(webv2): update dependencies to latest and enable React Compiler lint rules - #256

Merged
joshistoast merged 10 commits into
mainfrom
chore/upgrade-deps
Sep 15, 2026
Merged

joshistoast merged 10 commits into
mainfrom
chore/upgrade-deps

Conversation

@joshistoast

@joshistoast joshistoast commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

Every webv2 dependency was behind latest, and the lint config referenced react/react-compiler, which oxlint 1.79 split into 24 per-category React Compiler rules. This bumps everything to latest (majors: Vitest 5, Playwright 1.63, fuzzysort 4, plotly.js 4, Chakra 3.37, TanStack Router 1.170.36, React 19.3, oxlint 1.82, oxfmt 0.67), enables the compiler rule family with per-site suppressions naming the rule that actually fires, and fixes what the upgrades broke:

  • fuzzysort 4 caps results at 10 by default; prompt template, wildcard and command palette search silently truncated. Fixed with limit: 0 and regression tests.
  • Vitest 5 browser mode injects string defines as string literals, so the "false" golden-update flag was truthy: every browser run rewrote the canvas goldens and skipped the harness tests. Both configs now use booleans and the harness rejects a non-boolean define.
  • Four browser tests adapted to strict toHaveTextContent, zag's stationary-hover gate, Chakra's async dialog focus, and a router 1.170.19 change where a pre-render router.load() on an unmounted router never settles.

Four compiler rules stay off with reasons in the config: todo and rule-suppression fire 70+ times on legitimate code; exhaustive-effect-dependencies and memo-dependencies flag the deliberate identity-trigger deps used with useEffectEvent (react/exhaustive-deps remains the dependency gate).

Checklist

  • The PR has a short but descriptive title, suitable for a changelog
  • Meaningful regression coverage added / updated where needed; obsolete tests/code removed
  • Persisted-state and API changes include required migrations / compatibility validation
  • Relevant performance/efficiency opportunities considered; material claims have evidence
  • Material review findings resolved and relevant checks rerun
  • Documentation added / updated (if applicable)
  • Updated What's New copy (if doing a release after this PR)

Majors: Vitest 5, Playwright 1.63, fuzzysort 4, plotly.js 4, Chakra 3.37, TanStack Router 1.170.36, React 19.3, oxlint 1.82, oxfmt 0.67.
Vitest 5 keeps its artifacts under .vitest/; one test file picks up oxfmt's new layout.
oxlint 1.79 split react/react-compiler into 24 rules; every suppression now names the rule that fires at that site, and two stale ones are gone.
todo, rule-suppression and the compiler dependency rules stay off, with the reasons in the config.
…1.170

toHaveTextContent is exact now; zag ignores a stationary synthetic hover; the dialog places initial focus asynchronously.
A pre-render router.load() on a router whose provider unmounted never settles since @tanstack/react-router 1.170.19, so the provider drives the load.
fuzzysort 4 returns at most 10 matches unless limit is 0, which silently truncated prompt template, wildcard and command palette search.
Vitest 5 browser mode injects string defines as string literals, so "false" was truthy and every browser run rewrote the canvas goldens and skipped the harness tests.
The harness now rejects a non-boolean define.
Launchpad grows 24 KB brotli and the editor 20 KB, almost entirely @tanstack/router-core's 1.170.19 scheduler and its store dependency.
Request counts drop as the newer bundler folds small chunks into the entry chunk.
Take main's performance baselines; they are re-recorded in the next commit.
- ark 5.39 moved the field error id out of `ariaDescribedby`; read it from the field's input props instead
- browser cases for help text and for an invalid field without error text
- rewrite the seed-mode reducer's rest destructuring as a declaration for oxlint 1.82
Vendor growth from React 19.3, zod 4.6, fuzzysort 4 and lucide-react; fewer initial requests as Vite 8.3 folds tiny chunks into the entry.
Update five frontend dependencies and run the full release gate in CI.
Accept recorded byte growth while preserving request and structural limits.
Stabilize accessibility journeys and retain failure screenshots.
@github-actions github-actions Bot added the ci-cd label Sep 15, 2026
@joshistoast
joshistoast merged commit 8e5d3f3 into main Sep 15, 2026
19 checks passed
@joshistoast
joshistoast deleted the chore/upgrade-deps branch September 15, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant