chore(deps): upgrade Next.js 15 → 16.2.11 (supersedes #235)#239
Merged
Conversation
Next 16 removed `next lint` and the `eslint` config key, and defaults builds to Turbopack. - Replace `.eslintrc.json` with flat `eslint.config.mjs` (next/core-web-vitals + typescript + unused-imports). Scope ignores restore the `next lint` surface (legacy/, sdk/, data dirs were never linted). react-hooks v7's new rules (set-state-in-effect, purity, refs, …) are set to warn — they fire on unchanged code that passed under Next 15; keeping the Next-15 lint outcome (green) instead of a 39-file refactor. Lint: 0 errors. - next.config.js: drop the removed `eslint` key (lint is its own CI step now). - build → `next build --webpack`: Sentry's withSentryConfig injects a webpack config in prod (DSN set), which Turbopack-by-default rejects. Pin webpack so the prod build matches today's known-good behavior. Turbopack adoption is separate. - tsconfig.json: Next 16's auto-managed patch (react-jsx, .next/dev/types). Verified: tsc 0, lint 0 errors, 1471 tests, build 0. Browser-smoked the prod build (next start): homepage + /demo render clean, 0 console errors, and the full scan → NIST-mapped findings (name-only) → PDF/$499 CTA money path works.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrades Next.js 15.5.19 → 16.2.11 the right way — the dependabot bump (#235) only bumped the version and left CI red (
next lintremoved in 16). This handles every Next 16 breaking change and lands green.Breaking changes handled
next lintremoved → migrated to the ESLint CLI. Replaced.eslintrc.jsonwith flateslint.config.mjs(next/core-web-vitals+next/typescript+unused-imports). Scope ignores restore the exactnext lintsurface —legacy/,sdk/, and data dirs were never linted (linting them surfaced 678 errors from an unrelated custom rule-set). Lint: 0 errors.next build --webpack. Sentry'swithSentryConfiginjects a webpack config in prod (whenNEXT_PUBLIC_SENTRY_DSNis set), which Turbopack-by-default rejects. Pinning webpack keeps the prod build identical to today's known-good behavior. Full Turbopack adoption is deliberate future work.eslintconfig key removed → dropped fromnext.config.js(lint is now its own CI step).set-state-in-effect,purity,refs, …). They fire on unchanged code that passed under Next 15 — set towarnto preserve the Next-15 lint outcome (green) rather than a risky 39-file refactor of the live app.rules-of-hooks/exhaustive-depsstay at default severity; app code has zero violations.tsconfig.json: Next 16's own auto-managed patch (react-jsx,.next/dev/types).Already compatible (verified, no change needed)
params: Promise<…>andawaitit (migrated during the Next 15 adoption).next/legacy/image,getConfig,revalidateTag, orunstable_cache.imagesalready usesremotePatterns. Node "20" (CI) ≥ 16's 20.9 minimum; React 19 already in place.Deliberately deferred (own follow-up)
middleware.ts→proxy.ts: keptmiddleware.ts(deprecation warning only).proxydrops edge-runtime support, and the middleware runs Supabase SSR auth + an in-memory rate limiter on edge — renaming forces a nodejs-runtime change I won't bundle into a framework bump.Verification
tsc --noEmit0 ·npm run lint0 errors (40 advisory warnings) · 1471 tests pass ·next build0next start): homepage +/demorender fully styled with 0 console errors; the full money path works — paste → local 20ms scan → name-only NIST-800-171-mapped findings → gap-report PDF + $499 CTA.Closes #235.