Skip to content

web: skip irrelevant Vercel builds and defer old changelog pages - #11413

Merged
lawrencecchen merged 6 commits into
mainfrom
feat-vercel-build-times
Sep 2, 2026
Merged

lawrencecchen merged 6 commits into
mainfrom
feat-vercel-build-times

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Every merged commit triggered a full Vercel build of web/, and every changelog release was prerendered for every locale.

web/tools/vercel-ignore-build.sh is the Vercel Ignored Build Step. It diffs VERCEL_GIT_PREVIOUS_SHA (last successful deployment for the branch) against the current commit over the web build inputs: web/, root .vercelignore, CHANGELOG.md, the managed relay catalog, and the presence worker's generated catalog. Exit 0 skips, exit 1 builds. A missing or unreachable previous SHA (Vercel clones with depth 10) fails open and builds.

generateStaticParams for /docs/changelog/[version] now returns the 12 newest releases. With Cache Components, omitted versions render on first request and are cached. Local Next build: 4,834 pages to 3,334, changelog paths 1,740 to 240. Vercel static generation for the docs zone: 67s to 46s.

Request-time rendering needed one more fix. changelog-store.ts reads CHANGELOG.md from disk, and Vercel functions only receive files Next traces inside the project root, so the file was missing at runtime. Today's nightly docs zone returns 500 for any version that is not prerendered. tools/sync-changelog.ts copies the repository file into web/ before next build (gitignored), and next.config.ts traces it for the changelog routes and the sitemap.

The docs channels are not covered by the ignore step: they deploy with vercel deploy --prod from docs-channels.yml, whose paths filter already skips native-only commits.

Verified on Vercel with a docs-zone deploy of this head to cmux-docs-dogfood: /docs/changelog/0.64.22 PRERENDER, /docs/changelog/0.64.10, /docs/changelog/0.1.0, /ja/docs/changelog/0.1.0 render on demand (MISS then HIT). An unknown version returns a 200 not-found shell (PPR fallback), which is the existing behavior class; main returns 500 for it.

Note for cmux.com: /docs/changelog/<version> is served by the cmux-docs-release zone, built from the latest v* tag (v0.64.22, Aug 3), which predates the per-version pages (Aug 4). Those URLs 404 in production until the next release tag.

Focused Bun tests pass (ignore script, changelog pages, deployment filter, changelog sync). tsgo --noEmit and ESLint on touched files pass. Local $autoreview clean.

@vercel

vercel Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cmux Ready Ready Preview Sep 3, 2026 8:48am UTC
cmux166 Ready Ready Preview Sep 3, 2026 8:48am UTC
cmux41 Canceled Canceled Sep 3, 2026 8:48am UTC

@cursor

cursor Bot commented Sep 1, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@coderabbitai

coderabbitai Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 7 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Team

Run ID: b983188f-1fce-4770-a2fe-dd3d71a0c7f8

📥 Commits

Reviewing files that changed from the base of the PR and between cbda3b0 and 4fd1213.

📒 Files selected for processing (11)
  • web/.gitignore
  • web/app/[locale]/(landing)/docs/changelog/[version]/page.tsx
  • web/app/lib/changelog.ts
  • web/next.config.ts
  • web/package.json
  • web/tests/changelog-pages.test.tsx
  • web/tests/sync-changelog.test.ts
  • web/tests/vercel-ignore-build.test.ts
  • web/tools/sync-changelog.ts
  • web/tools/vercel-ignore-build.sh
  • web/vercel.json

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.

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Measured evidence for current head 90a3bbfa60:

  • Production log for main commit 717f357: static generation was 4,834 pages and 86s, with a 4m build and 768 MB cache upload.
  • Same local Next build command: changelog paths fell from 1,740 to 240, and total static pages fell from 4,834 to 3,334.
  • The ignore script skips native-only commits and builds for web, changelog, Vercel config, and relay catalog changes. Missing history fails open.
  • Focused Bun tests: 14 passed. bun run typecheck passed. Focused ESLint passed. Full lint still reports pre-existing errors outside this diff.

The Git-backed preview https://cmux-git-feat-vercel-build-times-manaflow.vercel.app is still queued by the team concurrency queue.

The docs channels deploy through vercel deploy --prod in GitHub Actions, and
the Ignored Build Step only runs for Git-triggered deployments. The workflow's
paths filter already skips native-only commits.
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

Changelog versions outside generateStaticParams render on request, and the
store reads CHANGELOG.md from disk. Vercel functions only receive files that
Next traces inside the project root, so the repository file was missing at
runtime and the nightly docs zone returns 500 for any version that is not
prerendered. Copy the file into web/ before next build and trace it for the
changelog routes and the sitemap.
@lawrencecchen
lawrencecchen merged commit 05c631d into main Sep 2, 2026
10 of 12 checks passed
@lawrencecchen
lawrencecchen deleted the feat-vercel-build-times branch September 2, 2026 11:45
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 2, 2026
5f1df81 Vpc dogfood fixes (manaflow-ai#11674)
c7bbfae cloud: one devbox snapshot per Freestyle size; the plan's memory picks the size (manaflow-ai#11664)
d18aa5f Merge pull request manaflow-ai#11670 from manaflow-ai/issue-remote-decode-errors
cd7d971 Admin Pro roster loads on page render and streams the scans (manaflow-ai#11668)
da8befc fix(remote): terminate reader on malformed JSON
8a93998 test(remote): cover malformed JSON cancellation
ce4cd50 fix(relay): stop when process file setup fails (manaflow-ai#11491)
e3b14a1 fix(cloud): Cmd+T on a cloud pane selects the new remote terminal (manaflow-ai#11612)
d90d8b8 Send Durable Object errors to Sentry (manaflow-ai#11657)
1a86aca Admin Pro roster: bounded team lookups, truncation flag, scan sequence guard (manaflow-ai#11662)
f277fe6 Merge pull request manaflow-ai#11643 from manaflow-ai/fix-11492-clone-killer
65c0c60 fix(test): make scoped attach killer mutable
8cdf1ce Cloud sidebar port links: direct private IPs, white link styling, reconnect-logic merge fix (manaflow-ai#11647)
6d1ca7e fix(tui): narrow workspace registry APIs (manaflow-ai#11498)
9f7ba2d Admin page: list every Pro user, team, and pending grant (manaflow-ai#11645)
23a5485 fix(relay): pin PTY cwd to validated descriptor (manaflow-ai#11417)
3214964 fix(relay): own the grep pattern before spawning the runner task (manaflow-ai#11653)
400d306 Fix devcontainer SSH TTY flag placement (manaflow-ai#9772)
613870c web: answer Stack Auth throttles on iroh routes with 429, add a Stack throttle circuit (manaflow-ai#11633)
f6be8ff web: resolve unoffered Cloud VM sizes to the plan machine instead of 400 (manaflow-ai#11644)
6d67bc5 Kill unvisited subtrees when the SSH auth cleanup deadline expires (manaflow-ai#11584)
790a7d8 Admin Pro access page: grant users, teams, and emails, manual downgrade (manaflow-ai#11605)
9bf04a3 fix(web): render the coderouter dashboard at request time (manaflow-ai#11632)
bcc362c test(cmux-tui): cover scoped attach PTY lifecycle (manaflow-ai#11492)
51a9495 Fix main CI after the Blaxel removal and non-root daemon landing (manaflow-ai#11586)
accfbdf Harden cmux-tui executable resolution before spawn (manaflow-ai#11427)
05c631d web: skip irrelevant Vercel builds and defer old changelog pages (manaflow-ai#11413)
40fd841 fix: render cloud VM terminals through native Ghostty manual I/O (manaflow-ai#11523)
1dd28a9 cloud: Freestyle devbox snapshot on the public platform (ubuntu user, base toolchain, Blaxel desktop), promote script, manifest as source of truth (manaflow-ai#11601)
4940db8 Pricing: Pro $50, Team $60, plan machine 5 vCPU / 20 GB / 200 GB, 50 VMs per seat (manaflow-ai#11610)

This branch was successfully deployed

2 active deployments
Preview – cmux166 — 4fd12139 Deployed Sep 3, 2026 by vercel[bot]
Preview – cmux41 — 4fd12139 Deployed Sep 3, 2026 by vercel[bot]
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