Skip to content

web-docs: fix the docs build properly - #122

Merged
vcode-sh merged 1 commit into
mainfrom
fix/fumadocs-ui-version-skew
Aug 7, 2026
Merged

web-docs: fix the docs build properly#122
vcode-sh merged 1 commit into
mainfrom
fix/fumadocs-ui-version-skew

Conversation

@vcode-sh

@vcode-sh vcode-sh commented Aug 7, 2026

Copy link
Copy Markdown
Owner

The docs build has been failing with Base UI error #41. I previously diagnosed that as a platform race — the failing page moved between runs, the container built fine — and rejected Dependabot #115 on the strength of it.

That was wrong, and the real answer took thirty seconds: run the dev server, where the message is not minified.

Base UI: NavigationMenuRootContext is missing.
Navigation Menu parts must be placed within <NavigationMenu.Root>.

Root cause

Two copies of @base-ui/react. The app had 1.2.0 hoisted; fumadocs-ui, requiring ^1.7.0, carried its own nested 1.7.0. fumadocs's NavbarMenu provides the root context from one copy, our NavigationMenuContent consumes it from the other, and two module instances are two contexts. Nothing to do with workers, parallelism, or macOS.

Three changes, and they only work together

fumadocs-ui 16.6.8 → 16.14.2. It is aliased as npm:@fumadocs/base-ui@latest — a floating tag, which resolves once at first install and then never moves. So the alias said latest and meant eight minors ago, against fumadocs-core 16.14.2. Now pinned explicitly, matching core. Same class of trap as the oven/bun:1 tag that broke the Dockerfile.

@base-ui/react 1.2.0 → 1.7.0, with an override forcing a single copy. This is precisely what Dependabot asked for in #115, which I closed claiming it broke the build. It did — on its own, against fumadocs-ui 16.6.8. The bump was correct; it simply could not travel alone.

fumadocs-ui/components/toc/indexfumadocs-ui/components/toc. 16.14 exports the directory, not the index subpath. Same file, same named exports — verified against the package's own exports map rather than guessed.

Evidence

Gate Result
next build locally, ×2 223/223 — on eleven workers, the configuration I claimed could not work
docker build 223/223
bun run lint clean
bun run catalogue:check in sync

Worth fixing next

docs-ci.yml still never builds the site. Every failure in this chain — this one, and the Dockerfile break before it — was invisible to CI because it only runs content checks. A next build step would have caught both on the commit that introduced them.

The build has been failing with 'Base UI error #41'. I previously called
it a platform race, on the evidence that the failing page moved between
runs and that the container built fine. That was wrong, and the actual
answer took thirty seconds: run the dev server, read the unminified
message.

  Base UI: NavigationMenuRootContext is missing. Navigation Menu parts
  must be placed within <NavigationMenu.Root>.

Two copies of @base-ui/react were installed. The app had 1.2.0 hoisted;
fumadocs-ui, needing ^1.7.0, carried its own nested 1.7.0. NavbarMenu
provides the root context from one copy, our NavigationMenuContent
consumes it from the other, and two module instances mean two contexts.
Nothing to do with workers or platform.

Three changes, and they only work together:

  fumadocs-ui was pinned at 16.6.8 against fumadocs-core 16.14.2. It is
  aliased as npm:@fumadocs/base-ui@latest — a floating tag, which
  resolves once and then never moves, so the alias said latest and meant
  eight minors ago. Now pinned to 16.14.2 explicitly, matching core.

  @base-ui/react 1.2.0 -> 1.7.0, with an override forcing a single copy.
  This is exactly what Dependabot asked for in #115, which I closed
  claiming it broke the build. It did — on its own, against fumadocs-ui
  16.6.8. The bump was right; it just could not travel alone.

  fumadocs-ui/components/toc/index -> fumadocs-ui/components/toc, since
  16.14 exports the directory rather than the index subpath. Same file,
  same named exports, checked against the package's own export map.

223/223 pages twice locally on eleven workers, the configuration that
supposedly could not work, and 223/223 in the container. Lint clean,
catalogue in sync.
@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.

@vcode-sh
vcode-sh merged commit 71cc0d5 into main Aug 7, 2026
1 check passed
@vcode-sh
vcode-sh deleted the fix/fumadocs-ui-version-skew branch August 7, 2026 22:10
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