Skip to content

deps: upgrade fumadocs trio to 16.15.1/15.3.1 and migrate theme variables - #70

Merged
KaladinX merged 1 commit into
mainfrom
deps/fumadocs-16.15
Aug 24, 2026
Merged

deps: upgrade fumadocs trio to 16.15.1/15.3.1 and migrate theme variables#70
KaladinX merged 1 commit into
mainfrom
deps/fumadocs-16.15

Conversation

@KaladinX

Copy link
Copy Markdown
Collaborator

Problem

The fumadocs trio was deliberately frozen (core/ui 16.7.9, mdx 14.2.11) because 16.8 renamed the theme CSS variables and a naive bump silently drops the Codex palette. The frozen versions also carried 5 of main's 13 audit findings: two image-size DoS advisories via fumadocs-core, and the js-yaml advisories reachable through fumadocs-mdx.

Change

Versions (still exact-pinned): fumadocs-core and fumadocs-ui 16.15.1, fumadocs-mdx 15.3.1.

  • 16.15.1 replaces image-size with the @fumari/image-size fork; mdx 15 drops js-yaml entirely. Local pnpm audit --audit-level high: 13 findings → 8. The remaining 8 are the eslint-chain brace-expansion/js-yaml items, coming in a separate PR.
  • mdx 15's breaking changes don't apply here: it requires an ESM next.config (ours is .mjs) and fumadocs-core ≥16.7.

Theme migration (app/global.css), done in the same PR per the warning in dependabot.yml:

  • Old: bare HSL triplets in --fd-*, consumed via hsl(var(--fd-*)).
  • New: full color values in --color-fd-*, declared in a Tailwind v4 @theme block with .dark overrides — the same structure as the shipped fumadocs-ui/css/lib/default-colors.css.
  • Alpha usages became color-mix; --fd-destructive/--fd-warning map to --color-fd-error/--color-fd-warning, which the new Callouts read; --fd-radius is dropped (nothing in 16.15 reads it).
  • Component classnames (text-fd-primary, bg-fd-border/50, …) are untouched: Tailwind v4 generates them from the same tokens.

Verification

  • pnpm build green.
  • Light and dark themes checked in the dev server with Playwright: Codex teal/parchment/navy palette renders in both, including the architecture chart, cards, and callouts. (A stale-compositor artifact in full-viewport screenshots after toggling the theme class was ruled out via computed styles and element-level capture.)
  • pnpm audit --audit-level high locally confirms the fumadocs-path findings are gone. The audit CI job will still be red from the eslint-chain items until the follow-up PR.

…bles

Problem: The fumadocs packages were exact-pinned at fumadocs-core 16.7.9,
fumadocs-ui 16.7.9, and fumadocs-mdx 14.2.11 because 16.8 renamed the
theme CSS variables, and a naive bump would silently drop the Codex
palette. Meanwhile the pinned versions carried 5 of main's audit
findings: two image-size DoS advisories (via fumadocs-core) and the
js-yaml quadratic-CPU advisories reachable through fumadocs-mdx.

Change:
- package.json: fumadocs-core and fumadocs-ui to 16.15.1, fumadocs-mdx
  to 15.3.1 (still exact-pinned). 16.15.1 replaces image-size with the
  @fumari/image-size fork and mdx 15 no longer depends on js-yaml, so
  every fumadocs-path audit finding is gone (local audit: 13 -> 8; the
  remaining 8 are eslint-chain brace-expansion/js-yaml, next PR).
  mdx 15's breaking changes don't bite: it requires an ESM next.config
  (ours is .mjs) and fumadocs-core >=16.7.
- app/global.css: migrated the Codex palette to the 16.8+ token scheme.
  Old scheme: bare HSL triplets in --fd-* consumed via hsl(var(...)).
  New scheme: full color values in --color-fd-* declared in a Tailwind
  v4 @theme block (light) with .dark overrides, mirroring the shipped
  fumadocs-ui css/lib/default-colors.css. Alpha usages became color-mix.
  --fd-destructive/--fd-warning map to the tokens the new Callouts read
  (--color-fd-error / --color-fd-warning). --fd-radius is dropped:
  nothing in fumadocs-ui 16.15 reads it. Component classnames
  (text-fd-primary etc.) are unchanged; Tailwind v4 generates them from
  the same tokens.

Verified: pnpm build green; light and dark themes eyeballed in the dev
server via Playwright (Codex teal/parchment/navy all render; a
full-viewport screenshot artifact after toggling the theme class was
ruled out by inspecting computed styles and an element-level capture).
@netlify

netlify Bot commented Aug 24, 2026

Copy link
Copy Markdown

Deploy Preview for codex-documentation ready!

Name Link
🔨 Latest commit 7a9be01
🔍 Latest deploy log https://app.netlify.com/projects/codex-documentation/deploys/6a8ca1f5363bb8000828a9fc
😎 Deploy Preview https://deploy-preview-70--codex-documentation.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Aug 24, 2026

Copy link
Copy Markdown

Deploy Preview for classy-clafoutis-ff4fd0 ready!

Name Link
🔨 Latest commit 7a9be01
🔍 Latest deploy log https://app.netlify.com/projects/classy-clafoutis-ff4fd0/deploys/6a8ca1f5d2b8e7000883536e
😎 Deploy Preview https://deploy-preview-70--classy-clafoutis-ff4fd0.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@KaladinX
KaladinX merged commit 0609f06 into main Aug 24, 2026
9 of 10 checks passed
@KaladinX
KaladinX deleted the deps/fumadocs-16.15 branch August 24, 2026 20:52
KaladinX added a commit that referenced this pull request Aug 24, 2026
…deps (#71)

Problem: package.json had accumulated 14 pnpm overrides and a direct
minimatch devDependency, all added over time to silence pnpm audit
findings in build-time tooling. Overrides rot: several pinned versions
(brace-expansion 1.1.12/2.0.2, js-yaml ^4.1.1 frozen at 4.1.1 in the
lockfile) had themselves become the vulnerable versions, so the
apparatus was generating the very findings it existed to suppress.
Meanwhile the audit CI job failed on advisories in eslint's dependency
chain: code no visitor can ever reach, since it runs once per build on
input the team wrote.

Change:
- package.json: remove the whole pnpm.overrides block and the direct
  minimatch devDependency (nothing imports it; it existed only to force
  a resolution). Update eslint within its range (9.39.5), which pulls
  patched js-yaml 4.3.1 and current minimatch/brace-expansion on its
  own, no overrides needed.
- ci.yml: the audit gate becomes pnpm audit --prod --audit-level high.
  Production dependencies are the tree that builds the site and serves
  the one real server-side surface (/api/search); advisories there
  still fail CI. Dev-tool advisories no longer gate merges; Dependabot
  keeps bumping those packages regardless.

After this change every remaining audit finding (prod and dev alike) is
a fumadocs path fixed by the trio upgrade in PR #70. Merge #70 first;
once this branch is rebased on it, the audit job is green with no
suppression list at all.

Verified: pnpm build green, CI-scoped eslint clean, tsc --noEmit clean.
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