Skip to content

Changelog, page 4

Releases nimbus-docs 0.2.0 – create-nimbus-docs 0.7.7.

nimbus-docs 0.2.0

Minor Changes

  • 24113e0 Thanks @MohamedH1998! - Clear the Node and pnpm version gates that broke a fresh scaffold

    • Node floor raised to >=22.12.0. Astro requires Node ≥ 22.12; the old >=20.0.0 promise was a floor a scaffolded site could not actually build on (Node 20 is EOL and fails astro build with Node.js v20.x is not supported by Astro!). CI now runs Node 24 everywhere.
    • pnpm install no longer hard-fails under modern pnpm. pnpm ≥ 10 gates dependency install scripts and pnpm ≥ 11 turns an ignored build into a hard error (ERR_PNPM_IGNORED_BUILDS, exit 1). Scaffolded projects now ship a pnpm-workspace.yaml that declines exactly the packages with install scripts — esbuild and sharp (plus workerd on the Cloudflare target, which pulls wrangler) — never a blanket approval. All three ship working prebuilds, so the site still builds while the supply-chain surface stays minimal. Verified green on pnpm 9, 10, 11, and npm.

create-nimbus-docs 0.8.1

Patch Changes

create-nimbus-docs 0.8.0

Minor Changes

  • #273 352a245 Thanks @MohamedH1998! - A redesigned API reference:

    • The API home lists every endpoint, grouped by x-tagGroups, with a filter; large specs load in parts as you scroll. The API route serves the later parts at /api/index/2/ and on, noindex and left out of the sitemap and search; it takes the part size as homeChunkSize in both getApiStaticPaths and getApiRoute (without it, the home is one page), and getApiRoute returns the parts as home.
    • Section pages list their endpoints name first, with the method and path beneath.
    • The API version picker sits in the header, at every width.
    • Code rail lines sit on whole pixels, with quieter line numbers; section titles are in full ink.
    • The API sidebar’s rows match the docs sidebar’s.
    • Section page operations gain method, path, description and deprecated, and the root page gains an index of every endpoint.
    • getApiRoot reads an API version’s root page from any route; chunkApiIndex and apiIndexRows split and flatten its index.

    nimbus-docs migrate lists the optional steps to adopt it.

  • #274 961e85d Thanks @MohamedH1998! - - New sites’ share cards show the site’s logo, the page’s section and its title, on white. A long title shrinks before it’s cut and stays within three lines.

    • The card’s look lives in the site’s src/pages/og/_card.ts; the logo is drawn once, in src/components/logo.ts, for the header and the cards.
    • @cloudflare/nimbus-docs/og fits text by measuring it and renders cards to PNG. It needs satori and @resvg/resvg-js, optional peers.
    • getPageSection(page) returns the label of a page’s nearest parent, from the sidebar for docs pages and from the spec for API pages.
  • #274 91eb2e9 Thanks @MohamedH1998! - - Card takes href: the whole card becomes the link.

    • Diagram buttons and controls keep their 32px height inside prose.
    • PUT and PATCH method chips meet 4.5:1 contrast in light mode.
    • The version picker and the API field toggle are named by their visible text.
  • #272 9a65f9f Thanks @MohamedH1998! - New sites start on the redesigned starter:

    • A fill-in Introduction as the home page, a Writing pages guide and a Components page replace the sample pages and the landing page.
    • A new type scale, steel accent, code blocks, sidebar and header logo.
    • One pagination bar for the previous and next pages; with focus in the bar, [ and ] move between them.
    • Every component part has a data-slot to style it by, except sidebar rows, which stay bare so large sidebars stay light.
    • Components wrap long words, URLs and labels instead of overflowing on phones.
    • Text meets 4.5:1 contrast in light mode, Steps are a real list, manual Tabs render one tab list and pair each tab with its panel.
    • Pages mirror correctly in right-to-left languages; code stays left to right.
    • On phones, sites with several sections show them as tabs under the header.
    • Thin, theme-coloured scrollbars.
    • PageActions renders extra actions passed as children; the layout passes the Copy MCP URL action that way.

    Existing sites keep their look. nimbus-docs migrate lists optional steps to adopt it, the lighter sidebar rows, and the new favicons and asset caching. The registry adds a variants lib that Badge and Button install with them.

  • #278 b6d4837 Thanks @MohamedH1998! - - Route files say how they render. nimbus-docs check reports each route Nimbus manages whose file disagrees with rendering, and check --fix rewrites it: the prerender line, getStaticPaths on built routes only, and the collection name in a collection route’s page helper. Without rendering, Nimbus builds every one of these routes ahead of time, a collection route such as src/pages/sdk/[...slug].astro included. rendering still wins at build, which now warns once and lists the files.

    • A built dynamic route with no getStaticPaths fails the build, naming the file; Astro can’t build it.
    • The page helpers take the collection as a second argument, such as getCollectionPage(Astro, "sdk") or getApiRoute(Astro, "api", { homeChunkSize }), so a request-rendered route needs no getStaticPaths to say which collection it serves. A route whose getStaticPaths and helper name different collections fails with nimbus/collection-route-mismatch.
    • add adapter-* updates route files after setting rendering, and its recipes run check --fix.
    • outdated and diff compare starter route files in the site’s own mode, so a route check --fix edited doesn’t read as a local change.
    • The starter’s Markdown, llms.txt and docs page routes drop export const prerender = true; the site’s output and rendering decide how they render. A scaffold with a server adapter writes its route files in the mode its rendering gives them.
  • #284 f256109 Thanks @MohamedH1998! - - A new site can include an API reference: --api adds one at /api, from your OpenAPI 3.x file (--api ./openapi.yaml) or a sample, and --template api makes it the whole site, at /. Without flags, the scaffolder asks what the site includes, and it refuses a spec that isn’t OpenAPI 3.x before writing anything.

    • AGENT.md in a site with an API reference says where its spec and route are; a site that is only the reference has no docs-writing sections.
    • The starter’s header shows Docs and API reference tabs when a site has an API reference beside its docs.

Patch Changes

  • #282 e983040 Thanks @MohamedH1998! - - The package READMEs describe Nimbus as the authoring tool for docs, with the CLI by task and the scaffolder’s options.

  • #244 17bf1ce Thanks @MohamedH1998! - - NIMBUS_BUILD_ONLY=docs-es builds one collection, or a comma-separated set, and leaves the others empty; dev, sync and check ignore it with one notice.

    • A slice without the docs collection writes its sitemap, search bundle, stylesheet, assets and llms-full.txt under its prefix, and drops the root files the root slice serves.
    • The root slice’s llms.txt lists every collection’s llms.txt, and search merges the other slices’ indexes at runtime.
    • nimbus-docs lint checks links into other slices against the previous build’s routes, as warnings.
    • A slice build fails on an unknown collection, and on docs version collections split across slices. Slices work under Astro’s base: every URL a slice serves and advertises is under it.
    • The route list nimbus-docs lint checks against reads _redirects where the Cloudflare adapter moves it when the site has a base, so redirects stay known to link checking.
    • searchIndex in virtual:nimbus/config names the search bundles as served URLs, base included. The starter’s search provider loads its slice’s bundle and merges the others.
    • A guide, “Build one locale or one part”, with the Worker and zone routes per slice and a workflow that builds the slice a pull request touched.
  • #285 d45764d Thanks @MohamedH1998! - - migrate’s redesigned-starter step lists src/components/logo.ts, which the new Logo.astro imports.

    • Search results for API pages keep an operation’s name, method and path apart, and no longer index the API home filter’s Retry button.
  • #287 8758eeb Thanks @MohamedH1998! - - lint and check accept relative links between a content source’s pages, which the build turns into page URLs.

    • Search in a slice of several collections skips the other collections’ bundles instead of failing. @cloudflare/nimbus-docs/client exports mergeSearchIndexes, which the starter’s search provider uses.
    • API operation pages keep field names, types and labels apart in search, and leave the expand controls out.
    • The search button’s accessible name starts with its visible label, and API pages name their sidebars.
  • #243 5604125 Thanks @MohamedH1998! - - agents: { mcp: true } serves a remote MCP server at /mcp with list_pages and get_page over the published Markdown, plus a Server Card at /mcp/server-card, a line in llms.txt and an entry in the AI catalog. It needs a server adapter and @modelcontextprotocol/server; nimbus-docs check reports a missing SDK.

    • Docs pages in the starter show a “Copy MCP URL” page action that copies the server URL when the server is on. On an existing site, run nimbus-docs diff src/components/ConnectMcp.astro --apply and nimbus-docs diff src/components/connect-mcp.client.ts --apply, then pass {capabilities.mcpUrl && <ConnectMcp />} to <PageActions> in src/layouts/DocsLayout.astro, as the Remote MCP server guide shows.
  • #287 8758eeb Thanks @MohamedH1998! - - add adapter-cloudflare on a pnpm site declines workerd’s build script first, so the install no longer fails.

    • A slice’s Markdown images are published under its prefix, and Markdown images load in astro dev.
    • WebMCP search covers every slice, like the search dialog. On an existing site, pass searchIndex to it as the starter’s WebMCP.astro does.
    • Search excerpts for request-rendered pages read as text, not Markdown syntax.
    • add --overwrite names the files that carry your edits.
  • #260 0c31e84 Thanks @MohamedH1998! - - add --overwrite without a terminal keeps components you’ve edited and exits 1; --overwrite --yes replaces them and says how many carried edits.

    • add a b installs both; an unknown slug stops before anything is installed.
    • check says an optional upgrade stays listed until migrate records the version as reviewed.
    • New pnpm sites build pages with local images: sharp is a starter dependency.
    • astro build --root <site> from another folder finds the social-card font.

create-nimbus-docs 0.7.13

Patch Changes

  • #225 6832653 Thanks @MohamedH1998! - Use the matching PR registry in on-demand preview scaffolds.

  • #257 e9a4360 Thanks @MohamedH1998! - - New Cloudflare projects, and nimbus-docs add adapter-cloudflare when wrangler.jsonc has no valid date, get a compatibility_date the installed Workers runtime supports instead of today’s date, so local dev starts.

create-nimbus-docs 0.7.12

Patch Changes

  • #229 a04304c Thanks @MohamedH1998! - - A page or reusable snippet with only frontmatter builds, and its Markdown version is just its title and source.

    • A snippet included inside a list item or quote keeps that structure in the page’s Markdown version.
    • llms.txt names each section for its index page’s title, such as “Guides” instead of guides.
    • Documentation search results link to the page itself instead of a URL ending in #, and excerpts no longer include the page actions.
    • The Markdown version of an API page names each field as the page does, with its full coordinate beside it for citing.
  • #232 d655e86 Thanks @MohamedH1998! - - API pages link to the previous and next page in sidebar order, even when a group is collapsed.

    • Error responses start collapsed; a link to one, or to a field inside it, opens it.
    • A sidebar link to an API or docs-version mount, such as /api, no longer warns.
    • Operations that fall back to a coordinate route print one summary line, so other warnings stay visible.
    • Samples and the endpoint card keep a server URL’s query after the path.
    • Response toggles meet 4.5:1 contrast in light mode, field anchors work on touch screens, and “Authorisation” reads “Authorization”.
  • #211 4a841cb Thanks @MohamedH1998! - - Add bundle: false to an api entry to serve a very large or many-version API from static assets instead of the server bundle. Unchanged pages are shared across versions, and unchanged versions aren’t prepared again on rebuild. Needs src/live.config.ts registering apiPagesLoader from @cloudflare/nimbus-docs/live; the build shows the snippet. The build suggests the option when an API’s bundled page data passes 16 MiB.

    • Add getVersionSwitchUrl and getApiVersionHead for version pickers and heads in every rendering mode; the starter’s picker and API layout use them.
  • #212 94ebe52 Thanks @MohamedH1998! - API pages show the sidebar filter. With sidebar: "on-demand" it also finds pages the sidebar hasn’t loaded.

  • #214 825ffcf Thanks @MohamedH1998! - API reference pages show the version picker for versioned APIs, in the sidebar and the mobile navigation.

  • #240 381b37a Thanks @MohamedH1998! - - og:image:width and og:image:height describe the image: generated cards stay 1200 × 630, a socialImage file in public/ is measured at build time, and any other image gets no size tags. NimbusHead takes socialImageSize to set them for an image Nimbus can’t measure.

    • The sitemap has <lastmod> on every documentation page, from frontmatter lastUpdated or the page’s last commit, and /sitemap.xml is a copy of sitemap-index.xml unless the site serves its own.
    • The starter’s BaseLayout passes socialImageSize through to NimbusHead, and the 404 page recipe writes the new title and noindex.
    • On a shallow clone, pages get no git dates instead of the wrong one, and the build says how to fetch the history.
    • The 404 page’s title is Page not found | <site> and the page is noindex.
  • #233 1f2ce43 Thanks @MohamedH1998! - - New sites open content images at full size on click. On an existing site, run nimbus-docs add image-zoom and render <ImageZoom /> in src/layouts/DocsLayout.astro.

  • #224 79b05ef Thanks @MohamedH1998! - - New markdown.features option turns on Sätteri syntax, such as { headingAttributes: true } for ## Install {#install} or { math: true }. Pages, generated Markdown, reusable snippets and lint all follow it. New sites start with heading ids on.

    • Generated Markdown drops {/* comments */}.
    • Invalid MDX reports the file, line and fix instead of an internal error.
  • #236 fb759c5 Thanks @MohamedH1998! - - With the section route at src/pages/[...section]/llms.txt.ts, each sub-folder gets its own llms.txt, and its parent’s index links to it under “Sections”. New sites have this route; a [section] route keeps today’s one index per top-level section.

    • An llms-full.txt over 25 MiB becomes an index of one llms-full.txt per section, split further where a section is still too big, so the site deploys to Cloudflare.
    • LlmsEndpointReference (from @cloudflare/nimbus-docs/agent-endpoints) adds surface: "full" on section references, for the per-section llms-full.txt files.
  • #216 647471a Thanks @sansynx! - Keep version-switcher entries exposed as navigation links, with the current page identified by aria-current, instead of listbox options

  • #230 25d21cf Thanks @MohamedH1998! - - Server scaffolds for Node, Vercel, and Netlify render docs pages on request, so Markdown negotiation works on them.

    • Scaffold into . or an empty folder, including a freshly cloned repository.
    • New repositories get a first commit; scaffolding inside an existing repository no longer creates a nested one.
    • npm create installs a handful of packages instead of the whole framework.
    • A missing package manager fails before anything is written, and a mistyped flag suggests the right one.
    • Yarn sites ignore .yarn/ the way Yarn recommends, and pin Yarn inside a folder that pins another package manager.
    • The starter’s AGENT.md explains sidebar groups, order, and links.
    • nimbus-docs check and --help show commands for your package manager.
  • #224 79b05ef Thanks @MohamedH1998! - Starter fixes:

    • The theme toggle no longer submits a surrounding form, reports its state to screen readers, and still switches when storage is blocked.
    • Closing a dialog no longer releases another overlay’s scroll lock.
    • “Copy page” works in Safari, and a failed command copy shows it failed.
    • In search, Enter on the close button closes the dialog, and status messages are announced.
    • <Render> params can’t replace registered components; small fixes to breadcrumbs and the mobile table of contents.
    • Banner content is rendered as written, like the rest of the site’s content.
  • #223 c39fdfc Thanks @MohamedH1998! - The docs version picker no longer appears on pages outside the docs versions, such as API reference and blog pages.

create-nimbus-docs 0.7.11

Patch Changes

  • #204 a8e0d02 Thanks @MohamedH1998! - - Agent files follow the rendering policy: a page’s index.md/index.mdx renders in its collection’s mode, a section’s llms.txt in the mode of the collection it lists, llms.txt/llms-full.txt in rendering.default, and homepage Markdown in the root collection’s mode. Mounted collections get their own agent routes, copied starter routes keep working unchanged, and static sites don’t change.

  • #201 855091c Thanks @MohamedH1998! - Add samples.generate to choose which languages Nimbus generates code samples in, and fix generated samples and examples that sent different values from the page.

    • samples.generate: set samples: { generate: ["curl"] } on an api entry to generate only a cURL request, instead of cURL, TypeScript, and Python, on every operation. [] generates none, so operations show only their authored x-codeSamples. The default is unchanged: all three. samples.keepGenerated still picks the generated languages shown next to authored samples; each of its languages must now also be in generate.
    • Python and TypeScript bodies: in Python, a string containing a newline, carriage return, or tab no longer breaks the sample with a SyntaxError, and object keys with quotes or backslashes stay valid. In both languages, a backslash is no longer read as an escape (C:\\temp\\new was sent with a tab and a newline), including in text bodies such as text/plain. A JSON body of false, 0, or "" is now sent instead of dropped.
    • cURL bodies: a body containing ' was passed through an unquoted heredoc, so the shell collapsed backslashes and ran $NAME and backticks in the example when the sample was pasted. The heredoc is now quoted.
    • Form bodies: application/x-www-form-urlencoded bodies were dropped from every sample and are now sent in all three languages. A property with an encoding entry follows OpenAPI: style, explode, or allowReserved select query-style serialization, and an entry without them sends the value as its contentType, so an object is sent as JSON. A property without an entry nests objects in brackets (metadata[plan]=pro), repeats the name for each item of a scalar array (tags=a&tags=b), and indexes arrays of objects (items[0][price]=p_1). A string example is read as an encoded form; a form example with no fields sends no body. multipart/form-data bodies are still omitted.
    • Form encoding: explicit JSON content types serialize scalar values as JSON before form encoding. allowReserved: true preserves valid percent-encoded triples and safe reserved characters without double encoding; form delimiters and unsafe characters remain encoded.
    • cURL text bodies: a body starting with @ is sent as text instead of uploading the file it names.
    • Joined form values: a ,, |, or space inside an array item no longer reads as a separator with explode: false, unless allowReserved: true leaves a , unencoded.
    • Empty form field names: cURL now sends =value like the other languages.
    • Request example: an operation without code samples, such as with samples.generate: [], shows its request example on the page.
    • Swagger 2.0: a Swagger 2.0 document now fails the build with Swagger 2.0 isn't supported. Convert it to OpenAPI 3.x first. and the document’s path, instead of building pages with no server URL, unknown parameter types, and missing response schemas. The API reference docs show how to convert one before each build.

    If the installed httpsnippet writes a body differently from the layout Nimbus corrects, that language’s sample is left out rather than shown with an unescaped body. Authored x-codeSamples are unchanged. New sites scaffolded by create-nimbus-docs use this release.

  • #207 d77ff08 Thanks @MohamedH1998! - - A request-rendered API family can set versionMode: "query": one URL per operation, the version in ?api-version= (absent means the default, unknown is 404, hidden versions reachable by query only). Generated same-version links carry the query; discovery covers the default version at version-free URLs; non-default pages are noindex with the default counterpart as canonical. Path mode stays the default and is unchanged.

    • API version ids may contain dots, and must start and end with a letter or digit. An id like -v1 or v1- now fails validation; rename it.
  • #195 b685092 Thanks @MohamedH1998! - - Add discovery files, homepage Markdown, and Link headers to all sites.

    • Add editable Content Signals to the starter’s robots.txt.
  • #205 7b76521 Thanks @MohamedH1998! - - Sidebar groups are native details/summary with one class per row type, a CSS caret, and no animation; a group’s landing page lists as an “Overview” child row. Each page renders one sidebar tree, shared by the desktop rail and the mobile drawer, and a large sidebar’s page HTML drops by roughly 80%. The state scripts drive the old copied markup too.

  • #203 62d7956 Thanks @MohamedH1998! - - Only collections made with Nimbus’s helpers (docsCollection(), componentsCollection(), withNimbusMarkdown()) become pages; every other collection is plain Astro data with no naming rule, and the _ prefix convention is removed. If rendering is set, a site’s own page collection with a catch-all route now needs an entry in rendering.collections.

  • #196 2e200ce Thanks @MohamedH1998! - - The starter registers a search_documentation WebMCP tool, backed by the site’s Pagefind index.

  • #200 c17a945 Thanks @MohamedH1998! - - On server output, a request-rendered page returns its Markdown when the request prefers text/markdown; the URL stays canonical and both forms send Vary: Accept.

    • The starter homepage renders on request when a collection already does under server output, so it negotiates too. All-build homepages remain prerendered in production.
    • Preserve owner static-header rules while adding discovery fields, and support prose request rendering and published Markdown negotiation through Astro adapters and standard HTTP on non-Cloudflare deployments.
    • Recreate the isolated browser-agent Pagefind instance after observable search failures and give accurate connection/reload guidance. Pagefind’s swallowed index-chunk failures remain a documented upstream limitation.
    • Include a release-matched agent-interface guide in the framework package and point generated project instructions to it.
  • Updated dependencies [a8e0d02, 855091c, d77ff08, 86b573a, b8a8dbd, b685092, 7b8c3e8, 7b76521, 62d7956, 2e200ce, c17a945, bcc1b1e, bcfe446]:

    • @cloudflare/nimbus-docs@0.17.0

create-nimbus-docs 0.7.10

Patch Changes

  • #191 11ebb39 Thanks @MohamedH1998! - The api-code-rail component keys its sample picker by sample id, so several samples in one language each get their own option. It remembers the reader’s language, not the exact sample: a saved language opens that language’s first sample, and the choice syncs across open tabs. ?lang= accepts a sample id or a language. With packages before 0.16.0, which give samples no id, the picker keys by language as before.

    api-code-rail is distributed through the registry, not the scaffolded template. Existing sites update it with nimbus-docs add api-code-rail, choosing Overwrite for ApiCodeRail.astro and code-rail.client.ts.

  • #189 5c96da8 Thanks @MohamedH1998! - Refinements to the starter’s API reference components:

    • Status and method colours are retuned. Method chips use a tint and a 25% line from the same palette (--nb-m-*-tint, --nb-m-*-line).
    • Field rows fold like code. A collapsed row ends in { 4 properties }; an open row shows { on its signature and } under its children, centred on the guide line. “required” sits before the brace and never wraps away from it.
    • Union fields drop the variant list from their type text, since the list below names each variant. The full names show as a tooltip on the field name.
    • Constraints and default share one line. Field rows no longer show examples, because the code rail’s request and response examples already include them. Long values wrap instead of widening the page.
    • The code rail’s response toggle is a compact segmented control, and the header and response rows share 8px insets.
    • LayerCard takes orientation="horizontal", which ApiEndpointCard uses. Badge gains an outline variant.
    • Medium weight replaces semibold, letter-spacing is removed, and hover states no longer animate colour.
  • #181 71ff242 Thanks @MohamedH1998! - Add sidebar to api entries, so large API references stop putting the whole navigation tree in every page. "full" (the default) keeps today’s behavior. "on-demand" includes top-level items plus the current page’s branch. A collapsed group opens in place and loads its rows from its own page, where the sidebar lists them open; a group without a page, such as an x-tagGroups category, loads them from the API overview. Without JavaScript, a collapsed group’s label still links to its page. The mode is read from the api entry in the Nimbus config, including for sites that pass their entry to apiCollection({ … }).

    api: [{ collection: "api", spec: "./src/api/openapi.yaml", sidebar: "on-demand" }],

    ApiNavItem gains optional deferred and childrenHref fields. @cloudflare/nimbus-docs/client adds initNavSidebar(), and @cloudflare/nimbus-docs/runtime adds navStateScript, an inline script, and navBuildId, which a sidebar renders as data-nb-nav-build. Together they keep a sidebar’s open groups, loaded rows, and scroll position from page to page for the session, restored before the page paints and without replaying animations. Cached rows are tied to the build that rendered the page, so rows cached before a deployment are never shown after it, including on client-side navigation. apiCollection({ … }) warns when it sets a sidebar the config doesn’t match.

    A tag’s x-displayName now sets its label in the sidebar, page title, and breadcrumbs, while its name still decides its coordinate and route. This lets a spec group hundreds of flat tags under readable parents.

    Group pages now list their subsections (ApiSectionPage.sections), in HTML and Markdown, so every page stays reachable without the sidebar. The API overview no longer links an x-tagGroups category to itself: it lists the category’s member sections instead. Both changes apply in every sidebar mode.

    Starter components: ApiSidebarItem renders a deferred group as a closed group with an empty panel, and ApiLayout mounts initNavSidebar and the restore script for both the desktop rail and the mobile drawer. The API sidebar now keeps the groups a reader opened and its scroll position from page to page in every mode, and no longer fades or replays group animations during navigation. The mobile drawer moved ahead of the desktop rail in ApiLayout, so one inline script restores both before the page paints. ApiBody lists a group page’s subsections.

    Existing sites keep working unchanged with the default sidebar: "full". "on-demand" needs the new API components: with older ones, the build fails and names the outdated files. Update them with nimbus-docs add api-layout, choosing Overwrite for api-layout and api-sidebar. nimbus-docs add now warns when the registry serves components from a different release than the project’s @cloudflare/nimbus-docs.

  • #182 9d2051c Thanks @MohamedH1998! - - Cloudflare server scaffolds depend on @astrojs/cloudflare@~14.3.0, matching check.

  • Updated dependencies [11e6d85, 18b0005, 9f54406, 71ff242, a14c58f, 278a3ff, e5fe9f3, aff3e9f, 9d2051c]:

    • @cloudflare/nimbus-docs@0.16.0

create-nimbus-docs 0.7.9

Patch Changes

  • #179 8ded65b Thanks @MohamedH1998! - - Yarn 2+ scaffolds install. A site scaffolded with yarn dlx or yarn create pins that Yarn in package.json packageManager, and the install runs without yarn dlx’s Plug’n’Play hooks. Before, corepack ran Yarn 1, the install failed with Cannot find module 'pnpapi', and the suggested yarn install made a Yarn 1 project. --package-manager yarn pins Yarn too, when yarn in the new directory runs Yarn 2+.
    • A Yarn site created inside another Yarn project that doesn’t list it as a workspace gets its own empty yarn.lock and installs, instead of failing with “doesn’t seem to be part of the project”. A workspace member still installs as a member.
    • When Yarn holds back a release published in the last day (YN0016, its npmMinimalAgeGate setting), the install failure says so.
    • Yarn sites ignore .yarn/install-state.gz.
    • Search works on sites whose Astro base has no trailing slash, such as base: "/docs". Before, the dialog loaded /pagefind/pagefind.js instead of /docs/pagefind/pagefind.js and said “Search is available after a production build.” Existing sites can take the fix with npx @cloudflare/nimbus-docs diff src/components/ui/search/providers/pagefind.ts --apply.
    • The empty starter’s home page no longer adds a second H1 under its title.
    • The starter’s AGENT.md:
      • Its upgrade steps now pull in starter fixes with outdated and diff --apply.
      • Feature recipes run with add <feature-slug> --print.
      • The Cloudflare audit is split into static and server output (server sites have no assets.directory).
      • It says a server site’s check stays partial after a build, and what to do about an error with no fix.
    • The welcome page names @cloudflare/nimbus-docs/content.
  • Updated dependencies [8ded65b]:
    • @cloudflare/nimbus-docs@0.15.2

create-nimbus-docs 0.7.8

Patch Changes

  • #176 3b3d33f Thanks @MohamedH1998! - New Cloudflare server sites install @astrojs/cloudflare 14.3, which fixes a crash on the first astro dev with a cold cache (“Dev server process exited before becoming ready”).

  • #177 adb8efe Thanks @MohamedH1998! - Add the copy-prompt registry component. Run nimbus-docs add copy-prompt to install CopyPrompt, a one-line prompt with a Copy prompt button for readers to paste into an AI coding agent. New sites don’t include it by default.

  • #173 60d0af3 Thanks @MohamedH1998! - - Templates used without the scaffolder include nimbus.json with the reviewed Nimbus version, so their builds no longer fail with “Nimbus has no reviewed upgrade baseline”.

    • npm, yarn, and bun sites no longer include pnpm-workspace.yaml.
    • Yarn sites get a .yarnrc.yml with nodeLinker: node-modules. Before, Yarn 2+ installed in Plug’n’Play mode, and the site failed to build or start the dev server.
    • Unknown --content and --package-manager values are rejected with the valid choices. Before, a typo such as --package-manager pnmp scaffolded a site with no install and still printed “Done”.
    • Without a terminal, the scaffolder lists every question it can’t ask, each with the flag that answers it, and suggests --yes, instead of failing with uv_tty_init returned EINVAL. Flags that answer every question, including --git or --no-git, work without --yes.
    • The starter’s AGENT.md points at the Icon component the starter uses, @cloudflare/nimbus-docs/components/Icon.astro, instead of astro-icon, and at @cloudflare/nimbus-docs/content for the docs schema. Its commands use npx @cloudflare/nimbus-docs, which runs the project’s installed version with any package manager.
    • The starter’s Getting Started page shows the create command.
  • #178 7d606e3 Thanks @MohamedH1998! - Behavior changes

    • A failed dependency install exits 1. The scaffolder keeps the project and prints the commands that finish the setup. Before, it printed “Done” and exited 0, so CI treated the site as ready.
    • Unknown flags, such as --output server, stop the scaffolder with the list of valid flags. Before, they were ignored and the site was scaffolded without them.
    • --git with --no-git, and --deploy with --adapter, stop the scaffolder. Before, --no-git won and --deploy was ignored with a warning.
    • A second directory argument stops the scaffolder. A leading --, as pnpm passes it through, is accepted, so pnpm dlx … -- my-docs --yes no longer ignores --yes.

    First run

    • yarn dlx with Yarn 2+ can scaffold from a PR preview. Yarn now extracts the package instead of keeping it in a zip, where the preview’s bundled templates couldn’t be read.
    • Pressing Enter at the directory prompt uses my-docs, as shown. Before, it failed with “Directory is required”.
    • bun’s install output no longer shows in the scaffolder’s output, and “Next steps” no longer has an empty line where the install command would be. An install’s own output shows only when it fails.
    • The empty starter ships one home page, src/content/docs/index.mdx, so its first nimbus-docs check no longer warns about a duplicate route at /. Before, a landing page shadowed it and linked to pages the empty starter doesn’t have.
    • The starter’s home page links to its pages through their entries, so the links follow trailingSlash and a card whose page you delete disappears instead of linking to a 404.
    • The starter’s AGENT.md says to set site before running check in a loop, and ends the loop when only fixes that need input remain, so an agent no longer loops on the placeholder site. It also says components can be imported in the .mdx file that uses them instead of registered.
  • Updated dependencies [adb8efe, 41376dd, fd53431, 6637381, ae346f0]:

    • @cloudflare/nimbus-docs@0.15.1

create-nimbus-docs 0.7.7

Patch Changes

  • #165 05efc7a Thanks @MohamedH1998! - The API reference components show whether a request body is required, and its description, beside the request body heading. A response with several media types shows one body per media type, each labeled with its type and with its own example, in the same stacked layout as additional request bodies. ApiFieldList accepts optional required and descriptionHtml props for this.

  • #164 b8f4d05 Thanks @MohamedH1998! - The starter’s page route takes markdownUrl and ogImageUrl from getDocsPage(), its OG route builds cards from getOgImagePages(), and its three llms.txt routes call llmsRoute(), llmsFullRoute(), and llmsSectionRoute(). src/utils/agent-endpoint-response.ts is removed. Built output is unchanged.

  • #161 b45ca22 Thanks @MohamedH1998! - The starter’s src/pages/[...slug]/index.md.ts and index.mdx.ts routes now use markdownRoute() and markdownSourceRoute(), so they serve the Markdown and source versions of every collection. Generated files are unchanged.

  • Updated dependencies [982a47d, c26b52b, 05efc7a, 2223c45, 9eef696, b8f4d05, b45ca22]:

    • @cloudflare/nimbus-docs@0.15.0

Type to search…

↑↓ navigate↵ selectEsc close