Skip to content

chore(deps): let Renovate update the playground and group coupled majors - #379

Merged
robelest merged 1 commit into
convex:mainfrom
robelest:chore/renovate-unblock
Sep 23, 2026
Merged

robelest merged 1 commit into
convex:mainfrom
robelest:chore/renovate-unblock

Conversation

@robelest

Copy link
Copy Markdown
Collaborator

Unblocks the open Renovate PRs whose lockfile updates fail.

Playground lockfile. The playground took react, react-dom and convex from file:../node_modules/.... Renovate regenerates playground/package-lock.json without installing the root, so those resolve to nothing and any bump of a package with a React peer fails with ERESOLVE ... Found: react@undefined (#338, #242). react and react-dom were already in dependencies, so the duplicates are gone and convex is a plain version. resolve.dedupe in the playground's vite config keeps one React and one Convex client across the linked @convex-dev/agent; without it the build bundles a second copy of each.

Reproduced by running npm install --package-lock-only in playground/ with no root node_modules: on main, bumping lucide-react to v1 fails with the same ERESOLVE Renovate reports. On this branch, lucide-react@^1, sonner@^2, tailwind-merge@^3, vite@^8 and the latest @radix-ui/react-accordion all resolve.

Coupled majors. @vitejs/plugin-react 6 peers only on vite 8, and plugin-react 4 does not allow vite 8, so #351 and #249 each fail to install alone. vite and @vitejs/* majors are now one group.

TypeScript. typescript-eslint, even at its latest, peers on typescript <6.1.0, so #350 (TypeScript 7) cannot pass lint. Renovate now holds typescript below 6.1.0. TypeScript 6 stops auto-including @types/* and deprecates baseUrl, so tsconfig.json lists node types and the example and playground configs drop baseUrl. Build, typecheck, tests and lint pass on both 5.9.3 and 6.0.3.

CI. The test workflow now installs and builds the playground. Until now playground bumps (tailwind, vite, lucide) passed CI without the playground ever being built.

The playground took react, react-dom and convex from
file:../node_modules, which does not exist when Renovate regenerates
playground/package-lock.json, so every bump touching a React peer failed
with ERESOLVE. They are now ordinary versions, and vite dedupes them so
the linked @convex-dev/agent shares one React and one Convex client.

Renovate groups vite with the @vitejs plugins for majors, since each
plugin major peers on one vite major, and holds typescript below 6.1.0,
typescript-eslint's peer range. tsconfig lists node types and drops
baseUrl so TypeScript 6 builds. CI now builds the playground, so its
dependency bumps are actually exercised.
@pkg-pr-new

pkg-pr-new Bot commented Sep 23, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@convex-dev/agent@379

commit: 05bab03

@coderabbitai

coderabbitai Bot commented Sep 23, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: get-convex/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: ef1891a7-bd8a-4545-a80e-4c43830e7955

📥 Commits

Reviewing files that changed from the base of the PR and between 8c3787e and 05bab03.

⛔ Files ignored due to path filters (1)
  • playground/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • .github/workflows/test.yml
  • example/tsconfig.json
  • playground/package.json
  • playground/tsconfig.app.json
  • playground/vite.config.ts
  • renovate.json
  • tsconfig.json
💤 Files with no reviewable changes (1)
  • playground/tsconfig.app.json

Included review availability: Your plan provides up to 2 included reviews per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The playground adds pinned React, React DOM, and Convex dependencies, and Vite deduplicates those packages during resolution. TypeScript configurations remove baseUrl; the root configuration adds Node.js types. CI now installs and builds the playground. Renovate groups major Vite updates and limits TypeScript updates to versions below 6.1.0.

Suggested reviewers: ianmacartney

Merge Risk: ⚪ Minimal · up to 05bab

No actionable issue remains in the supplied evidence; the playground build and dependency updates are ready for normal merge checks.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: enabling Renovate updates for the playground and grouping coupled major updates.
Description check ✅ Passed The description directly explains the dependency, Renovate, TypeScript, and CI changes in the pull request.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 8 files

Re-trigger cubic

@robelest
robelest merged commit f968f79 into convex:main Sep 23, 2026
7 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.

1 participant