Skip to content

Self-host Geist fonts to fix local Next.js startup#1149

Merged
BigSimmo merged 7 commits into
mainfrom
codex/fix-next.js-startup-failure-and-verify-pages
Jul 24, 2026
Merged

Self-host Geist fonts to fix local Next.js startup#1149
BigSimmo merged 7 commits into
mainfrom
codex/fix-next.js-startup-failure-and-verify-pages

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Motivation

  • Local dev startup was failing because next/font/google attempted to fetch Google-hosted Geist font files during build/dev time in restricted/networked environments, so the app must avoid external font fetches while keeping typography visually equivalent.

Description

  • Replace next/font/google with next/font/local in src/app/layout.tsx and point the sans/mono faces at the bundled Geist .woff2 files under node_modules/next/dist/next-devtools/server/font/.
  • Preserve the existing CSS variable names (--font-geist-sans, --font-geist-mono), display: "swap", and the mono preload: false behaviour so visual typography remains as close as practical.
  • Change is minimal and scope-limited to src/app/layout.tsx only.

Testing

  • Ran npm run ensure and confirmed the dev server previously failed due to Google font fetches and now starts successfully at the local URL after the change.
  • Ran npm run typecheck and npm run check:runtime, both passed; HTTP smoke checks for the Services pages using curl also returned expected content.
  • Ran the production Playwright build via npm run verify:ui, which completed the app build successfully but automated Chromium browser tests could not run because npx playwright install chromium failed due to a blocked download (cdn.playwright.dev returned HTTP 403), so full browser test execution is environment-blocked.

Codex Task

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@BigSimmo, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 32 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 12966d0f-2e25-4215-a1e7-2657818c8177

📥 Commits

Reviewing files that changed from the base of the PR and between b547b0c and 9d5cb8a.

📒 Files selected for processing (2)
  • docs/branch-review-ledger.md
  • src/app/layout.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-next.js-startup-failure-and-verify-pages

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.

@supabase

supabase Bot commented Jul 24, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@github-actions

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Unit coverageneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #4763 (success).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

@BigSimmo
BigSimmo marked this pull request as ready for review July 24, 2026 07:28
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

1 similar comment
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@BigSimmo
BigSimmo enabled auto-merge July 24, 2026 11:18
@BigSimmo
BigSimmo merged commit 2e68888 into main Jul 24, 2026
17 checks passed
@BigSimmo
BigSimmo deleted the codex/fix-next.js-startup-failure-and-verify-pages branch July 24, 2026 11:35
cursor Bot pushed a commit that referenced this pull request Jul 24, 2026
Gate the Differentials hero composer slot so a typed draft with leftover
evidence matches stays on the phone dock path, and drop the duplicated
PR #1149 branch-review ledger row blocking Static PR checks.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Jul 24, 2026
Fixes Codex P1 check-branch-review-ledger failure on this branch.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Jul 24, 2026
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Jul 24, 2026
* Fix React hydration mismatches and add Playwright safeguards

* Fix typescript and knip CI failures

* fix: harden hydration guard

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* fix: format hydration support files

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* fix: harden hydration warning guard

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* docs: record Run PR behind-main sweep for #1131

* fix: sync theme cookie with bootstrap and useTheme

RootLayout already reads clinical-theme for the html class, but the
pre-paint bootstrap and setter only used localStorage. Fall back to the
cookie in bootstrap, write/clear it from useTheme, and share the key
constants so a cookie-only preference no longer flips after paint.

* docs: ledger Run PR babysit for #1131

* docs: ledger post-main sync for #1131

* fix(hydration): drop suppressHydrationWarning from skip link

The lint rule only allows suppressHydrationWarning on html/body/script.
Remove it from the skip-to-content anchor so Static PR checks pass.

* docs: ledger re-sync sweep for PR #1131

* fix(ledger): remove duplicate PR #1149 row after main merge

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* fix(ci): remove duplicate hydration ledger row

* fix(ui): drop unused LoadingPanel import after lazy-module merge

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* test(ui): cover persisted hydration state

* docs: record PR 1131 hydration coverage

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
BigSimmo added a commit that referenced this pull request Jul 25, 2026
Merge from main cloned an identical #1149 review record; keep the first occurrence so check:branch-review-ledger passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants