Skip to content

Update Remix to 3.0.0-beta.5#3

Merged
kentcdodds merged 7 commits into
mainfrom
cursor/update-remix-beta-5-c00f
Jul 1, 2026
Merged

Update Remix to 3.0.0-beta.5#3
kentcdodds merged 7 commits into
mainfrom
cursor/update-remix-beta-5-c00f

Conversation

@kentcdodds

@kentcdodds kentcdodds commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates remix from 3.0.0-alpha.3 to 3.0.0-beta.5 and refreshes bun.lock.
  • Migrates Remix v3 beta API changes: remix/component -> remix/ui, router action objects -> handler, data-table createTable -> table/column, and D1 adapter contract updates.
  • Adds a small local JSX runtime compatibility shim for existing css/on props while using the beta UI runtime; review feedback tightened it to preserve Remix intrinsic element props for known DOM/SVG/MathML tags.
  • Keeps chat delete confirmation working with the beta UI/CSS path and updates E2E interactions/test data for reliable repeated local runs.
  • Fixes preview CI mock Worker deployment by generating mock-specific preview Wrangler configs that use the PR-created D1 database binding instead of checked-in stale preview D1 ids.

Intentional Remix v3 upgrade assessment

  • Reviewed the remix@3.0.0-beta.5 release PR/notes, remix@3.0.0-beta.0 breaking export changes, remix@3.0.0-beta.4 router/data-table notes, and installed package docs/exports for remix/ui, remix/fetch-router, and remix/data-table*.
  • Adopted the consolidated remix/ui export surface required by beta and pointed client JSX at a repo-local compatibility runtime that wraps the beta UI runtime.
  • Adopted the fetch-router beta handler action-object contract and updated related tests.
  • Adopted the beta data-table table()/column declaration API for app tables.
  • Simplified the D1 adapter by deleting the app-owned copied SQLite SQL compiler (~577 lines removed) and delegating compileSql() to the public SqliteDatabaseAdapter from remix/data-table/sqlite; D1-specific async execution, metadata normalization, and schema checks remain app-owned.
  • Reviewed newer router features like router.mount() and UI primitive mix conventions. router.mount() was not adopted because the current server route table is small and the split would be structural churn. Direct mix={css(...)} / mix={[on(...)]} migration was considered against the beta direction, but pea currently has 240+ legacy css=/on={{...}} JSX attributes spread across large route components; converting all of them would be a broad UI rewrite. The scoped shim keeps this upgrade focused while still running on the beta UI runtime, and it can be removed in a future dedicated UI-style migration.

Breaking-change notes

  • Remix beta renamed the UI package surface from component to ui.
  • Fetch router action object fields now use handler instead of action.
  • Data-table adapter and table declaration APIs changed; the custom D1 adapter was updated to the new operation/result/capabilities contract.

Review loop

  • Review agent found and fixed a valid double-check regression where destructive confirmation could remain armed after blur.
  • Code-quality review noted JSX shim type-safety risk; shim was tightened to preserve Remix beta intrinsic props for known elements.
  • E2E multi-agent test data was made unique per run after persistent local E2E state exposed duplicate-agent interference.
  • Follow-up review agents reported no remaining valid actionable issues, including after the D1 adapter was simplified to use Remix's SQLite compiler.

Testing

  • bun pm view remix@next version -> 3.0.0-beta.5
  • bun add remix@3.0.0-beta.5 --exact
  • bun tools/ci/mock-preview-config.ts --wrangler-config mock-servers/ai/wrangler.jsonc --out-config /tmp/mock-ai-preview.generated.json --d1-database-name pea-pr-3-db --d1-database-id test-d1-id
  • bun run lint
  • bun run build
  • bun run typecheck
  • PLAYWRIGHT_PORT=3790 bun run test:push (test:e2e: 20 passed; test:mcp: 4 passed)
  • Push hook passed with PLAYWRIGHT_PORT=3790 git push -u origin cursor/update-remix-beta-5-c00f
  • Manual browser walkthrough: login, create chat, delete -> confirm -> deleted

remix_beta_chat_delete_walkthrough.mp4

Open in Web Open in Cursor 

@kody-bot kody-bot marked this pull request as ready for review July 1, 2026 22:35
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🔎 Preview deployed: https://pea-pr-3.kentcdodds.workers.dev

Worker: pea-pr-3
D1: pea-pr-3-db
KV: pea-pr-3-oauth-kv

Mocks:

@kentcdodds kentcdodds merged commit 64b514c into main Jul 1, 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.

3 participants