Skip to content

Changelog, page 3

Releases create-nimbus-docs 0.7.4 – create-nimbus-docs 0.6.6.

2026

create-nimbus-docs 0.7.4

Patch Changes

  • #129 3fd7d15 Thanks @MohamedH1998! - Add a versioned breaking-change manifest, explicit reviewed upgrade baselines, agent-readable migration plans, shared check and outdated diagnostics, safe starter drift updates, starter agent upgrade guidance, and automatic migration guidance during Astro configuration.

  • #122 4b51ebb Thanks @MohamedH1998! - Allow user-owned Astro pages and scaffolded Markdown and llms.txt endpoints to use native rendering semantics while retaining entrypoint-aware checks for active Nimbus contracts and composing with unrelated integration routes. These dynamic endpoints now resolve their payloads when rendered on request. Endpoint helpers now live at @cloudflare/nimbus-docs/agent-endpoints; the existing @cloudflare/nimbus-docs/publication entrypoint remains supported. Sub-path sitemaps now list the deployment root once.

  • #141 7790b7c Thanks @MohamedH1998! - Reduce repeated API field-icon markup by sharing SVG paint settings in the existing field-list stylesheet. Preserve icon shapes, field content, links, and disclosure behavior. Existing sites can apply the owned component and stylesheet changes together; framework upgrades do not overwrite owned files.

  • #139 ea8cd46 Thanks @MohamedH1998! - Render MDX admonitions with Sätteri’s native directive parser, preserving nested content, code examples, plain titles, aliases, and scoped opt-outs. Use markdown.mdastPlugins and markdown.hastPlugins for native extensions. Explicit incompatible processors must disable Nimbus admonitions, while Astro MDX options continue to pass through unchanged. Native admonitions now apply to .mdx only; review existing admonition directives in .md files. Astro 7.2.6 or newer is required.

  • #137 728e753 Thanks @MohamedH1998! - Update generated projects to Astro 7.2.8 and align the Node adapter with Astro’s updated runtime API.

  • #140 a6ccf99 Thanks @MohamedH1998! - Reserve the desktop API code-rail column before streamed rail HTML arrives, preventing the main content from shifting sideways. Preserve mobile stacking, no-rail layouts, and custom rail width. Existing sites can copy the updated owned ApiLayout component if desired; updating the framework does not overwrite it. This prevents layout shift without making the rail arrive sooner.

  • Updated dependencies [3fd7d15, 4b51ebb, 5343933, 3f7c16a, ea8cd46, 728e753]:

    • @cloudflare/nimbus-docs@0.14.0

nimbus-docs 0.14.0

Minor Changes

  • #129 3fd7d15 Thanks @MohamedH1998! - Add a versioned breaking-change manifest, explicit reviewed upgrade baselines, agent-readable migration plans, shared check and outdated diagnostics, safe starter drift updates, starter agent upgrade guidance, and automatic migration guidance during Astro configuration.

  • #142 5343933 Thanks @MohamedH1998! - Breaking: API coordinate manifests now use the compact v2 format exclusively. The existing getCoordinatesManifest() helper emits it by default; the endpoint, citation syntax, page URLs and anchors are unchanged. Repeated page URLs are stored once per namespace in a single JSON file. There is no additional helper or setting.

    Upgrade publishers and consuming sites together, rebuild publishers, and refresh checked-in manifests before rebuilding consumers. Old readers cannot consume v2, and new readers no longer consume v1. Stage both sides before switching live sites if uninterrupted citations are required. Local v1 references fail with rebuild guidance; remote v1 references warn and are skipped.

    Custom CoordinatesManifest readers must use collection pages and versions page groups instead of the old flat entries. Each group has a literal url and coordinate-keyed fragments: null means no fragment, 0 means the coordinate itself, and a string is the exact fragment. Do not relabel old JSON as v2.

    The linked upgrade-manifest entry includes rollout, verification and rollback guidance. This changes citation transport, not Astro’s content store or SSR behavior.

  • #139 ea8cd46 Thanks @MohamedH1998! - Render MDX admonitions with Sätteri’s native directive parser, preserving nested content, code examples, plain titles, aliases, and scoped opt-outs. Use markdown.mdastPlugins and markdown.hastPlugins for native extensions. Explicit incompatible processors must disable Nimbus admonitions, while Astro MDX options continue to pass through unchanged. Native admonitions now apply to .mdx only; review existing admonition directives in .md files. Astro 7.2.6 or newer is required.

Patch Changes

  • #122 4b51ebb Thanks @MohamedH1998! - Allow user-owned Astro pages and scaffolded Markdown and llms.txt endpoints to use native rendering semantics while retaining entrypoint-aware checks for active Nimbus contracts and composing with unrelated integration routes. These dynamic endpoints now resolve their payloads when rendered on request. Endpoint helpers now live at @cloudflare/nimbus-docs/agent-endpoints; the existing @cloudflare/nimbus-docs/publication entrypoint remains supported. Sub-path sitemaps now list the deployment root once.

  • #138 3f7c16a Thanks @MohamedH1998! - Preserve authored root-relative links and unrelated source across Markdown and MDX, including HTML containers, fenced examples, Unicode, and CRLF. Keep plain Markdown unchanged when generating Markdown and agent endpoint output.

  • #137 728e753 Thanks @MohamedH1998! - Update generated projects to Astro 7.2.8 and align the Node adapter with Astro’s updated runtime API.

create-nimbus-docs 0.7.3

Patch Changes

  • #119 bd179bb 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.

  • Updated dependencies [e6fb2b1, f4d0d78, bd179bb]:

    • @cloudflare/nimbus-docs@0.13.1

nimbus-docs 0.13.1

Patch Changes

  • #110 e6fb2b1 Thanks @sansynx! - Reject registry install paths that resolve outside src through symbolic links.

  • #109 f4d0d78 Thanks @sansynx! - Preserve casing in static page routes during duplicate-route checks.

  • #119 bd179bb 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.

create-nimbus-docs 0.7.2

Patch Changes

  • #114 3c0d794 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.

  • Updated dependencies [3c0d794]:

    • @cloudflare/nimbus-docs@0.13.0

nimbus-docs 0.13.0

Minor Changes

  • #114 3c0d794 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.

nimbus-docs 0.12.0

Minor Changes

  • #93 43c161a Thanks @MohamedH1998! - Add first-party OpenAPI reference support to Nimbus.

    • 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.
  • #104 79d6430 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.

  • #104 862df4a Thanks @MohamedH1998! - Add Cloudflare request rendering for canonical content collections.

    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

  • #99 2965d9f 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.

create-nimbus-docs 0.7.1

Patch Changes

  • #106 2c08dce Thanks @MohamedH1998! - Install @cloudflare/nimbus-docs as a runtime dependency so the CLI can load its adapter helpers.

create-nimbus-docs 0.7.0

Minor Changes

  • #93 43c161a Thanks @MohamedH1998! - Add first-party OpenAPI reference support to Nimbus.

    • 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.
  • #103 f372a4e Thanks @MohamedH1998! - Add a --adapter <vercel|node|netlify|cloudflare> scaffold flag for server output.

    Passing --adapter selects output: "server" and wires the chosen adapter at scaffold time: it flips the generated astro.config at the // nimbus:adapter marker, appends the adapter’s platform build dir to .gitignore, and for Cloudflare writes a server wrangler.jsonc. Node scaffolds include a production start script. --deploy is ignored with --adapter (server output owns its target). Config discovery follows Astro’s own resolution order and supported set (.mjs/.js/.ts/.mts), matching the nimbus-docs add adapter-* opt-in. Copied templates are rejected if they contain symlinks so transformations cannot escape the project root.

    Static scaffolds now preserve the // nimbus:adapter marker so the later nimbus-docs add adapter-* opt-in can reliably rewrite generated projects.

    Reject destinations whose existing symlinked parent resolves outside the current directory, quote paths with spaces in next-step commands, and keep generated components compatible with adapter-defined Astro.locals types.

  • #104 862df4a Thanks @MohamedH1998! - Add Cloudflare request rendering for canonical content collections.

    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

  • #89 deddca5 Thanks @sansynx! - Remove the deprecated baseUrl option from generated TypeScript configuration so Nimbus sites continue to pass type checks on TypeScript 6 while preserving the @/ import alias.

  • #99 2965d9f Thanks @MohamedH1998! - Guard the PackageManagers restore script’s textContent access with optional chaining so the starter passes a strict astro check (part of the CJK/type-safety fixes).

create-nimbus-docs 0.6.6

Patch Changes

  • #86 b4b0dc3 Thanks @MohamedH1998! - Starter accessibility, layout-stability, and no-flash navigation fixes:

    • Skip link now lands focus — <main> gets id="main-content" and tabindex="-1" on the 404, home, and docs layouts.
    • Closed sidebar groups leave the tab order (inert), including the pre-hydration restore path.
    • “On this page” no longer reflows when an item becomes active (width-reserving ghost).
    • Focus rings no longer flash on first focus (base-layer outline default so the ring color/width/offset never animate).
    • Client-side navigation via <ClientRouter /> with a blocking (is:inline) theme bootstrap to remove the first-paint theme flash, a page-content view transition, and a navigation-safe sidebar-state restore that keeps the active item visible.

Type to search…

↑↓ navigate↵ selectEsc close