Skip to content

chore(jvchat): upgrade to React 19#75

Merged
eldonm merged 2 commits into
mainfrom
chore/react-19
Jul 7, 2026
Merged

chore(jvchat): upgrade to React 19#75
eldonm merged 2 commits into
mainfrom
chore/react-19

Conversation

@eldonm

@eldonm eldonm commented Jul 7, 2026

Copy link
Copy Markdown
Member

Completes the React 19 upgrade that dependabot #65 couldn't (it bumped react/react-dom/@types/react but missed @types/react-dom, so install died with ERESOLVE). Closes #73.

Changes

  • react / react-dom / @types/react / @types/react-dom^19; package-lock.json regenerated.
  • One React 19 breaking change fixed: the global JSX namespace was removed, so JsonViewer.tsx's JSX.Element return types now import type { JSX } from "react".

Verified locally (full jvchat CI, React 19)

  • npm install — clean; @assistant-ui/*, radix-ui, @testing-library/react, lucide, etc. all dedupe onto react@19.2.7.
  • npm run build (tsc && vite build) — ✓ (3197 modules).
  • npm run lint (eslint --max-warnings 0) — ✓.
  • npm test (vitest) — ✓ 55 passing.

Note

pre-commit check-yaml may show red on pnpm-lock.yaml until #74 lands — that's a pre-existing main corruption (duplicate @codemirror/state@6.7.0 from the #69 lockfile merge). #74 excludes auto-generated lockfiles from check-yaml; rebasing this on main after #74 merges clears it. (jvchat uses package-lock.json / npm ci; pnpm-lock.yaml is vestigial.)

🤖 Generated with Claude Code

Bump react / react-dom / @types/react / @types/react-dom to ^19 and regenerate
package-lock.json. Fixes the one React 19 breaking change in the tree: the
global `JSX` namespace was removed, so JsonViewer.tsx's `JSX.Element` return
types now import the type explicitly (`import type { JSX } from "react"`).

The @assistant-ui/*, radix-ui, @testing-library/react, lucide, etc. ecosystem
all dedupe cleanly onto react@19. jvchat build (tsc && vite build), lint
(eslint --max-warnings 0), and tests (vitest, 55 passing) are green under 19.

Supersedes dependabot #65 (partial bump — it missed @types/react-dom, causing the
install-time ERESOLVE). Closes #73.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ck-yaml

- Regenerate package-lock.json cleanly (rm + npm install) so it's fully in sync
  — the incremental install left it missing a transitive dep, so `npm ci` (what
  CI runs) failed with EUSAGE. `npm ci` now installs clean.
- Exclude auto-generated pnpm-lock.yaml from check-yaml (mirrors #74): main's
  pnpm-lock carries a duplicate key from the #69 merge that trips the strict
  parser; lockfiles shouldn't be yaml-linted. jvchat uses npm ci, not pnpm.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@eldonm eldonm merged commit f95b5fe into main Jul 7, 2026
3 checks passed
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.

Upgrade jvchat to React 19 (dependabot #65 needs manual migration)

1 participant