chore(deps): update frontend toolchain [Codex] - #1351
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
guide | 085ed9c | Commit Preview URL Branch Preview URL |
Sep 14 2026, 01:32 PM |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25e52b800f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 863c53d5ac
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| : pathname | ||
|
|
||
| let resolveFilePath = (pathname, ~dir, ~alias) => { | ||
| let pathname = pathname->normalizePathname |
There was a problem hiding this comment.
Normalize data paths in the API loader too
With React Router 8 data requests, this normalization only protects loaders that call MdxFile.resolveFilePath; ApiRoute.loader instead splits args.request.url directly at apps/docs/app/routes/ApiRoute.res:124-144. A request such as /docs/manual/api/stdlib/array.data therefore becomes the lookup key stdlib/array.data, which is absent from the API JSON and makes getStaticProps return an error, breaking prerendered/client-loaded API module pages. Normalize that loader's pathname before splitting it, or centralize request-path normalization.
AGENTS.md reference: AGENTS.md:L102-L103
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Addressed in 9490020. ApiRoute.loader now passes the request pathname through MdxFile.normalizePathname before removing the API prefix and splitting module segments. The shared normalizer handles ordinary .data suffixes, React Router V8 trailing data requests (/_.data), and HTML trailing slashes. Regression coverage was added, and the production build emits both the API route data and HTML artifacts.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9490020534
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Upgrade React, React Router, Vite, Vitest, and Playwright across the monorepo. Update GuideHome browser assertions for Vitest 5 element matching.
Use the Playwright 1.63 container required by the upgraded browser test dependency.
Strip React Router data request suffixes before resolving MDX source files during static prerendering.
Normalize React Router prerender request pathnames before resolving MDX files and API module paths.
9490020 to
085ed9c
Compare
Guide Cloudflare deployment⛅️ wrangler 4.114.0 To deploy this version to production traffic use the command wrangler versions deploy Changes to non-versioned settings (config properties 'logpush' or 'tail_consumers') take effect after your next deployment using the command wrangler versions deploy Changes to triggers (routes, custom domains, cron schedules, etc) must be applied with the command wrangler triggers deploy |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 085ed9c512
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ## ReScript React | ||
|
|
||
| - This project uses **React 19** and **React Router v7** (framework mode). | ||
| - This project uses **React 19** and **React Router v8** (framework mode). |
There was a problem hiding this comment.
Synchronize the remaining Router version guidance
Although this line now declares React Router v8, the resulting AGENTS.md still identifies the project stack as React Router v7 near the top and says the migration landed on v7 in the Important Warnings section. These remaining contradictions are fresh evidence after the earlier review fix and will still give contributors conflicting major-version guidance; update both references to v8 as part of this migration.
AGENTS.md reference: AGENTS.md:L5-L5
Useful? React with 👍 / 👎.
Updates the monorepo frontend runtime and toolchain dependencies to their latest releases.
React and React DOM move to 19.3.0; React Router packages move to 8.3.1; Vite moves to 8.3.0; Vitest plus its browser adapters move to 5.0.0 and 2.3.0; and Playwright moves to 1.63.0. The unused react-router-dom declarations are removed so its 7.x runtime is not installed alongside Router 8.
The Playwright CI and visual-screenshot images now use v1.63.0-noble, matching the upgraded browser dependency. GuideHome browser assertions now target visible content nodes rather than parent-container text, matching Vitest 5 exact element-content behavior.
React Router pre-rendering writes a .data client-navigation payload for each static route (official documentation). The shared pathname normalizer removes both normal .data suffixes and V8 trailing-slash data segments (
/_.data) before an MDX loader maps the request to a source file or the API loader splits it into module-path segments. This allows archived blog, other dynamic MDX, and API module routes to prerender successfully, in line with the React Router v8 guidance for custom .data request URL handling (upgrade documentation).