Skip to content

Upgrade Next.js to 16.3 - #579

Merged
Aymericr merged 1 commit into
mainfrom
chore/next-16-3
Aug 4, 2026
Merged

Upgrade Next.js to 16.3#579
Aymericr merged 1 commit into
mainfrom
chore/next-16-3

Conversation

@Aymericr

@Aymericr Aymericr commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

What changed

  • upgrade both Next.js apps and the shared ESLint plugin to 16.3.0
  • adopt TypeScript 7.0.2 only in the two Next.js app workspaces while shared packages remain on TypeScript 6
  • raise the documented and runtime Node floor to 20.9 and retain Bun 1.3
  • commit the Next-generated app-local agent guidance so next dev keeps the worktree clean
  • make the IFC WASM copy step Node 20.9-compatible and fail closed when an asset is missing
  • add the production build to CI
  • regenerate the canonical Bun lockfile, including the Sharp 0.35.3 family used by Next.js 16.3

Why

Next.js 16.3 is the current upgrade target for the hosted editor and IFC converter. The app-local TypeScript 7 split exercises the supported Next.js compiler path without forcing the public library packages across that boundary.

Validation

  • bun install --frozen-lockfile --dry-run with Bun 1.3.0
  • bun run check - 1,589 files clean
  • bun run check-types --force - 9/9 tasks
  • bun run test --force - 12/12 tasks; 944 passed, 1 skipped
  • bun run build --force - 7/7 tasks
  • clean Linux amd64 Node 20.9 and Bun 1.3.0 typecheck and production build
  • Linux production IFC server returned all three WASM assets with HTTP 200 and application/wasm
  • positive and isolated negative probes for the fail-closed WASM copy script
  • independent adversarial delta review found no remaining source-level findings

Note

Medium Risk
Framework and compiler upgrades across both production apps plus a raised Node floor and fail-closed install hooks can break local setups or CI if builds or WASM assets regress; scope is mostly toolchain and infra, not app business logic.

Overview
Upgrades both Next.js apps and @next/eslint-plugin-next to 16.3.0, with a root next override and lockfile refresh (including Sharp 0.35.x used by Next).

The editor and IFC converter apps move to TypeScript 7.0.2 and run tsc --noEmit after next typegen instead of tsgo; shared packages stay on TypeScript 6. Node is required at 20.9+ in engines and setup docs.

CI now runs bun run build after tests. Next-generated AGENTS.md / CLAUDE.md are committed under both apps so next dev does not leave dirty trees.

The IFC copy-web-ifc-wasm.mjs script uses fileURLToPath for directory resolution on Node 20.9 and exits non-zero when web-ifc is missing or any WASM copy fails (replacing warn-and-continue).

Reviewed by Cursor Bugbot for commit 854c81d. Bugbot is set up for automated code reviews on this repo. Configure here.

@Aymericr
Aymericr marked this pull request as ready for review August 4, 2026 19:40
@Aymericr
Aymericr merged commit 75db47b into main Aug 4, 2026
3 checks passed
@Aymericr
Aymericr deleted the chore/next-16-3 branch August 4, 2026 19:40

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 854c81d. Configure here.

console.warn('[ifc-converter] web-ifc package not found — wasm copy skipped.')
process.exit(0)
console.error('[ifc-converter] web-ifc package not found — cannot copy required WASM files.')
process.exit(1)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

WASM lookup hangs on Windows

Low Severity

findWebIfcDir only stops when the directory is /, so on Windows a missing web-ifc install never reaches the new fail-closed process.exit(1). path.resolve settles on a drive root like C:\, the loop never ends, and postinstall / prebuild can hang instead of failing closed.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 854c81d. Configure here.

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