Skip to content

fix(ci): raise Node heap limit for the Cloudflare build - #3

Merged
SomethingNew71 merged 2 commits into
mainfrom
fix/ci-build-heap-limit
Aug 24, 2026
Merged

SomethingNew71 merged 2 commits into
mainfrom
fix/ci-build-heap-limit

Conversation

@SomethingNew71

Copy link
Copy Markdown
Contributor

The first post-merge deploy died with FATAL ERROR: Ineffective mark-compacts near heap limit during Nitro bundling.

GitHub runners have 16 GB, but Node caps its own old-space near 2 GB regardless, so the headroom was never reachable. Builds succeed locally because macOS Node defaults to a larger heap — this failure could only surface in CI.

Sets NODE_OPTIONS=--max-old-space-size=6144 on the build step, matching what the classicminidiy build already uses.

Logged to the CMDIY master plan: the migration plan lists "GH Actions (16 GB) ends the OOM class permanently" as a benefit — that is wrong as written, and cmdiy's bundle is larger.

The first post-merge deploy died with 'Ineffective mark-compacts near
heap limit' during Nitro bundling. GitHub runners have 16 GB, but Node
caps its own old-space near 2 GB regardless, so the headroom was never
reachable. Matches the max-old-space-size=6144 the CMDIY build uses.
Copilot AI lite review requested due to automatic review settings August 24, 2026 00:30
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
open-ecu-alliance Ready Ready Preview Aug 24, 2026 12:30am

Request Review

@SomethingNew71
SomethingNew71 merged commit feb0218 into main Aug 24, 2026
2 checks passed
@SomethingNew71
SomethingNew71 deleted the fix/ci-build-heap-limit branch August 24, 2026 00:30

Copilot AI 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.

Pull request overview

Raises Node’s heap limit for Cloudflare CI builds to prevent Nitro bundling out-of-memory failures and updates migration tracking.

Changes:

  • Sets NODE_OPTIONS=--max-old-space-size=6144 for the Cloudflare build.
  • Records Phase 3 migration progress.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Summary
docs/plans/2026-08-21-cloudflare-workers-migration.md Updates Phase 3 progress; contains a minor status-label inconsistency.
.github/workflows/deploy-cloudflare.yml Increases the Node heap available during the build.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

| 1 | Platform-neutral fixes on main via Vercel (canonical bug, remoteAddress guard, spike findings) | not started |
| 2 | wrangler.jsonc + GH Actions deploy + secrets + `wrangler dev` recipe (E4) + pinned wrangler/compat_date (E5) | **COMPLETE 2026-08-23.** `.github/workflows/deploy-cloudflare.yml` (build:cf → wrangler deploy → smoke), all 5 repo secrets set, wrangler pinned 4.125.0, `scripts/verify-cf-deploy.sh` green 24/24 on the deployed worker. Local recipe: `bun run build:cf && bunx wrangler dev` (wrangler auto-loads `.env`, no `.dev.vars` needed). |
| 3 | Zone prep: BIND import from R53 (C2), record diff, DCV cert pre-provisioning (C1), Always Use HTTPS + HSTS (C3), proxied apex + preserve_query_string (C4). **HARD GATE (auth uses current origin): Supabase allowlist on project `ljigjawvlwvciqvegptp` must contain `https://oecua.org/**`, `https://www.oecua.org/**`, both openecualliance.org forms, and the workers.dev origin, and SITE_URL must become `https://oecua.org` — BEFORE Phase 4. Missing origin = silent GoTrue SITE_URL fallback = broken login on that origin.** | not started |
| 3 | **IN PROGRESS 2026-08-24.** Done: both zones created (oecua.org `6348deded5fd4a4826c54899a6272d09`, openecualliance.org `32972bed26c8a6f1d855fa9383982c2a`, both pending NS); all 7 records verified byte-exact incl. the 5 mail records (dns-only, MX priority 10, DKIM 218 chars); Always Use HTTPS on, HSTS max-age=63072000 matching baseline, SSL mode strict — on both zones. Blocked on token perms: redirect rules (Dynamic Redirect: Edit) and cert status (SSL and Certificates: Read/Edit). **C1 note: full-setup zones cannot pre-validate certs — cert issues 15 min–24 h AFTER activation; cutover holds until cert reports Active.** Zone prep detail: BIND import from R53 (C2), record diff, DCV cert pre-provisioning (C1), Always Use HTTPS + HSTS (C3), proxied apex + preserve_query_string (C4). **HARD GATE (auth uses current origin): Supabase allowlist on project `ljigjawvlwvciqvegptp` must contain `https://oecua.org/**`, `https://www.oecua.org/**`, both openecualliance.org forms, and the workers.dev origin, and SITE_URL must become `https://oecua.org` — BEFORE Phase 4. Missing origin = silent GoTrue SITE_URL fallback = broken login on that origin.** | not started |
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.

2 participants