Skip to content

React 19, TypeScript 7, Vite 8 (unverified, 4 failing tests) - #552

Draft
lacymorrow wants to merge 2 commits into
mainfrom
chore/frontend-major-upgrades
Draft

lacymorrow wants to merge 2 commits into
mainfrom
chore/frontend-major-upgrades

Conversation

@lacymorrow

Copy link
Copy Markdown
Owner

Draft. Do not merge as-is. Opened to give this work a branch and an owner.

Where this came from

Found uncommitted in the ~/repo/juno working tree, dated 2026-09-11/12, no branch, no owner, sitting in a tree that several sessions share. One git checkout away from being lost. Committing it here is the only claim being made; it is not endorsed.

What it is

26 major version bumps:

react / react-dom 18.3 -> 19.3
typescript 5.6 -> 7.0
vite 6 -> 8
vitest 3 -> 5
zod 3 -> 4
recharts 2 -> 3
also ai 6->7, framer-motion 12->13, motion 12->13, lucide-react 0.564->1.45, react-three/fiber 8->9, drei 9->10, shiki 3->4, react-day-picker 9->10, react-resizable-panels 3->4, nanoid 5->6, jsdom 26->30, @vitejs/plugin-react 4->6, jest-dom 6->7, vite-tsconfig-paths 5->6

Migrations that came with it: ResizablePanelGroup direction -> orientation, baseUrl dropped from tsconfig, shadcn components regenerated, globals.css reshaped for Tailwind v4.

Also adds [patch.crates-io] block = { path = "vendor/block" } and the vendored crate, a one-line fix for the uninhabited_static future-incompat lint (rust-lang/rust#74840). vendor/ was untracked, so a fresh clone could not build the Rust side at all. That part is worth keeping regardless of what happens to the dependency bumps.

State: not ready

bunx tsc --noEmit passes. bun run test does not:

Test Files  3 failed | 15 passed (18)
     Tests  4 failed | 162 passed (166)
  • FloatingBar > does not settle when the press was a click, not a dragsetPosition called once when it should not be. A click is being treated as a drag. Real behaviour, not a snapshot.
  • AdvancedSettingsToggle > keeps only non-advanced sections in basic mode
  • AdvancedSettingsToggle > shows the power-user cards with the toggle on
  • ShortcutsSettings > renders every shortcut name with its chip and no inline descriptions

Before anyone picks this up

This branch is based 26 commits behind origin/main, and all three failing test files changed substantially since. Rebase onto current main first, or you will fix tests that no longer exist in that form.

Also: resizable.tsx, calendar.tsx and chart.tsx import cn from the cn package while the rest of the codebase imports it from @/lib/utils. It is shadcn's own package, so not a supply-chain problem, but two implementations of one helper is worth collapsing to one.

Two untracked files in that tree were stale duplicates of files already tracked on origin/main (scripts/tauri-build.sh, commands/auto_grant.rs). Removed rather than committed; origin's are newer.

A Developer ID p12 was sitting untracked and unignored in the repo root
as juno-signing.b64. Identities get base64'd so they can be pasted into
a CI secret, and that strips the extension the *.pem / *.key / *.crt /
*.cert rules catch, so nothing here covered it. One `git add -A` in a
shared worktree would have put a signing identity into history.

Adds the missing binary forms (*.p12, *.pfx, *.mobileprovision) and the
base64 spelling. The file was never committed on any branch, so there is
no history to rewrite.
…forced

Found uncommitted in the shared working tree, dated 2026-09-11/12, with
no branch and no owner. Committed here so it is not lost or clobbered by
the next person to work in that tree. NOT verified: see below.

26 major bumps, including react/react-dom 18.3 -> 19.3, typescript
5.6 -> 7.0, vite 6 -> 8, vitest 3 -> 5, zod 3 -> 4, recharts 2 -> 3,
framer-motion and motion 12 -> 13, lucide-react 0.564 -> 1.45.

API migrations that came with them:
  - ResizablePanelGroup `direction` -> `orientation`
  - tsconfig drops `baseUrl`
  - shadcn components regenerated (calendar, chart, resizable,
    animated-components), globals.css reshaped for Tailwind v4

Also adds a [patch.crates-io] pointing `block` at vendor/block, a
one-line fix for the `uninhabited_static` future-incompat lint that
will become a hard error (rust-lang/rust#74840). vendor/ was untracked,
so a fresh clone could not build the Rust side at all.

Two untracked files were stale duplicates of files already tracked on
origin/main (scripts/tauri-build.sh, commands/auto_grant.rs) and were
removed rather than committed; origin's versions are newer.

Known issue: resizable.tsx, calendar.tsx and chart.tsx import `cn` from
the `cn` package while the rest of the codebase imports it from
@/lib/utils. Two implementations of the same helper.
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