Skip to content

Upgrade web app to Next.js 16 and React 19#1025

Merged
willwashburn merged 6 commits into
mainfrom
claude/web-nextjs-upgrade-ERmtU
Jun 2, 2026
Merged

Upgrade web app to Next.js 16 and React 19#1025
willwashburn merged 6 commits into
mainfrom
claude/web-nextjs-upgrade-ERmtU

Conversation

@willwashburn

@willwashburn willwashburn commented Jun 2, 2026

Copy link
Copy Markdown
Member

User description

Summary

Upgrades the web/ app from Next.js 15.5.18 → 16.2.7 and React 18.3 → 19.2, and cleans up the monorepo dependency overrides that the old React 18 pin required.

Changes

Core upgrade (web/package.json)

  • next → 16.2.7, react/react-dom → 19.2, @types/react(-dom) → 19.2.
  • dev/build scripts use --webpack. The only webpack-specific code is the SKILL.md?raw import (build-time inlined, read at runtime by the force-dynamic openclaw invite route). Turbopack doesn't support the ?raw resourceQuery loader, and OpenNext runs npm run build, so the flag is honored in dev, CI, and production. Turbopack adoption can be a follow-up.

React 19 type fixes

  • HighlightedPreComponentPropsWithoutRef<'pre'> (the old DetailedHTMLProps ref was incompatible with React 19's tightened ref type).
  • Typed isValidElement<…> generics in CodeGroup.tsx, HighlightedCode.tsx, and a test (React 19 makes element props unknown).
  • Imported the JSX type in three animation files (React 19 removed the global JSX namespace).

Next 16 conventions

  • Renamed web/middleware.tsweb/proxy.ts (Next 16 file convention; clears the deprecation warning).
  • tsconfig.json / next-env.d.ts auto-updated by Next 16 (jsx: react-jsx, routes type import).

Dependency / overrides cleanup (root package.json)

  • Removed the unused @testing-library/react@14 devDep (no imports anywhere; v14 pinned React 18, which was the sole reason the broad overrides existed). Kept @testing-library/jest-dom, which vitest.setup.ts uses.
  • With the React-18 pull gone, web's own react@^19.2.0 / react-dom@^19.2.0 deps converge on a single React 19 on their own. Confirmed the react/react-dom/next/@types/react(-dom) overrides were no-ops — removing them regenerates a byte-identical lockfile. The overrides block is now just flatted.

Deploy (web/sst.config.ts)

  • openNextVersion 3.9.16 → 3.10.4 (stays in the OpenNext 3.x line SST 4.5.1 targets; adds Next 16 support).

Verification

  • next build (webpack): clean, 167 static pages, no warnings.
  • tsc --noEmit: clean.
  • vitest run: 12/12 passing.
  • Single-copy resolution confirmed for next, react, react-dom, @types/react(-dom) — 0 invalid entries.

Notes

  • The openNextVersion bump should be validated with a real SST deploy/preview (couldn't run AWS deploys here).
  • No CHANGELOG.md entry per the repo rule (web-only changes are excluded from the changelog).

https://claude.ai/code/session_01D1gr9E2XoxEBCvvY9pfwLr


Generated by Claude Code


CodeAnt-AI Description

Add a new Pear landing page and move the web app to Next.js 16 and React 19

What Changed

  • Added a new /pear landing page with its own layout, styles, and image assets
  • Updated the app to Next.js 16 and React 19 so the site builds and runs on the newer framework versions
  • Renamed the app’s request handling file to the Next 16 format and updated sitemap/runtime typings so the app stays compatible with the new setup
  • Kept the existing docs code rendering and animation pages working with React 19's stricter component typing

Impact

✅ New Pear landing page
✅ Next.js 16 compatibility
✅ React 19 compatibility

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

claude added 3 commits June 2, 2026 14:37
Bump web from Next.js 15.5.18 to 16.2.7 and React 18.3 to 19.2.

- web/package.json: next 16.2.7, react/react-dom 19.2, @types 19.2;
  dev/build scripts use --webpack to keep the existing markdown raw
  loader (SKILL.md?raw is build-time inlined and read by the
  force-dynamic openclaw invite route).
- Root overrides: align react/react-dom/@types/react(-dom) to 19 and
  pin next to 16.2.7 so the monorepo dedupes to a single copy of each
  (web is the only React consumer; all transitive libs support 19).
  Drop the obsolete @posthog/next->next 15.5.18 override.
- React 19 type fixes: ComponentPropsWithoutRef for HighlightedPre,
  typed isValidElement generics where props is now unknown, and import
  the JSX type (global JSX namespace removed).
- Rename middleware.ts -> proxy.ts (Next 16 file convention).
- sst.config.ts: openNextVersion 3.9.16 -> 3.10.4 for Next 16 support.

Build, typecheck, and tests pass.
The unused @testing-library/react@14 (no imports anywhere) pinned React
18, which is what forced the broad version overrides. Remove it (keeping
@testing-library/jest-dom, which vitest.setup.ts uses) so the dependency
graph converges on React 19 / Next 16 on its own.

Overrides shrink from 5 entries to 2: only react/react-dom remain, which
are still needed to force a single React 19 copy through the messy
lobehub/antd transitive graph (npm otherwise hoists a stray react-dom@18).
The next and @types/react(-dom) overrides are no longer necessary.

Verified single-copy resolution for next/react/react-dom/@types/react,
clean build, clean typecheck, and 12/12 web tests.
With the unused @testing-library/react removed, nothing pulls React 18,
so web's direct react@^19.2.0 / react-dom@^19.2.0 deps converge on a
single React 19 on their own. Confirmed the react/react-dom overrides
were no-ops: removing them regenerates a byte-identical lockfile, and
build/typecheck/12 tests all pass. Overrides are now just flatted.
@willwashburn willwashburn requested a review from khaliqgant as a code owner June 2, 2026 15:19
@codeant-ai

codeant-ai Bot commented Jun 2, 2026

Copy link
Copy Markdown

CodeAnt AI is reviewing your PR.

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: eb8f5e51-3fd3-46fc-b3a3-15909e5268d3

📥 Commits

Reviewing files that changed from the base of the PR and between e50e451 and 931f850.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/summary.md
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/trajectory.json
  • package.json
  • web/package.json
  • web/proxy.ts
✅ Files skipped from review due to trivial changes (2)
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/trajectory.json
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/summary.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • web/package.json
  • package.json
  • web/proxy.ts

📝 Walkthrough

Walkthrough

Adds completed trajectory artifacts and upgrades the web package to Next.js 16 / React 19, adjusts package manifests, tightens TypeScript/JSX typings across components/tests, and updates build/config files including renaming middleware to a named proxy export.

Changes

Pear Landing Page Build and React 19 Migration

Layer / File(s) Summary
Task completion metadata
.agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl.trace.json, .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/summary.md, .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/trajectory.json
AgentWorkforce trajectory moved from active to completed state and records the Pear landing page build, decision logs, retrospective, files changed, and trace metadata.
React 19 and Next.js 16 upgrade
web/package.json
Bump next to 16.2.7, react/react-dom to 19.2.0, update @types/react/@types/react-dom, add engines.node, and run dev/build with --webpack.
Root package dependency cleanup
package.json
Removed @testing-library/react from devDependencies and simplified overrides to keep only flatted; updated engines.node.
JSX type imports in animation components
web/app/file/RelayfileAnimation.tsx, web/components/MessageRelayAnimation.tsx, web/components/NodeRelayAnimation.tsx
Add type-only JSX imports to these animation components so JSX types resolve via explicit type imports.
Type safety improvements in docs components and tests
web/components/docs/CodeGroup.tsx, web/components/docs/HighlightedCode.tsx, web/lib/test/highlighted-code.test.tsx
Introduce CodeBlockProps/CodeElementProps, narrow React element type guards, and simplify HighlightedPre prop typing.
Build config and supporting updates
web/tsconfig.json, web/next-env.d.ts, web/proxy.ts, web/sst.config.ts
compilerOptions.jsxreact-jsx; replace triple-slash route reference with import; rename default middleware export to named proxy; bump OpenNext (openNextVersion) to 3.10.4.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • khaliqgant

Poem

🐰 A pear on the page, fresh and bright,
React hopped forward, types snug and tight.
Build traces recorded, configs realigned,
The landing page blossoms — tidy and kind.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main changes: upgrading the web app to Next.js 16 and React 19, which is the primary focus of the entire changeset.
Description check ✅ Passed The description is comprehensive and well-structured, covering summary, changes, verification, and notes. It exceeds the template requirements by providing detailed explanations of all modifications and testing results.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/web-nextjs-upgrade-ERmtU

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 and usage tips.

@codeant-ai codeant-ai Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files label Jun 2, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e10257a36

ℹ️ 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".

Comment thread web/package.json
"gray-matter": "^4.0.3",
"lucide-react": "^1.0.1",
"next": "15.5.18",
"next": "16.2.7",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Raise the advertised Node runtime for Next 16

This upgrade makes the web workspace depend on Next 16, whose package metadata in the updated lockfile requires node >=20.9.0, but the repo still advertises Node >=18.0.0 at the root. In environments that follow the current engine range (for example Node 18 or Node 20.0-20.8 contributors/CI/deploy images), npm install can warn/fail under engine-strict and next dev/next build will not run once the Next CLI enforces its engine guard, so the web app upgrade needs the repo/deployment Node engine bumped or the Next version kept compatible.

Useful? React with 👍 / 👎.

Comment thread web/proxy.ts Outdated
: null;

export default function middleware(request: NextRequest) {
export default function proxy(request: NextRequest) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: proxy.ts in Next 16 is discovered via a named proxy export, but this change makes it a default export; if the runtime only looks for the named export, the proxy hook will be skipped and your PostHog middleware will silently never run. Export proxy as a named function instead of default to match the file-convention contract. [api mismatch]

Severity Level: Critical 🚨
- ❌ Next 16 proxy hook never registered for requests.
- ❌ PostHog proxy middleware never runs despite being configured.
- ⚠️ Analytics behavior diverges from expected Next 16 setup.
Steps of Reproduction ✅
1. Ensure the web app uses Next 16.2.7 with the new `proxy.ts` convention and that
`NEXT_PUBLIC_POSTHOG_KEY` is set so `postHogMiddleware` is created in `web/proxy.ts:6-10`.

2. Note that the proxy entrypoint in `web/proxy.ts:12-14` is declared as `export default
function proxy(request: NextRequest)` and that a repo-wide search (`web/**/*.ts`) shows no
other callers of `proxy(...)`, meaning it is intended to be invoked only via Next's file
convention.

3. Start the Next web app (e.g., `npm run dev` in `web/`) and issue any HTTP request
matching the middleware matcher in `web/proxy.ts:17-19` (e.g., `GET /`), which should be
intercepted by the PostHog proxy hook.

4. Observe that the request proceeds as if there is no proxy/middleware (no PostHog
behavior), because Next 16's `proxy.ts` convention expects a named `export function
proxy(...)`, and with only a default export the runtime does not register the function at
`web/proxy.ts:12`, so `postHog(request)` is never called.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** web/proxy.ts
**Line:** 12:12
**Comment:**
	*Api Mismatch: `proxy.ts` in Next 16 is discovered via a named `proxy` export, but this change makes it a default export; if the runtime only looks for the named export, the proxy hook will be skipped and your PostHog middleware will silently never run. Export `proxy` as a named function instead of default to match the file-convention contract.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@codeant-ai

codeant-ai Bot commented Jun 2, 2026

Copy link
Copy Markdown

CodeAnt AI finished reviewing your PR.

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Preview deployed!

Environment URL
Web https://ds3rs4wk8i6fd.cloudfront.net

This preview will be cleaned up when the PR is merged or closed.

@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.

2 issues found across 17 files

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

Comment thread .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/summary.md Outdated
Comment thread web/package.json

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
package.json (1)

99-99: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Bump package.json engines.node to match Next.js 16.2.7’s Node requirement

Next.js 16 requires Node.js >= 20.9.0 (Node 18 is no longer supported), but the repo root sets engines.node to >=18.0.0. Update the root engines.node (and ensure CI/tooling uses the same Node version) so installs/builds don’t fail depending on the active Node runtime.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@package.json` at line 99, Update the package.json engines.node entry from
">=18.0.0" to ">=20.9.0" so it matches Next.js 16.2.7’s Node requirement; modify
the "engines": { "node": ... } field accordingly and ensure any CI configs,
Dockerfiles, or toolchains that pin Node (e.g., GitHub Actions setup, .nvmrc,
Dockerfile) are also updated to use Node >=20.9.0 to keep runtime versions
consistent during installs and builds.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/sst.config.ts`:
- Line 20: The config pins openNextVersion: '3.10.4' in sst.config.ts but no
preview deploy was done; run a non-production SST preview deploy using the repo
runner (e.g., npx sst deploy --stage pr-open-next-compat) to validate OpenNext
3.10.4 against the repo's Next (web/package.json) and SST versions, then confirm
the deployed Web stage URL returns HTTP 200; if it fails, revert or adjust
openNextVersion in sst.config.ts and re-run the same preview until the smoke
test succeeds.

---

Outside diff comments:
In `@package.json`:
- Line 99: Update the package.json engines.node entry from ">=18.0.0" to
">=20.9.0" so it matches Next.js 16.2.7’s Node requirement; modify the
"engines": { "node": ... } field accordingly and ensure any CI configs,
Dockerfiles, or toolchains that pin Node (e.g., GitHub Actions setup, .nvmrc,
Dockerfile) are also updated to use Node >=20.9.0 to keep runtime versions
consistent during installs and builds.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 733f62c6-0788-4db3-927a-d4ebe5a75d29

📥 Commits

Reviewing files that changed from the base of the PR and between f02a4ac and e50e451.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (16)
  • .agentworkforce/trajectories/active/traj_flyb4fe5j3tl/trajectory.json
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl.trace.json
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/summary.md
  • .agentworkforce/trajectories/completed/2026-06/traj_flyb4fe5j3tl/trajectory.json
  • package.json
  • web/app/file/RelayfileAnimation.tsx
  • web/components/MessageRelayAnimation.tsx
  • web/components/NodeRelayAnimation.tsx
  • web/components/docs/CodeGroup.tsx
  • web/components/docs/HighlightedCode.tsx
  • web/lib/test/highlighted-code.test.tsx
  • web/next-env.d.ts
  • web/package.json
  • web/proxy.ts
  • web/sst.config.ts
  • web/tsconfig.json
💤 Files with no reviewable changes (1)
  • .agentworkforce/trajectories/active/traj_flyb4fe5j3tl/trajectory.json

Comment thread web/sst.config.ts
const web = new sst.aws.Nextjs('Web', {
path: '.',
openNextVersion: '3.9.16',
openNextVersion: '3.10.4',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) Confirm declared versions in repo
echo "== Version declarations =="
node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('web/package.json','utf8'));console.log('next:',p.dependencies?.next);console.log('react:',p.dependencies?.react);"
node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('package.json','utf8'));console.log('sst:',p.devDependencies?.sst || p.dependencies?.sst || 'not-found');"

# 2) Show the exact OpenNext pin in this file
echo "== openNextVersion pin =="
rg -n "openNextVersion|sst\\.aws\\.Nextjs" web/sst.config.ts -C2

# 3) Manual gate (run in CI or locally with AWS creds):
#    - execute a preview synth/deploy for a non-production stage
#    - verify successful build + deployment + app health URL
echo "Run: sst deploy --stage pr-open-next-compat"
echo "Expect: deploy succeeds and web URL returns 200."

Repository: AgentWorkforce/relay

Length of output: 500


🏁 Script executed:

sst deploy --stage pr-open-next-compat
# Verify the printed Web stage URL responds with HTTP 200 (and the app loads).

Repository: AgentWorkforce/relay

Length of output: 108


Validate OpenNext 3.10.4 compatibility via a preview SST deploy before merge

web/sst.config.ts pins openNextVersion: '3.10.4' (line 20) while web/package.json uses Next 16.2.7 and SST ^4.5.1; since no SST preview deploy/smoke test was run, add a non-prod preview deploy and confirm the deployed Web stage URL returns HTTP 200. (In this repo the sst binary may not be on PATH—use the repo’s package runner, e.g., npx sst deploy --stage pr-open-next-compat, matching how SST is invoked in package scripts.)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/sst.config.ts` at line 20, The config pins openNextVersion: '3.10.4' in
sst.config.ts but no preview deploy was done; run a non-production SST preview
deploy using the repo runner (e.g., npx sst deploy --stage pr-open-next-compat)
to validate OpenNext 3.10.4 against the repo's Next (web/package.json) and SST
versions, then confirm the deployed Web stage URL returns HTTP 200; if it fails,
revert or adjust openNextVersion in sst.config.ts and re-run the same preview
until the smoke test succeeds.

- Declare Node >=20.9.0 (Next 16 requirement) on the web workspace and
  bump the root engines.node from >=18 to >=20.9.0. packages/cli keeps its
  own engines (>=18), so the published CLI's Node 18 support is unchanged;
  the root now accurately reflects that building the monorepo (incl. web)
  needs Node 20.9+.
- proxy.ts: use the named `export function proxy` (canonical Next 16 form).
  Default export also registers identically (verified: build emits the same
  "ƒ Proxy (Middleware)" and proxy runs on the Node runtime), but named is
  the idiomatic convention form.
- Fix stale trajectory title ("Build Pear landing page...") to match its
  actual content (the Next.js 16 upgrade).
@willwashburn willwashburn merged commit a3e02a7 into main Jun 2, 2026
43 checks passed
@willwashburn willwashburn deleted the claude/web-nextjs-upgrade-ERmtU branch June 2, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants