You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configure local or inline OpenAPI specs as routed, version-aware collections with operations, schemas, tags, webhooks, generated samples, and every declared request-body media type.
Install an editable api-layout UI that shares Nimbus's docs shell, navigation, breadcrumbs, banners, mobile behavior, and deep-linkable field and code-sample controls. The copied ApiFieldList field iterator is explicitly typed so the scaffolded UI type-checks cleanly under a consumer's strict TypeScript.
Publish per-page Markdown, agent indexes, corpus entries, coordinate manifests, and api.ref: citations across local and cross-site documentation.
Harden generated-consumer delivery with exact registry dependencies, working pnpm installs from scaffold roots, and base-aware canonical, Markdown, sitemap, and agent URLs through the new public withBase helper.
Control how operation pages are addressed, and stay resilient to messy specs. By default, operations that lack a usable operationId no longer abort the build — they warn and fall back to a path-derived coordinate, so real-world specs (e.g. Cloudflare's brand-protection operations) build; set api[].requireOperationId: true on specs you own to keep that fatal, while route-hostile paths and coordinate collisions stay fatal regardless. For readable, path-derived URLs, opt into the resource-action-v1 route convention: set api[].routes: { convention: "resource-action-v1" } (per version in a family) to derive slugs like charges/list from an operation's method and path, decoupled from operationId so route-hostile identifiers no longer poison URLs. Trim shared bases with stripPathPrefixes (e.g. ["/v1"]), pin individual pages with an operations (operationId → slug) map, and inspect how each slug resolved (override / derived / fallback) via the new getApiRouteProvenance export. Derivation collisions, reserved-route segments, unused overrides, cross-version slug drift, and unknown config keys (e.g. a stripPrefixes typo for stripPathPrefixes) are reported with pointed messages; the default (no routes) keeps the legacy operationId slugs unchanged.
#10479d6430 Thanks @MohamedH1998! - Add server-output support and the @cloudflare/nimbus-docs/adapters export.
Nimbus can now target on-request (server) output in addition to static. A new @cloudflare/nimbus-docs/adapters public export ships the adapter recipes plus the shared astro.config and wrangler.jsonc emitters, and two new CLI verbs opt an existing site in: nimbus-docs add server-output --adapter <vercel|node|netlify|cloudflare> (alias nimbus-docs add adapter-<id>). The installer rewrites astro.config at the // nimbus:adapter marker and, for Cloudflare, creates a server wrangler.jsonc or replaces an exact Nimbus static config. Cloudflare installs add request rendering when the active Nimbus config has no explicit rendering policy; explicit or ambiguous policies are preserved and receive an agent-ready handoff. Adapter dependencies are saved at their exact resolved versions so subsequent runs accept the installed declaration. Custom and alternate Wrangler configs are preserved with manual adaptation instructions.
Withdraw the gated config option because it did not hold as a confidentiality boundary. Existing gated config now fails with a migration error; to keep a page out of the build, move the page out of a routed content collection.
Fix env preflight precedence and parsing to match Vite, including empty shell overrides, last-wins .env* files, and inline dotenv comments. Adapter dependency validation now resolves pnpm catalog declarations, and compatibility warnings reflect the versions installed by the command.
Fix NimbusHead URLs for sub-path deployments by applying Astro's configured base to sitemap, LLM index, social image, JSON-LD, canonical, and version-alternate URLs. Root deployments and already-based paths are unchanged.
Keep registry component render counters compatible with adapter-defined Astro.locals types, including Cloudflare server output.
Nimbus now supports collection-level build and request rendering policies with validated defaults and per-collection overrides. Request-rendered prose and API routes use response-aware page helpers, prepared API models, request-safe partial headings, 404 responses, and build-derived syntax-highlighting assets without shipping source OpenAPI specs to Workers. Cloudflare server scaffolds enable request rendering by default, and generated pnpm configuration installs Satteri's WASI fallback alongside the current architecture.
Preserve sitemap, Pagefind, Markdown, and agent-index discovery for request-rendered routes. Pin the tested sitemap integration, clean up synthetic Pagefind staging files transactionally, and generate cross-collection Open Graph images in new starters.
Patch Changes
#992965d9f Thanks @MohamedH1998! - - Honor noindex: true on machine discovery surfaces. noindex pages now drop out of /llms.txt, per-section llms.txt, and the /llms-full.txt corpus (matching on-site search, which already excluded them) while staying directly addressable and navigable. A single exported isDiscoverable predicate defines the contract for custom index/corpus routes.
Pin @vercel/detect-agent to 1.2.3, the last release published with npm provenance. Versions 1.2.4/1.2.5 dropped provenance, tripping pnpm's ERR_PNPM_TRUST_DOWNGRADE and blocking lockfile updates. Pinning holds at the attested artifact until upstream restores provenance.
Fix navigation for pages under CJK (percent-encoded) paths. Route matching now decodes percent-encoded request paths (toRouteKey), so active sidebar state, breadcrumbs, and prev/next resolve correctly instead of falling back to a URL-encoded trail; the breadcrumb URL fallback also decodes segment labels.
#110e6fb2b1 Thanks @sansynx! - Reject registry install paths that resolve outside src through symbolic links.
#109f4d0d78 Thanks @sansynx! - Preserve casing in static page routes during duplicate-route checks.
#119bd179bb Thanks @MohamedH1998! - Index API response coordinates for direct citations, and keep scaffold progress readable in non-interactive terminals. Emit canonical trailing slashes for API navigation links.
0.13.0
Minor Changes
#1143c0d794 Thanks @MohamedH1998! - Generate deterministic Markdown versions for every public page, prepared MDX source versions for authored pages, llms.txt indexes, llms-full.txt, and merged partial headings at build time. Request-rendered pages now consume compact prepared heading data, and custom component transforms and partial resolvers are configured through markdown.componentMap and markdown.partialResolver. Worker bundles no longer include partial-expansion parsers. Calls to renderEntryAsMarkdown or getEntryMarkdown that still pass <Render> partials now fail instead of attempting runtime expansion; migrate custom Markdown routes to the prepared helpers exported by @cloudflare/nimbus-docs/build.
Rename prepared publication APIs without compatibility aliases: TwinSurface becomes PreparedMarkdownSurface, PreparedTwin* becomes PreparedMarkdown*, PreparedCorpus* becomes PreparedLlms*, getPreparedTwin* becomes getPreparedMarkdown*, getPreparedCorpus* becomes getPreparedLlms*, and renderCorpusMarkdown becomes renderLlmsFullMarkdown. Move integration customization from twins.componentMap and twins.partialResolver to markdown.componentMap and markdown.partialResolver.
Keep framework assets, metadata, starter navigation, and generated API links inside Astro's configured deployment base path. Replace the removed withBaseRoute runtime export with withBase; site-relative inputs to withBase must be logical, unbased paths.
Keep generated .nimbus build data out of source control, deduplicate sitemap roots on subpath deployments, and advertise prepared MDX source responses as text/mdx consistently across static and request rendering.
Configure local or inline OpenAPI specs as routed, version-aware collections with operations, schemas, tags, webhooks, generated samples, and every declared request-body media type.
Install an editable api-layout UI that shares Nimbus's docs shell, navigation, breadcrumbs, banners, mobile behavior, and deep-linkable field and code-sample controls. The copied ApiFieldList field iterator is explicitly typed so the scaffolded UI type-checks cleanly under a consumer's strict TypeScript.
Publish per-page Markdown, agent indexes, corpus entries, coordinate manifests, and api.ref: citations across local and cross-site documentation.
Harden generated-consumer delivery with exact registry dependencies, working pnpm installs from scaffold roots, and base-aware canonical, Markdown, sitemap, and agent URLs through the new public withBase helper.
Control how operation pages are addressed, and stay resilient to messy specs. By default, operations that lack a usable operationId no longer abort the build — they warn and fall back to a path-derived coordinate, so real-world specs (e.g. Cloudflare's brand-protection operations) build; set api[].requireOperationId: true on specs you own to keep that fatal, while route-hostile paths and coordinate collisions stay fatal regardless. For readable, path-derived URLs, opt into the resource-action-v1 route convention: set api[].routes: { convention: "resource-action-v1" } (per version in a family) to derive slugs like charges/list from an operation's method and path, decoupled from operationId so route-hostile identifiers no longer poison URLs. Trim shared bases with stripPathPrefixes (e.g. ["/v1"]), pin individual pages with an operations (operationId → slug) map, and inspect how each slug resolved (override / derived / fallback) via the new getApiRouteProvenance export. Derivation collisions, reserved-route segments, unused overrides, cross-version slug drift, and unknown config keys (e.g. a stripPrefixes typo for stripPathPrefixes) are reported with pointed messages; the default (no routes) keeps the legacy operationId slugs unchanged.
#10479d6430 Thanks @MohamedH1998! - Add server-output support and the @cloudflare/nimbus-docs/adapters export.
Nimbus can now target on-request (server) output in addition to static. A new @cloudflare/nimbus-docs/adapters public export ships the adapter recipes plus the shared astro.config and wrangler.jsonc emitters, and two new CLI verbs opt an existing site in: nimbus-docs add server-output --adapter <vercel|node|netlify|cloudflare> (alias nimbus-docs add adapter-<id>). The installer rewrites astro.config at the // nimbus:adapter marker and, for Cloudflare, creates a server wrangler.jsonc or replaces an exact Nimbus static config. Cloudflare installs add request rendering when the active Nimbus config has no explicit rendering policy; explicit or ambiguous policies are preserved and receive an agent-ready handoff. Adapter dependencies are saved at their exact resolved versions so subsequent runs accept the installed declaration. Custom and alternate Wrangler configs are preserved with manual adaptation instructions.
Withdraw the gated config option because it did not hold as a confidentiality boundary. Existing gated config now fails with a migration error; to keep a page out of the build, move the page out of a routed content collection.
Fix env preflight precedence and parsing to match Vite, including empty shell overrides, last-wins .env* files, and inline dotenv comments. Adapter dependency validation now resolves pnpm catalog declarations, and compatibility warnings reflect the versions installed by the command.
Fix NimbusHead URLs for sub-path deployments by applying Astro's configured base to sitemap, LLM index, social image, JSON-LD, canonical, and version-alternate URLs. Root deployments and already-based paths are unchanged.
Keep registry component render counters compatible with adapter-defined Astro.locals types, including Cloudflare server output.
Nimbus now supports collection-level build and request rendering policies with validated defaults and per-collection overrides. Request-rendered prose and API routes use response-aware page helpers, prepared API models, request-safe partial headings, 404 responses, and build-derived syntax-highlighting assets without shipping source OpenAPI specs to Workers. Cloudflare server scaffolds enable request rendering by default, and generated pnpm configuration installs Satteri's WASI fallback alongside the current architecture.
@cloudflare/nimbus-docs is the core docs framework for this site (direct devDependency). The 0.11.0 → 0.13.1 bump spans two minor releases, including 0.13.0 which renamed several prepared-markdown/corpus APIs without compatibility aliases (TwinSurface→PreparedMarkdownSurface, PreparedCorpus→PreparedLlms, renderCorpusMarkdown→renderLlmsFullMarkdown, twins.→markdown., withBaseRoute→withBase) and 0.12.0 which withdrew the gated config option. Searches confirm this repo uses none of the renamed/removed APIs — usage is limited to the stable integration surface (defineNimbusConfig/nimbus options, getVersionStatus, getVersionAlternates, getCollectionLlmsUrl, getSidebar, getBreadcrumbs, getRouteNavigation, getHeadingsFromHtml, defaultCodeTransformers, and /markdown, /client, /types, /react, /components subpath exports). Behavior changes (noindex pages dropping from llms.txt, NimbusHead base handling on a root deployment, sitemap integration pinned to 3.7.2 inside nimbus alongside the repo's own 3.7.4) are benign or desired. New optional peer dependencies (@readme/httpsnippet, @scalar/openapi-parser, openapi-sampler) don't affect this repo. The framework's internal rendering path changed substantially (build-time prepared markdown, request-rendered heading data), so a post-merge spot check of the built site is warranted; CI (astro check + build + vitest) will catch any missed export/type issues.
Package details
@cloudflare/nimbus-docs: 0.11.0 → 0.13.1
Type: feature Dependency type: direct (devDependencies)
What changed
0.12.0: Added OpenAPI reference support, server-output support and @cloudflare/nimbus-docs/adapters export, and Cloudflare request rendering for content collections.
0.12.0: Withdrew the gated config option — existing gated config now fails with a migration error (repo does not use it).
0.12.0: noindex pages now drop out of /llms.txt, per-section llms.txt, and /llms-full.txt; NimbusHead URLs made base-aware (root deployment, so unchanged here); CJK percent-encoded path navigation fixed; @vercel/detect-agent pinned to 1.2.3.
0.13.0: Breaking renames without compat aliases: TwinSurface→PreparedMarkdownSurface, PreparedTwin→PreparedMarkdown, PreparedCorpus→PreparedLlms, getPreparedTwin→getPreparedMarkdown, getPreparedCorpus→getPreparedLlms, renderCorpusMarkdown→renderLlmsFullMarkdown; twins.componentMap/partialResolver moved to markdown.componentMap/partialResolver; withBaseRoute removed in favor of withBase.
0.13.0: Prepared Markdown/llms.txt content is now generated at build time; calls to renderEntryAsMarkdown/getEntryMarkdown passing partials now fail instead of runtime expansion (repo does not use these).
0.13.1: Rejects registry install paths resolving outside src through symlinks (CLI hardening), preserves casing in static page route duplicate checks, indexes API response coordinates for citations, emits canonical trailing slashes for API nav links.
Usage in this repo
Direct core framework: defineNimbusConfig + nimbus(...) integration in astro.config.ts (mdx/markdown.processor/sitemap.serialize/rules options); imports of getVersionStatus, getVersionAlternates, getCollectionLlmsUrl, getSidebar, getBreadcrumbs, getRouteNavigation, SectionTitleResolver, getHeadingsFromHtml, defaultCodeTransformers from the main entry; EXTERNAL_LINK_ARROW/externalLinks/titleFigure from /markdown; mount/lockScroll/unlockScroll/codeCopy from /client; BasePageProps/SidebarItem/TOCItem from /types; useDiagram from /react; Icon.astro from /components. None of the renamed/removed 0.13.0 APIs (withBaseRoute, TwinSurface, PreparedCorpus*, renderCorpusMarkdown, twins.* config, gated config) are referenced anywhere in the repo.
Impact: 🟠 Medium — This framework renders the entire docs site, and the bump spans two minor releases with substantial internal changes (build-time prepared markdown, request-rendered heading data, sitemap dependency pin, route checks). However, the repo calls none of the renamed/removed APIs — its integration surface is unchanged — so breakage risk is limited to framework internals, to be confirmed by CI (astro check/build) and a quick spot check of the rendered site.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependenciesPull requests that update a dependency filejavascriptPull requests that update Javascript codesize/m
2 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps @cloudflare/nimbus-docs from 0.11.0 to 0.13.1.
Release notes
Sourced from @cloudflare/nimbus-docs's releases.
Changelog
Sourced from @cloudflare/nimbus-docs's changelog.
... (truncated)
Commits