Skip to content

Upgrade Nimbus to 0.18.1 and add nimbus.json baseline - #365

Merged
Blargian merged 3 commits into
mainfrom
nimbus-0.18.1
Oct 15, 2026
Merged

Blargian merged 3 commits into
mainfrom
nimbus-0.18.1

Conversation

@Blargian

@Blargian Blargian commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Summary

Upgrades @cloudflare/nimbus-docs from the pinned 0.13.1 to 0.18.1 (ten releases) and establishes the nimbus.json baseline the CLI needs to track future upgrades. Two commits:

  1. Add nimbus.json baseline — nimbus-docs init over the adopted site: 28 registry components recorded (5 byte-identical to registry 0.18.1, 23 locally modified). Also hides the file from Mintlify and documents it in src/README.md.
  2. Upgrade Nimbus to 0.18.1 — see below.

What the upgrade changes

Change Why
@cloudflare/nimbus-docs 0.13.1 → 0.18.1 Ten releases behind; the baseline makes future bumps reviewable
@astrojs/markdown-satteri ^0.3.8 → ^0.4.3 0.18 requires a Sätteri processor with createMdxRenderer; 0.3.x lacks it and astro:config:setup throws
Delete patches/@cloudflare__nimbus-docs@0.13.1.patch and the satteri override pnpm keys the patch to 0.13.1; every fix in it is upstream now (UTF-16 offsets, <PLACEHOLDER> parsing, heading-id/math features, import/comment/raw-tag stripping in generated Markdown). Verified by building the placeholder, emoji and math pages unpatched
nimbus.json gains lastReviewedNimbusVersion: 0.18.1 Written by nimbus-docs migrate --from 0.13.1; 0.18 refuses to build without a reviewed baseline
ApiBody.astro: guard page.markdownHref Optional since 0.18; PageActions already accepts undefined
bin/postbuild.ts: keep _headers and .well-known/ at the output root New 0.17+ output. Workers static assets only honour _headers at the asset root; the discovery documents are addressed at the origin root

The ten required migrate reviews were assessed: all concern OpenAPI api entries, API versioning, coordinate manifests, or .well-known ownership, none of which this site configures, except explicit-markdown-processor, which the Sätteri bump satisfies.

Verification (English, DOCS_REMOTES=none, full pnpm build incl. postbuild, after merging main with #366)

Check Result
Pages built 3,642 in 1 m 35 s; 9,273 output files; no pages excluded
Anchor parity 19,693 / 19,693 explicit {#id} anchors present
Base check 891,843 site-relative URLs, 0 outside /docs, 0 /docs/docs/
Output root .assetsignore .well-known __redirects _headers docs — nothing nested twice
pnpm typecheck 0 errors
wrangler deploy --dry-run OK
Scoped A/B vs 0.13.1 Identical page set and Markdown twins on the same slice

Frontmatter blocker (resolved by #366)

The new markdown-satteri parses frontmatter with the spec-strict yaml package (via @astrojs/internal-helpers 0.12), where Astro's own path used lenient js-yaml. 15 English pages and 113 locale copies had a quoted frontmatter string wrapped onto a column-0 continuation line, which is invalid YAML and failed content sync on 0.18. #366 rejoined those strings and is merged; main has been merged into this branch, so the full build above includes every page.

Follow-ups (not in this PR)

  • 0.18 warns that ~3,600 Markdown/llms.txt pages were "not prerendered": this repo publishes /<page>.md where Nimbus expects /<page>/index.md. Noise until the routes are reconciled.
  • .well-known/ard.json and ai-catalog.json are advertised at https://clickhouse.com/.well-known/…; the website Worker needs to forward those paths for them to resolve.
  • markdown.features + markdown.hastPlugins now exist upstream, so the custom Sätteri processor and the vendored NimbusHead.astro (base-path issues docs: port "achieving atomic inserts" knowledgebase page #105/Docs: sync upstream clickhouse-operator docs updates #78 are closed) can likely be retired.
  • math() hast plugin is available for MathML; math currently renders as untypeset code.language-math.
  • Local quirk unrelated to this PR: bin/fetch-remotes.ts with DOCS_REMOTES=none deletes the tracked dbt mount directory and gen-sidebar rewrites reports/nav-vs-disk.md; both need git checkout -- after a local build.

🤖 Generated with Claude Code

Blargian and others added 2 commits October 15, 2026 12:03
The Nimbus site was adopted from the monorepo POC in one bulk commit rather
than scaffolded with create-nimbus-docs, and its components were copied in by
hand instead of installed with `nimbus-docs add`, so no nimbus.json was ever
written. Without it `nimbus-docs outdated` has no baseline and every Nimbus
upgrade is a manual diff.

Generate the record with `nimbus-docs init`: 28 registry components recorded,
5 byte-identical to registry release 0.18.1 (button, card, card-grid, popover,
cn) and 23 locally modified. Starter provenance (version, templatesTag,
variant) is left null and flagged `reconstructed` because the starter files
were never taken from a templates tag.

Hide nimbus.json from Mintlify alongside the other Nimbus tooling files and
document the file and the `outdated` command in src/README.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bump @cloudflare/nimbus-docs 0.13.1 -> 0.18.1 (ten releases, 2026-09-07 to
2026-10-14) and @astrojs/markdown-satteri ^0.3.8 -> ^0.4.3. The newer Nimbus
requires a Sätteri processor that exposes `createMdxRenderer`, which only the
0.4 line provides; without the bump `astro:config:setup` throws.

Drop the local dist patch and the pnpm `satteri` override. pnpm keys the patch
to the exact 0.13.1 version, and every fix it carried is upstream now: UTF-16
offset mapping, `<PLACEHOLDER>` parsing, heading-id and math features read from
the processor, and import/comment/raw-tag stripping in generated Markdown.
Verified by building the placeholder, emoji and math pages unpatched.

Record 0.18.1 as the reviewed upgrade baseline in nimbus.json via
`nimbus-docs migrate --from 0.13.1`; 0.18 refuses to build without it. The ten
required reviews are all OpenAPI or versioning features this site does not
use, except explicit-markdown-processor, which the Sätteri bump satisfies.

Guard `page.markdownHref` in ApiBody.astro (optional since 0.18) and keep the
new root-level `_headers` and `.well-known/` output beside `__redirects`
instead of nesting them under /docs: Workers static assets only honour
`_headers` at the asset root, and the discovery documents are addressed at
the origin root.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

🕵

Preview Deployment Components Updated (UTC)
Docs preview 🟢 Ready English: 🟢 Ready; no remotes; translations: Production fallback 2026-10-15 10:54 UTC

@Blargian

Copy link
Copy Markdown
Member Author

The frontmatter blocker described above is fixed in #366 (128 files, frontmatter-only). Merge #366 first, then this PR's preview build should pass without excluding any pages.

@Blargian
Blargian marked this pull request as ready for review October 15, 2026 10:51
@Blargian
Blargian merged commit 7608208 into main Oct 15, 2026
2 checks passed
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