> Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

---
title: "Changelog"
description: "Release notes for Changelog."
mode: "center"
---

<Aside full>
  <Note>
    This changelog is generated automatically from the [GitHub releases](https://github.com/remorses/holocron/releases) page.
  </Note>
</Aside>

<Update id={"@holocron.so/vite@0.17.1"} label={"Jun 2, 2026"}>
  ## @holocron.so/vite\@0.17.1

  1. **Fixed OpenAPI double-framed code panels** — when an operation defined multiple named request body or response examples, `RequestExample` and `ResponseExample` wrapped them in a `CodeGroup` inside a `CodeCard`, producing a double frame. Now they render as a single tabbed panel with each example as a named tab.

  2. **Fixed app entry CSS crash without the Vite plugin** — importing `@holocron.so/vite/app` outside the holocron Vite plugin (e.g. inside a `@cloudflare/vitest-pool-workers` test running in workerd) crashed with `Cannot find module './styles/globals.css'`. The import now resolves from the package `src/` directory which is stable from both `src/` and `dist/`.

  3. **Hidden tab scrollbars and press feedback** — the horizontal tab scroll container no longer shows a scrollbar on overflow, and tab buttons no longer flash a press/active highlight.
</Update>

<Update id={"@holocron.so/vite@0.17.0"} label={"Jun 2, 2026"}>
  ## @holocron.so/vite\@0.17.0

  1. **Changelog tab generated from GitHub releases** — add a tab with a `changelog` URL and Holocron fetches the repository's published releases at build time, rendering one page with a Mintlify-compatible `<Update>` entry per release (newest first, drafts skipped):

     ```jsonc
     {
       "tab": "Changelog",
       "changelog": "https://github.com/owner/repo"
     }
     ```

     The generated page uses `mode: center` (left nav hidden) with a right-side notice explaining it's generated from GitHub releases. Release notes are Markdown and are safely escaped so a release body can never break the page. Set a `GITHUB_TOKEN` / `GH_TOKEN` to avoid rate limits; the token is only ever sent to `api.github.com`. Transient GitHub outages render a warning page instead of failing the build.

  2. **Page mode frontmatter (`mode: center`)** — hide the left navigation sidebar per-page, matching Mintlify's `mode` layout control:

     ```mdx
     ---
     title: Landing
     mode: center
     ---
     ```

     Holocron collapses Mintlify's five mode values into two real layouts: `default` / `wide` / `frame` keep the left nav; `center` / `custom` hide it and center the content. All five names are accepted so existing Mintlify frontmatter works unchanged.

  3. **Static page prerendering with `rendering: static`** — opt a page into build-time prerendering. Static pages render to HTML + RSC data at build for faster delivery and cheaper hosting. Use it for pages whose content never depends on the incoming request:

     ```mdx
     ---
     title: Overview
     rendering: static
     ---
     ```

     The default is `ssr`, which renders on every request so pages can react to per-request data like cookies.

  4. **Multiple OpenAPI examples render as switchable tabs** — when an operation defines several named examples (the `examples` map), Holocron renders all of them as a tabbed code group instead of showing only the first. Example names become the tab labels:

     ```yaml
     responses:
       '201':
         content:
           application/json:
             examples:
               Confirmed order:
                 value: { id: 'order-001', status: 'pending' }
               Empty order:
                 value: { id: 'order-002', items: [] }
     ```

  5. **Markdown in OpenAPI descriptions** — `description` fields (Markdown by spec) now render as formatted HTML — headings, lists, inline code, links, emphasis, code blocks — everywhere they appear: endpoint summary, parameters, schema properties, request bodies, and responses. The page `<meta>` description is still flattened to clean plain text. (Closes #96)

  6. **Mix MDX pages with endpoint pages in OpenAPI tabs** — an API Reference tab can now interleave hand-written MDX pages (overviews, authentication guides) with auto-generated endpoint pages.

  7. **`/index` paths resolve to their canonical href** — the `*/index` forms now 308-redirect to the canonical href at runtime (query strings preserved) and count as valid targets for broken-link detection, so links to `/guide/index` no longer 404 or get flagged as broken.

  8. **New `@holocron.so/vite/prism` export** — reuse Holocron's vendored Prism bundle (prismjs core + \~300 grammars in one ESM module) to highlight code outside MDX, without shipping a duplicate bundle:

     ```tsx
     import { Prism } from '@holocron.so/vite/prism'

     const html = Prism.highlight(code, Prism.languages[lang], lang)
     ```

  9. **`bleed` prop on CodeBlock accepts `'both' | 'right' | 'none'`** — control how a code block bleeds into the page margins. `'both'` (or `true`) bleeds both sides, `'right'` only the right margin, `'none'` (or `false`) stays inside the parent.

  10. **Scroll-driven fade mask on the left navigation sidebar** — the sidebar top/bottom edges fade as you scroll.

  11. **Collapsible TOC headings in the left sidebar** — nested headings can now collapse and expand.

  12. **Broken link validation runs during builds** — links pointing to non-existent pages are reported at build time.

  13. **`base` slug prefix accepts a leading slash** — the `base` field on OpenAPI and Changelog tabs is a slug prefix, so a leading slash is now allowed and ignored (`"/docs/api"` behaves like `"docs/api"`); trailing slashes are trimmed. The field was renamed from `openapiBase` to `base` and is now shared across virtual-tab providers.

  14. **`<Above>` hero spans the full grid width** including the side rails.

  15. **Restyled inline code pills** — GitHub-style with baseline alignment; body prose softened so bold text and headings stand out at full foreground color.

  16. **Seamless HMR for `globals.css` edits** — editing Holocron's global stylesheet hot-reloads without a full page refresh.

  17. **Skip auto H1 injection for non-default page modes and JSX-first pages.**

  18. **Fixed per-section asides scoped on heading-first pages.**

  19. **Updated spiceflow to 1.26.0-rsc.3**
</Update>

<Update id={"@holocron.so/cli@0.15.0"} label={"Jun 2, 2026"}>
  ## @holocron.so/cli\@0.15.0

  1. **Clear deploy error when a subscription is required** — when a deploy exceeds the free plan (a preview deploy, or a 2nd production deploy on the free tier), the server returns a `SUBSCRIPTION_REQUIRED` error. The CLI now surfaces the server's actionable message plus the upgrade URL instead of a generic `Failed to create deployment`:

     ```bash
     npx -y @holocron.so/cli deploy
     # A Holocron Pro subscription is required for this deployment.
     # Subscribe to continue: https://holocron.so/...
     ```

  2. **Clearer expired-session message on `login`** — when a saved session token is expired or invalid, the CLI now tells you to run the login command again instead of failing with a confusing error.

  3. **Updated spiceflow to 1.26.0-rsc.3**
</Update>

<Update id={"@holocron.so/vite@0.16.0"} label={"May 27, 2026"}>
  ## @holocron.so/vite\@0.16.0

  1. **New `@holocron.so/vite/mdx` export** — import Holocron MDX components in your own `.tsx` files:

     ```tsx
     import { Card, CardGroup, Callout, Steps, Step } from '@holocron.so/vite/mdx'
     ```

     Useful when building custom components that compose Holocron primitives. In MDX pages, all components remain available globally without imports.

  2. **Image processing preserves user-specified dimensions** — when you set `width` or `height` on `<Image>` or `<img>` in MDX, those values are now preserved instead of being overridden with the natural image size. When only one dimension is provided, the other is computed proportionally from the aspect ratio.

  3. **SVG images skip placeholder generation** — SVG files no longer get a pixelated 16px rasterized WebP placeholder since SVGs are vector and render instantly.

  4. **Fixed images in flex containers** — images inside `<Marquee>`, card grids, and other flex layouts now use a definite pixel width capped at 100% instead of `width: 100%`, which caused circular sizing dependencies in flex items.

  5. **AI logo proxy moved to `/holocron-api/` namespace** — avoids collisions with user API routes.

  6. **AI logo cache improvements** — stale SVG fallback responses are now evicted from the Cache API, and SVG fallbacks are never cached so retries can fetch the real AI-generated image.

  7. **Reduced nav group font size** — sidebar group titles decreased from 13px to 12px for a tighter sidebar.

  8. **Thinner search clear icon** — strokeWidth 1.5 instead of 2.

  9. **Reduced chat input placeholder opacity** — 75% for a subtler appearance.

  10. **Removed vertical margin from Marquee** — lets the component inherit spacing from its parent layout gap.
</Update>

<Update id={"@holocron.so/vite@0.15.0"} label={"May 27, 2026"}>
  ## @holocron.so/vite\@0.15.0

  1. **Keyboard shortcut `d` to toggle dark mode** — press `d` anywhere on the page to switch between light and dark mode. Skips when focus is in an input, textarea, or contenteditable, and ignores modifier combos (Cmd+D, Ctrl+D, etc.)

  2. **Styled `<blockquote>` for plain MDX** — standard markdown `> quoted text` now renders with a left border accent and italic muted text. GitHub-style callouts (`> [!NOTE]`, etc.) still render as Callout components

  3. **New `--type-nav-group-size` CSS variable** — controls font-size of sidebar group titles. Override it to customize sidebar typography:

     ```css
     :root {
       --type-nav-group-size: 14px;
     }
     ```

  4. **Smarter AI chat assistant** — gives shorter, messenger-style answers. Prefers linking to docs pages over re-explaining content

  5. **Fixed ai-logo proxy crash in Dynamic Workers** — `caches.open()` could throw in hosted environments where Cache API is unavailable, causing a 500. Now falls back to direct fetch

  6. **Fixed theme shortcut firing during input** — components that call `preventDefault()` no longer accidentally trigger the dark mode toggle

  7. **Removed paragraph opacity 0.82** — body text no longer renders at reduced opacity

  8. **Fixed subpath externalization in client builds** — `addNoExternal` for `@holocron.so/vite` now runs in all Vite environments (client, ssr, rsc)

  9. **Updated spiceflow to 1.26.0-rsc.0**
</Update>

<Update id={"@holocron.so/cli@0.14.1"} label={"May 27, 2026"}>
  ## @holocron.so/cli\@0.14.1

  1. **Updated spiceflow to 1.26.0-rsc.0**
</Update>

<Update id={"@holocron.so/vite@0.14.3"} label={"May 25, 2026"}>
  ## @holocron.so/vite\@0.14.3

  1. **Fixed spiceflow resolution in strict pnpm workspaces** — spiceflow is a transitive dep of `@holocron.so/vite` and not hoisted in strict pnpm. Virtual modules like `virtual:app-entry` can't resolve bare `spiceflow` imports because they have no filesystem location. A `resolveId` hook now resolves spiceflow from holocron's own source directory.
  2. **Logo text uses heading font** — navbar logo text now uses the configured heading font-family at 22px with weight 560 and tighter letter-spacing.
  3. **Removed preserveSymlinks resolver** — eliminated the custom `@holocron.so/vite/src/*` resolveId hook that was only needed when spiceflow was a workspace dependency.
  4. **Updated spiceflow to 1.25.4-rsc.0**
</Update>

<Update id={"@holocron.so/vite@0.14.2"} label={"May 25, 2026"}>
  ## @holocron.so/vite\@0.14.2

  1. **Logo text uses heading font** — the logo text in the navbar now renders with the configured heading font-family, heavier weight (560), and tighter letter-spacing at 22px, matching the editorial heading style.
  2. **Removed preserveSymlinks resolver** — eliminated custom `resolveId` hooks for `spiceflow` and `@holocron.so/vite/src/*` that were only needed when spiceflow was a workspace dependency. Vite's default resolution now handles everything correctly, fixing transitive dep resolution in strict pnpm workspaces.
  3. **Updated spiceflow to 1.25.4-rsc.0**
</Update>

<Update id={"@holocron.so/vite@0.14.1"} label={"May 25, 2026"}>
  ## @holocron.so/vite\@0.14.1

  1. **DialKit config panel persists open/closed state** — the config panel no longer resets to its default state on page refresh or RSC remount. Open/closed state is saved to localStorage so the panel stays how you left it.
  2. **Reduced main bundle size** — DialKit is now fully lazy-loaded. A stray value import was pulling the entire dialkit package into the eager bundle; switching to `import type` ensures it only loads when the config panel is opened.
</Update>

<Update id={"@holocron.so/cli@0.14.0"} label={"May 25, 2026"}>
  ## @holocron.so/cli\@0.14.0

  1. **Rich `whoami` command with multi-org support** — `holocron whoami` now shows your user info, all organizations with IDs and roles, and projects grouped per org:

     ```bash
     npx -y @holocron.so/cli whoami
     ```

  2. **Multi-org project creation** — `holocron projects create` accepts `--org [orgId]` to target a specific organization. When you belong to multiple orgs and no `--org` is passed, an interactive picker appears.

  3. **Deploy project picker shows org names** — when deploying with multiple projects across orgs, the interactive picker now displays the org name alongside each project.

  Thanks @tanishqkancharla for directing most of the UI changes!
</Update>

<Update id={"@holocron.so/vite@0.14.0"} label={"May 25, 2026"}>
  ## @holocron.so/vite\@0.14.0

  1. **Analytics integrations for 14 providers** — new `integrations` field in docs.json injects client-side analytics scripts. Supports Fathom, Plausible, Pirsch, GA4, GTM, PostHog, Mixpanel, Hotjar, Heap, Segment, Clarity, Amplitude, LogRocket, and Clearbit:

     ```json
     {
       "integrations": {
         "ga4": { "measurementId": "G-XXXXXXXXXX" },
         "plausible": { "domain": "docs.example.com" },
         "fathom": { "siteId": "ABCDEF" }
       }
     }
     ```

  2. **New `<Marquee>` MDX component** — infinite scrolling content strip, available directly in MDX without imports. Supports horizontal and vertical directions, fade edges, configurable speed, and hover deceleration:

     ```mdx
     <Marquee duration={30} fade slowOnHover>
       <img src="/logos/github.svg" />
       <img src="/logos/vercel.svg" />
     </Marquee>
     ```

  3. **`logo.text` config field** — display a site name next to the logo in the navbar:

     ```json
     { "logo": { "light": "/favicon.svg", "text": "My Docs" } }
     ```

  4. **Layout and typography controls in docs.json** — new `layout` (maxWidth, sidebarWidth, columnGap, radius) and `fonts` (fontSize, heading.fontSize) fields for customizing page geometry and font sizes without custom CSS.

  5. **Live config panel on preview deployments** — a DialKit-powered config panel appears in dev mode and on preview deployments, letting you live-tweak colors, layout, fonts, and more.

  6. **Relative-path global anchors with client-side navigation** — anchors pointing to relative paths now use client-side navigation instead of full page reloads.

  7. **Version/dropdown inner tabs visible in the tab bar** — inner tabs inside versions/dropdowns now correctly appear in the header tab bar.

  8. **Search UI improvements** — keyboard-layout-aware shortcut hints, accent border on focus, clear button, and "/" shortcut alongside Cmd+K/Ctrl+K.

  9. **Lazy-loaded Prism.js** — syntax highlighting loaded via dynamic import for faster initial page render.

  10. **Safe-mdx render errors shown in-page during dev** — missing components and invalid JSX now display as a Warning callout directly on the page.

  11. **CSS variable border-radius tokens** — all border-radius values now derive from `--radius`, customizable via `layout.radius`.

  12. **`sidebarTitle` frontmatter** — use a long `title` for SEO while keeping the sidebar label short.

  13. **Fixed ordered list numbering** — lists split by code blocks now continue numbering correctly.

  14. **Fixed theme token cascade** — Holocron tokens now use a low-priority CSS cascade layer so user CSS overrides them properly.

  15. **Fixed sidebar search filtering** — search results update synchronously, fixing flaky states.

  16. **UI polish** — hover background on cards, bottom border on last table row, cleaner active tabs, differentiated sidebar group labels, wider API reference aside panel (460px), hidden line numbers in API reference examples, and more.

  Thanks @tanishqkancharla for directing most of the UI changes!
</Update>

<Update id={"@holocron.so/cli@0.13.0"} label={"May 21, 2026"}>
  ## @holocron.so/cli\@0.13.0

  1. **New `--key` option for `holocron create`** — pass an existing API key to skip the entire cloud setup flow (no device flow login, no project creation, no API key creation). The key is written directly to `.env`:

     ```bash
     npx -y @holocron.so/cli create my-docs --key holo_xxxxxxxxxxxx
     ```

     This enables one-step scaffolding when the key is already known, e.g. from the holocron.so dashboard.
</Update>

<Update id={"@holocron.so/vite@0.13.0"} label={"May 21, 2026"}>
  ## @holocron.so/vite\@0.13.0

  1. **Anchor placement in tabs or sidebar** — anchors now support a `placement` field that controls where they render. `"sidebar"` (the new default) places anchors at the top of the left navigation sidebar with icon and label. `"tabs"` places them in the header tab bar, preserving the previous behavior. You can mix both placements in the same config:

     ```json
     {
       "navbar": {
         "links": [
           { "label": "GitHub", "url": "https://github.com/...", "placement": "sidebar" },
           { "label": "Changelog", "url": "/changelog", "placement": "tabs" }
         ]
       }
     }
     ```

  2. **Copy-to-clipboard button on code blocks** — every fenced code block now shows a copy button on hover in the top-right corner. The button fades in, transitions to a checkmark icon on success, and gracefully handles clipboard write failures in insecure contexts.

  3. **`.md`/`.mdx` extensions stripped from internal links** — links like `[guide](/getting-started.md)` are now automatically rewritten to `/getting-started` at build time. Previously these links were excluded from broken-link validation and would serve raw markdown or 404. Reference-style links and JSX `href` attributes are also handled.

  4. **Dark mode persists across reloads** — a blocking `<script>` now reads the `holocron-theme` cookie before first paint, preventing the theme from flashing or resetting during RSC streaming.

  5. **Stale build artifacts cleaned before each build** — `vite build` now removes old `client/`, `rsc/`, `ssr/` directories from `dist/` before building, preventing stale artifacts from leaking into fresh builds. Cache files are preserved for incremental builds.
</Update>

<Update id={"@holocron.so/vite@0.12.0"} label={"May 21, 2026"}>
  ## @holocron.so/vite\@0.12.0

  1. **Code block meta props: bleed, lines, title, highlight** — fenced code blocks now support meta string options parsed at build time:

     ````md
     ```ts title="vite.config.ts" highlight="3-5" lines=false bleed=true
     import \{ defineConfig \} from 'vite'
     import holocron from '@holocron.so/vite'

     export default defineConfig(\{
       plugins: [holocron()],
     \})
     ```
     ````

     * `title="..."` or bare words → filename/label header above the code block
     * `highlight="1-3,7"` → dims non-highlighted lines with a background overlay
     * `lines=false` → hides line numbers (on by default)
     * `bleed=true` → extends the code block into page margins

  2. **Improved inline code in headings** — inline code inside headings now inherits the heading font size and weight instead of shrinking to `0.875em`. Background pill is hidden, color uses full-contrast `var(--foreground)` to match heading text. H2 headings also get a decorative divider line (previously h1 only).

  3. **Theme-adaptive diagram labels** — ASCII diagram labels in code blocks now use `var(--primary)` instead of hardcoded green values, so they automatically match the site color theme.

  4. **Tighter line-height for diagram code blocks** — code blocks with diagram languages (`diagram`, `ascii`, `box`) use `line-height: 1.3` instead of `1.6`, improving vertical alignment of box-drawing characters and connected lines.

  5. **Inline code color fix** — `.inline-code` now uses `var(--foreground)` in both light and dark mode instead of hardcoded `rgba()` values, so it adapts to custom themes.
</Update>

<Update id={"@holocron.so/vite@0.11.0"} label={"May 20, 2026"}>
  ## @holocron.so/vite\@0.11.0

  1. **Inline `.md`/`.mdx` imports at remark level** — imported markdown files are now spliced directly into the page's mdast tree before any remark plugins run. Headings from imported files appear in the TOC automatically, images go through the normal build-time processor, and all remark plugins (callouts, code groups, mermaid, etc.) apply to the inlined content. Recursive imports are supported with cycle detection. Each imported file is parsed exactly once and the mdast is reused for import extraction, image dep collection, and pre-building spliced nodes. Pages without `.md` imports skip the full AST parse entirely via a regex fast path.

  2. **New `knownPaths` config field** — suppress false broken-link warnings when mounting docs alongside other routes (API endpoints, dashboards, external apps). Supports exact paths and prefix wildcards:

     ```json
     {
       "knownPaths": ["/api/*", "/dashboard", "/blog/*"]
     }
     ```

  3. **Imported `.md`/`.mdx` files included in AI chat context** — imported markdown snippets and shared fragments are now sent to the AI chat agent during local dev, matching production behavior where they were already included via `docs.zip`.

  4. **Content column capped at 720px** — the derived `--grid-content-width` is now wrapped in `min(720px, ...)` so it never grows beyond 720px regardless of grid geometry.

  5. **Fixed heading anchor scroll offset** — `scroll-margin-top` now uses `--sticky-top` instead of `--header-height`, adding breathing room below the navbar when navigating to `#id` anchors.

  6. **Fixed AI chat loading dots alignment** — loading indicator dots are now aligned to top-start instead of vertically centered.
</Update>

<Update id={"@holocron.so/vite@0.10.2"} label={"May 19, 2026"}>
  ## @holocron.so/vite\@0.10.2

  1. **Fixed custom entry CSS under Cloudflare dev** — custom-entry apps now correctly load Holocron's global stylesheet when running under `wrangler dev`. The Spiceflow RSC entry now uses the real custom entry file instead of routing through a virtual module, so vite-rsc can walk the import graph and collect all CSS dependencies.

  2. **Removed manual safe-mdx aliases** — safe-mdx 1.11.1 ships a package-level `react-server` export map fallback, so Holocron no longer needs to carry private path aliases for `safe-mdx`, `safe-mdx/parse`, and `safe-mdx/client`.

  3. **Fixed broken 0.10.1 publish** — 0.10.1 was published with npm instead of pnpm, leaving `workspace:^` references unresolved in the published package.json.
</Update>

<Update id={"@holocron.so/vite@0.10.1"} label={"May 19, 2026"}>
  ## @holocron.so/vite\@0.10.1

  1. **Fixed custom entry CSS under Cloudflare dev** — custom-entry apps now correctly load Holocron's global stylesheet when running under `wrangler dev`. The Spiceflow RSC entry now uses the real custom entry file instead of routing through a virtual module, so vite-rsc can walk the import graph and collect all CSS dependencies.

  2. **Removed manual safe-mdx aliases** — safe-mdx 1.11.1 ships a package-level `react-server` export map fallback, so Holocron no longer needs to carry private path aliases for `safe-mdx`, `safe-mdx/parse`, and `safe-mdx/client`.
</Update>

<Update id={"@holocron.so/vite@0.10.0"} label={"May 19, 2026"}>
  ## @holocron.so/vite\@0.10.0

  1. **Build-time processing for imported `.md`/`.mdx` files** — imported markdown files (e.g. `import Guide from "./snippets/guide.md"`) now go through the same build pipeline as regular pages: all remark plugins (GitHub callouts, code groups, etc.), image resolution (dimensions, placeholders, copy to public), and normalization. Previously these were loaded as raw strings and parsed at render time without any processing.

  2. **Imported MDX headings appear in sidebar TOC** — headings from imported `.md`/`.mdx` files now show up in the left sidebar table of contents in correct document order. Previously imported components were opaque JSX nodes, so their headings were invisible to the TOC.

  3. **Broken internal link warnings during sync** — Holocron now walks the mdast tree during sync and resolves every internal link against the page index and redirect sources. Links pointing to non-existent pages log a warning with source location. Handles absolute (`/foo`), relative (`./foo`, `../bar`), hash fragments, and query strings.

  4. **Serve raw markdown at `.mdx` URLs** — pages were already served as raw markdown at `/<slug>.md` for AI agents. Now `.mdx` URLs work identically, returning the same content with `text/markdown` content-type.

  5. **Imported files included in `/docs.zip`** — the `/docs.zip` endpoint now includes imported markdown files (snippets, shared fragments, files outside pagesDir) alongside navigation pages.

  6. **Global CSS loads for custom entries** — custom-entry apps that mount Holocron through a user-owned Spiceflow entry now correctly load Holocron's global stylesheet.

  7. **Spiceflow moved to regular dependencies** — users no longer need to install spiceflow separately. It ships as a regular dependency, so `pnpm install` resolves it automatically.

  8. **Fixed copy-as-markdown button on index pages** — the button was fetching `/.md` (404) on the root page instead of `/index.md`.

  9. **Fixed link hydration mismatch** — `isExternalHref` used `new URL()` origin comparison that produced different results on server vs client for relative paths. Replaced with a consistent regex.

  10. **Fixed empty sidebar group labels** — unnamed sidebar groups no longer render an empty `<div>` wrapper.

  11. **Fixed config HMR** — editing `docs.json` colors and styles now hot-reloads correctly without stale CSS artifacts.
</Update>

<Update id={"@holocron.so/cli@0.12.2"} label={"May 19, 2026"}>
  ## @holocron.so/cli\@0.12.2

  1. **Fixed `$schema` URL in scaffolded projects** — `holocron create` now writes `"$schema": "https://holocron.so/docs.json"` instead of the old unpkg URL that depended on npm publish timing and internal file paths.
</Update>

<Update id={"@holocron.so/vite@0.9.0"} label={"May 18, 2026"}>
  ## @holocron.so/vite\@0.9.0

  1. **New prev/next page navigation in the right sidebar** — every page now shows chevron arrows linking to the previous and next pages in navigation order, plus a "Copy as Markdown" button that copies the current page content to clipboard. Tooltips on the arrows show the target page title via portal-based rendering to avoid clipping.

  2. **Frontmatter JSON Schema** — a new `frontmatter-schema.json` is generated alongside the config schema, describing all supported MDX frontmatter fields (title, description, icon, SEO meta, hidden, etc.). Add `$schema: "https://holocron.so/frontmatter.json"` to your MDX frontmatter for IDE autocomplete and validation.

  3. **Icon name autocomplete in `docs.json`** — the config JSON schema now references external enum schemas for lucide and Font Awesome icon names. IDEs that support `$ref` resolution fetch icon name lists on demand from holocron.so, giving you autocomplete for all 4,000+ supported icon names.

  4. **Shared `cn()` utility (clsx + tailwind-merge)** — all components now use a shared `cn()` following the shadcn convention. This fixes a bug where passing `className` to `<Logo>` would completely replace the base sizing classes instead of merging with them. All components with className props now merge correctly via `tailwind-merge`.

  5. **`text` prop on `<Logo />`** — pass `<Logo text="My Docs" />` to render an AI-generated logo using that text, bypassing the site config logo entirely.

  6. **Fixed Tailwind HMR for MDX page edits** — editing MDX files or imported components no longer triggers a full page reload. New Tailwind utility classes are now compiled and injected in-place during HMR, preserving client state. Previously, Tailwind treated MDX files as external template changes and forced a reload.

  7. **Upgraded Spiceflow to 1.25.3-rsc.0** — aligns all workspace packages on the same RSC build, avoiding duplicate framework versions.

  8. **Search bar focus styling** — replaced the thick box-shadow focus ring with a subtle border-color change to `muted-foreground` for a cleaner active state.

  9. **AI chat polish** — reduced the ShowMore collapsed height from 80px to 40px for tighter tool output previews.
</Update>

<Update id={"@holocron.so/cli@0.12.1"} label={"May 18, 2026"}>
  ## @holocron.so/cli\@0.12.1

  1. **Upgraded Spiceflow to 1.25.3-rsc.0** — aligns with the latest RSC build used by `@holocron.so/vite`, avoiding duplicate framework versions at runtime.
</Update>

<Update id={"@holocron.so/vite@0.8.0"} label={"May 14, 2026"}>
  ## @holocron.so/vite\@0.8.0

  1. **New `<Logo />` MDX component** — render the configured site logo directly inside docs content. It uses the same resolved light, dark, and generated logo variants as the navbar and footer.

     ```mdx
     <Logo />
     ```

  2. **Tailwind scans your docs tree** — Holocron now adds your configured `pagesDir` as a Tailwind source, so utility classes used in MDX content and imported docs components are included in the generated CSS.

  3. **Better MDX error pages and build failures** — MDX parse failures stay attached to their page route in dev, rendering a focused error page instead of turning into a 404. Production builds fail with the formatted code-frame message so broken docs do not deploy silently.

  4. **MDX component validation during sync** — Holocron validates rendered MDX against the supported component map while syncing navigation. Unknown components and invalid imported MDX now surface earlier with the page source that caused the failure.

  5. **Self-hosted JetBrains Mono** — code now uses `@fontsource-variable/jetbrains-mono`, avoiding a third-party font request for the default monospace font.

  6. **JSONC syntax highlighting** — fenced `jsonc` code blocks now reuse Prism's JSON grammar instead of rendering without highlighting.

  7. **OpenAPI success responses open by default** — generated endpoint pages now expand successful response examples first, making the useful response shape visible immediately.

  8. **Navigation and layout polish** — browser scroll restoration works across docs navigation, unnamed sidebar groups no longer break search, responsive images keep their intended sizing, Frame captions align better, and the page AI widget stays hidden on mobile.
</Update>

<Update id={"@holocron.so/cli@0.12.0"} label={"May 14, 2026"}>
  ## @holocron.so/cli\@0.12.0

  1. **Scaffolded projects now use `docs.jsonc`** — `holocron create` generates the starter config as JSONC, so new projects can keep comments and trailing commas in the same config file Holocron reads by default.

     ```bash
     npx -y @holocron.so/cli create my-docs
     ```

     The create command now parses the template as JSONC before writing the project name and schema URL, so custom starter templates can use JSONC syntax safely.
</Update>

<Update id={"@holocron.so/vite@0.7.1"} label={"May 13, 2026"}>
  ## @holocron.so/vite\@0.7.1

  1. **Fixed internal links opening in new tabs** — relative links, hash links, and same-origin links in docs content now navigate in-place using client-side navigation instead of opening a new browser tab. External links still open in a new tab as expected.
  2. **Table edges align flush with page content** — removed left padding from the first table column and right padding from the last column so table data aligns with surrounding editorial content.
  3. **Improved AI chat scroll behavior** — after submitting a message, the chat drawer now scrolls your message to the top of the viewport instead of jumping to the bottom. The loading state and assistant response area get enough height to keep the scroll position stable during streaming.
  4. **Fixed chat message overflow** — resolved an issue where `overflow-x-hidden` on chat text containers silently triggered vertical scrollbars due to CSS spec behavior. Content now grows naturally without nested scroll regions.
</Update>

<Update id={"@holocron.so/vite@0.7.0"} label={"May 13, 2026"}>
  ## @holocron.so/vite\@0.7.0

  1. **Auto-derive dark mode `--primary` when `colors.light` is not set** — if you only configure `colors.primary` without an explicit `colors.light`, the dark mode accent was identical to light mode, making links unreadable on dark backgrounds. Now auto-generates a lighter variant via `color-mix(in oklch, <primary> 40%, white)`, roughly matching Tailwind's 200-scale lightness. If you explicitly set `colors.light`, your value is still used as-is.

  2. **Fixed Cloudflare Workers deploy crash ("No such module ssr/isbot")** — the `@cloudflare/vite-plugin` was loaded via async `import()`, leaving an unresolved Promise in the plugins array. Spiceflow couldn't detect it, so `noExternal: true` was never set for SSR/RSC environments. Bare npm imports like `isbot` and `history` stayed external, crashing Dynamic Workers at runtime. The plugin is now imported synchronously and placed before spiceflow in the plugin array.

  3. **Fixed image height override in content area** — a blanket `.slot-main img { height: auto !important }` rule was overriding the explicit `height: 100%` set by the Image component for pixelated placeholder overlays. The global rule has been removed; `height: auto` and `max-width: 100%` are now applied only on specific image paths that need them.

  4. **Tighter TOC panel spacing** — reduced right-sidebar table of contents item vertical padding from `py-1.5` to `py-1`.

  5. **Excluded spiceflow from RSC/SSR optimizeDeps** — prevents Vite from pre-bundling spiceflow in RSC and SSR environments so it stays in the transform pipeline as-is.

  6. **Deploy output writes to `dist/.holocron`** — when `HOLOCRON_DEPLOY=1` is set, the Vite plugin now sets `build.outDir` to `dist/.holocron` instead of `dist/`, keeping deploy artifacts separate from normal platform-specific builds.
</Update>

<Update id={"@holocron.so/cli@0.11.1"} label={"May 13, 2026"}>
  ## @holocron.so/cli\@0.11.1

  1. **Deploy auth check runs before build** — credentials are validated upfront so missing auth fails immediately instead of after a full Vite build
  2. **Deploy output separated from normal build** — `holocron deploy` now writes to `dist/.holocron` instead of `dist/`, keeping deploy artifacts isolated from platform-specific Vite builds (Cloudflare vs Node.js)
  3. **Removed `--skip-build` flag** — builds always run during deploy. The separate output dir makes the flag unnecessary
</Update>

<Update id={"@holocron.so/cli@0.11.0"} label={"May 12, 2026"}>
  ## @holocron.so/cli\@0.11.0

  1. **Keyless deploys from GitHub Actions via OIDC** — `holocron deploy` now supports GitHub Actions OIDC authentication natively. No `HOLOCRON_KEY` secret needed; just set `permissions: id-token: write` in your workflow:

     ```yaml
     permissions:
       id-token: write
       contents: read
     steps:
       - uses: actions/checkout@v4
       - run: npx holocron deploy
     ```

     The CLI mints a fresh OIDC token for each deploy step (create, upload, finalize) and the server derives project, branch, and preview state from the verified JWT claims. API key and session auth continue to work as before.

  2. **Scaffold no longer lists `spiceflow` as a direct dependency** — `holocron create` generates a leaner `package.json`. Spiceflow is a transitive dependency of `@holocron.so/vite` so users don't need to install it separately.

  3. **Improved deploy error messages** — auth failure now suggests all three auth methods (env var, `holocron login`, or GitHub Actions OIDC) instead of only the first two.
</Update>

<Update id={"@holocron.so/vite@0.6.1"} label={"May 12, 2026"}>
  ## @holocron.so/vite\@0.6.1

  1. **`@cloudflare/vite-plugin` is now a direct dependency** — users deploying to Cloudflare Workers no longer need to install it separately. It ships as a transitive dep of `@holocron.so/vite`.

  2. **Fixed OpenAPI spec resolution when `pagesDir` is set** — specs inside a custom `pagesDir` (e.g. `pagesDir: "./src"` with `api.yaml` in `src/`) now resolve correctly. Previously only the project root was probed, causing "OpenAPI spec not found" errors. The error message now lists all probed locations when neither has the file.

  3. **Removed build-time OIDC registration from the Vite plugin** — the OIDC token minting and `.env` write path has been moved to the CLI deploy command. The Vite plugin no longer writes `HOLOCRON_KEY` or `HOLOCRON_BRANCH` to `.env` during build. Deploy authentication is now fully handled by `holocron deploy`.

  4. **Bumped spiceflow peer dep to `>=1.25.1-rsc.0`** — fixes deploy failures where the SSR entry wasn't nested inside the RSC output directory, causing "deployment must include worker/ssr/index.js" errors.
</Update>

<Update id={"@holocron.so/vite@0.6.0"} label={"May 12, 2026"}>
  ## @holocron.so/vite\@0.6.0

  1. **Self-hosted Inter font** — the default Inter font is now bundled via `@fontsource-variable/inter` instead of loading from third-party CDNs (`rsms.me`, Google Fonts). No external font requests on default config. Google Fonts preconnect tags only appear when you explicitly configure a custom Google font.

  2. **OIDC keyless deploys from GitHub Actions** — when `permissions: id-token: write` is set, the Vite plugin automatically mints a GitHub OIDC token and registers the deployment without any secret configuration:

     ```yaml
     # No HOLOCRON_KEY secret needed
     permissions:
       id-token: write
     steps:
       - run: npx holocron deploy
     ```

  3. **Prism excluded from SSR** — syntax highlighting now runs client-only via a `#prism` conditional import. SSR/RSC get a noop stub, then the client adds highlighting during hydration. Reduces SSR bundle by \~500KB and avoids the CJS global crash in Dynamic Workers.

  4. **Stable dependency code splitting** — framework and vendor code is grouped into a single `holocron-stable` chunk in the RSC build. The entry chunk shrinks to \~20KB of virtual modules, while the stable chunk stays content-addressable across deploys for maximum KV dedup.

  5. **`listen()` guard moved to renderChunk** — the auto-start `listen()` call is now appended to the final RSC entry chunk after bundling, keeping `import.meta.url` correct even when code splitting moves framework code into dependency chunks.

  6. **Dynamic Workers `createRequire` fix** — `createRequire(import.meta.url)` calls in bundled CJS helpers are replaced at build time when `HOLOCRON_DEPLOY=1`, preventing module evaluation crashes in Dynamic Workers.

  7. **Auto-inject Cloudflare plugin** — when `HOLOCRON_DEPLOY=1` is set (by `holocron deploy`), `@cloudflare/vite-plugin` is auto-injected. Users don't need it in their `vite.config.ts`.

  8. **Headings with inline code** — headings like `` ### `config` `` now appear correctly in the sidebar and table of contents instead of showing as empty entries.

  9. **Empty headings filtered** — headings with no text content are dropped from the sidebar TOC and right-side table of contents instead of rendering as blank items.

  10. **User entry exports preserved** — custom spiceflow entries now re-export all named exports alongside `app` and `default`.

  11. **`yaml` browser entry alias** — the `yaml` package is aliased to its browser entry at build time, fixing resolution issues in the browser bundle.

  12. **`@cloudflare/vite-plugin` optional peer dependency** — added as optional so `pnpm install` doesn't warn when deploying to non-Cloudflare targets.
</Update>

<Update id={"@holocron.so/cli@0.10.0"} label={"May 12, 2026"}>
  ## @holocron.so/cli\@0.10.0

  1. **New `holocron deploy` command** — build and deploy your docs site to holocron.so with a single command. Content-addressable uploads skip unchanged files across deploys:

     ```bash
     holocron deploy
     ```

     * Auto-detects branch from git, GitHub Actions, or `--branch` flag
     * Zip-batched parallel uploads with progress reporting
     * SHA-256 content hashing; only new/changed files are uploaded
     * Auto-sets `holocron_url` and `holocron_deployment_id` as GitHub Actions step outputs
     * Reads project name from `docs.json` and syncs it server-side
     * Supports `--skip-build` to deploy an existing `dist/`
     * Auth via `HOLOCRON_KEY` env var or `holocron login` session

  2. **Multi-environment auth** — CLI now stores session tokens keyed by server URL, so you can be logged into production and preview simultaneously:

     ```bash
     holocron login                              # logs into holocron.so
     holocron --api-url https://preview.holocron.so login  # separate session
     holocron whoami                              # shows current server's user
     ```

  3. **Global `--api-url` flag** — all commands now respect a top-level `--api-url` option instead of per-command `-u`/`--url` flags.

  4. **Improved `create` command UX** — reuses existing login session instead of re-authenticating, appends `-docs` to the generated folder name, and skips the "start dev server?" prompt when dependencies weren't installed.

  5. **Colored CLI output** — all commands use a centralized logger with color-coded status icons for better readability.

  6. **Non-TTY safety** — `holocron login` fails fast with a clear message in non-interactive environments instead of hanging on stdin.
</Update>

<Update id={"@holocron.so/vite@0.5.0"} label={"May 11, 2026"}>
  ## @holocron.so/vite\@0.5.0

  1. **Decorative grid lines** — configurable vertical lines with dot ornaments at intersections. Set `decorativeLines` in your config to `"none"`, `"lines"`, `"dashed"`, or `"lines-with-dots"` (default):

     ```json
     { "decorativeLines": "dashed" }
     ```

  2. **Per-page CDN caching via frontmatter** — set `cache-control` in page frontmatter to control HTTP caching headers per page:

     ```yaml
     ---
     title: My Page
     cache-control: public, max-age=3600
     ---
     ```

  3. **`?raw` imports in MDX modules** — MDX files can now import raw text content from other files using Vite's `?raw` query suffix.

  4. **`docs.jsonc` config discovery** — Holocron discovers config files in Mintlify-first order: `docs.json`, `docs.jsonc`, then `holocron.jsonc`. JSONC comments and trailing commas work without renaming your Mintlify config.

  5. **`holocron` CLI bundled with vite package** — installing `@holocron.so/vite` now also provides the `holocron` CLI command. No separate `@holocron.so/cli` install needed.

  6. **Deploy with just `HOLOCRON_KEY`** — deployment registration now only needs `HOLOCRON_KEY` (removed `HOLOCRON_PROJECT`). The project is resolved from the key server-side.

  7. **Generated entry guards `listen()` with `import.meta.main`** — the built `dist/rsc/index.js` can now be imported by another framework (e.g. Next.js catch-all route) without starting a second server.

  8. **OG images and logos served from holocron.so** — OG image rendering and logo generation moved to a dedicated Cloudflare Worker, dropping \~5 MiB from the vite plugin bundle.

  9. **Sidebar nav animations disabled by default** — sidebar expand/collapse transitions are off by default, gated behind a `.sidebar-animate` CSS class.

  10. **Config types and schema exported from index** — `@holocron.so/vite` now exports config types and the JSON schema for programmatic config validation.

  11. **Darker dark mode** — dark mode background darkened from `0.21` to `0.16` oklch lightness for better contrast.

  12. **Fixed TOC heading highlight** — same-hash re-click and scrollbar drag edge cases now correctly update the active heading.

  13. **Fixed sidebar heading click** — clicking a heading in the sidebar now highlights correctly after scroll.

  14. **Fixed page overflow** — decorative grid dots no longer extend below the content container.

  15. **Fixed title injection** — pages that already start with any heading level are left untouched.

  16. **Tab link and scrollbar polish** — removed lowercase transform, fixed indicator height, thinner scrollbar thumbs, softer light mode borders.
</Update>

<Update id={"@holocron.so/cli@0.9.0"} label={"May 11, 2026"}>
  ## @holocron.so/cli\@0.9.0

  1. **New `holocron create` command** — scaffold a new docs project from a starter template with interactive setup. Optionally connects to holocron.so for AI chat and analytics:

     ```bash
     holocron create my-docs --name "My Docs"
     ```

     Non-interactive mode supported for CI/agent use. The scaffold includes `docs.json`, MDX pages, `vite.config.ts`, and `.env` with your API key.

  2. **New `projects list` and `projects create` commands** — manage projects for your org:

     ```bash
     holocron projects create --name "My Docs"
     holocron projects list
     ```

  3. **API keys are now project-scoped** — each key is tied to a project. The key alone identifies which project a deployment belongs to, so `HOLOCRON_PROJECT` is no longer needed. Just set `HOLOCRON_KEY`:

     ```bash
     holocron keys create --name production --project <projectId>
     ```

  4. **Renamed `HOLOCRON_API_KEY` to `HOLOCRON_KEY`** — shorter env var name. Update your `.env` and CI secrets.

  5. **Simplified API routes** — the CLI no longer manages org IDs client-side. Org resolution and auto-creation happen server-side.

  6. **`docs.jsonc` config support** — the scaffold now outputs `docs.json` with a `$schema` URL pointing to the published npm package for IDE autocomplete.
</Update>

<Update id={"@holocron.so/vite@0.4.0"} label={"May 2, 2026"}>
  ## @holocron.so/vite\@0.4.0

  1. **Agent discovery endpoints for every docs site**: Holocron now serves the well-known agent-skills discovery files automatically so coding agents can discover and install a docs-specific skill:

     ```txt
     /.well-known/agent-skills/index.json
     /.well-known/agent-skills/{name}/SKILL.md
     /.well-known/skills/index.json
     /.well-known/skills/{name}/SKILL.md
     ```

     The generated skill points agents at `/sitemap.xml`, raw `.md` page URLs, and `/docs.zip`. Base-path deployments use relative URLs, and AI-user-agent redirects skip the well-known routes so JSON discovery stays machine-readable.

  2. **Added `/llms.txt`**: every docs site now exposes a standard agent entry point that links to `/docs.zip` first, then individual raw markdown pages:

     ```txt
     https://docs.example.com/llms.txt
     ```

  3. **Imported MDX and Markdown snippets**: MDX pages can import local `.mdx` and `.md` snippets, including files outside the docs root, and Holocron resolves them through the same safe-mdx rendering pipeline as normal pages:

     ```mdx
     import Intro from './snippets/intro.mdx'
     import Readme from '../../README.md'

     <Intro />
     <Readme />
     ```

  4. **Added Mintlify-compatible `<Visibility>`**: docs can render content only for humans or only for agent-facing markdown output:

     ```mdx
     <Visibility for="humans">
     This appears on the website.
     </Visibility>

     <Visibility for="agents">
     This appears in `.md` routes and docs.zip.
     </Visibility>
     ```

  5. **More Mintlify-compatible MDX components**: callouts, badges, cards, expandables, frames, tooltips, trees, accordions, and tabs accept more Mintlify props without requiring docs rewrites.

  6. **HTML `<details>` support**: copied docs that use native HTML details/summary blocks are normalized into Holocron's existing `Expandable` component.

  7. **GitHub-style callout quotes**: Markdown alerts like `> [!NOTE]`, `> [!TIP]`, and `> [!WARNING]` now render as Holocron callouts.

  8. **Search shortcut changed to Cmd/Ctrl+K**: docs search now uses the standard docs-site shortcut.

  9. **Page-level grid gap overrides**: pages can override the editorial grid gap through frontmatter, and generated OpenAPI pages use tighter spacing automatically.

  10. **Client-side routing is used consistently**: navigation links, configured links, footer links, MDX links, and TOC hash links now go through Spiceflow `Link` where appropriate.

  11. **Docs chat uses the hosted typed API**: chat requests go through the hosted Holocron API, with preserved model history for tool calls and local-development support for inline docs content.

  12. **Temporary AI fallback for previews**: preview docs can use a low-cost temporary model when no Holocron API key is configured.

  13. **New docs pages hot-reload in dev**: adding Markdown or MDX files now refreshes navigation without needing a server restart.

  14. **Better code highlighting for MDX snippets**: `mdx` fences now reuse Prism's Markdown grammar so nested fenced code blocks inside MDX examples get syntax highlighting.

  15. **Smaller server bundles for Mermaid sites**: Mermaid is resolved through an SSR stub and loaded only in the browser, reducing the SSR bundle for the real-world Polar fixture from about 7.55 MiB to 2.17 MiB.

  16. **Cleaner build output for Mermaid**: Mermaid's dynamic diagram dependencies are grouped into one lazy chunk instead of dozens of tiny files.

  17. **Table and layout polish**: Markdown tables use lighter row dividers, stay inside the content column, and preserve visible borders.

  18. **Sidebar and scrollbar polish**: navigation spacing, scrollbar thumbs, page breathing room, and border contrast were tuned for better readability in light and dark mode.

  19. **Fixed sidebar hydration state**: sidebars now use loader-provided route state for the first render, preventing hydration mismatches on non-default tabs.

  20. **Fixed active TOC tracking**: the active heading now updates when a section reaches the top reading position instead of using the viewport center.
</Update>

<Update id={"@holocron.so/vite@0.3.0"} label={"Apr 27, 2026"}>
  ## @holocron.so/vite\@0.3.0

  1. **OpenAPI auto-generated API reference pages** — add `"openapi": "spec.yaml"` to any navigation tab and Holocron processes the spec at build time, extracts all operations grouped by tag, and generates virtual pages with full endpoint documentation:

     ```json
     {
       "navigation": {
         "tabs": [
           { "tab": "Docs", "pages": ["index"] },
           { "tab": "API Reference", "openapi": "openapi.yaml" }
         ]
       }
     }
     ```

     Each endpoint page includes parameter tables, request/response bodies with JSON Schema types, cURL examples in a sticky right sidebar, and response code expandables.

  2. **Configurable `openapiBase` slug prefix** — control the URL prefix for generated OpenAPI pages (defaults to `"api"`). Set to `""` for no prefix:
     ```json
     { "tab": "API", "openapi": "spec.yaml", "openapiBase": "reference" }
     ```

  3. **Mermaid dark mode** — diagrams now re-render with the correct theme when toggling dark/light mode.

  4. **Auto-inject H1 from frontmatter title** — pages with a frontmatter `title` but no H1 in the body get a heading injected automatically.

  5. **Typography and layout refinements** — uniform 16px heading sizes, narrower content column for better readability, sidebar uses `text-sm` instead of `text-xs`.

  6. **Tabs component restyled** — uses `bg-accent` for cleaner tab panels.

  7. **OpenAPI field styling** — divider lines between fields, copy button on request examples, Mintlify-style rounded CodeCard containers.

  8. **Fixed `@tailwindcss/vite` and `tailwindcss` as dependencies** — were incorrectly in devDependencies causing missing styles in production.

  9. **Fixed OpenAPI active tab matching** and H1 filtering from TOC.
</Update>

<Update id={"@holocron.so/vite@0.2.0"} label={"Apr 25, 2026"}>
  ## @holocron.so/vite\@0.2.0

  1. **MDX import support** — import components from anywhere in your project using standard MDX import syntax. Components are discovered at build time and resolved at render time.

  2. **Auto-detect user global CSS** — Holocron automatically discovers and loads user global CSS files for smoother Mintlify migration.

  3. **AI Assistant control** — new `assistant.enabled` config field to disable the AI chat widget.

  4. **Default icon library switched from Lucide to FontAwesome** — use explicit `lucide:icon-name` syntax to keep using Lucide icons.

  5. **Wider content column with flexible grid** — tables and tabs now bleed properly with min-width 150px on table cells and horizontal scroll.

  6. **H3 headings** now use the same foreground color as h1/h2.

  7. **Unified vertical spacing** — Steps, lists, and containers now all use the `--prose-gap` token.

  8. **Component rename: `<Hero>` → `<Above>`** — update your MDX files if you use Hero directly.

  9. **Fixed phantom 48px gap** from empty first section in the editorial page grid.

  10. **Fixed imported components inside `<Above>`** — components in this section now render correctly.

  11. **Fixed sticky sidebar** — sidebar sticks below navbar even without a tab bar.

  12. **Fixed active TOC tracking** — improved heading highlight with 50% viewport threshold + hash change detection.

  13. **Fixed heading text rendering** — heading text no longer wrapped in prose-styled `<p>` element.

  14. **Fixed callout content** — no longer split incorrectly during MDX serialization.

  15. **Fixed spiceflow dual-instance crash** — deduplicated `@types/node` dependency.

  16. **Chat/AI fixes** — stale text, textarea preservation, store/hook boundary fixes.

  17. **Scrollbar gutter prevention** — `scrollbar-gutter: stable` prevents layout shift.

  18. **Performance** — shared pre-parsed mdast between module resolution and page rendering.

  19. **Improved sidebar link contrast** — opacity increased from 0.45 to 0.65.

  20. **Fixed implicit "Docs" tab visibility** — works correctly with versions + anchors.

  21. **Fixed nested index slugs** — loader titles resolve for nested directory pages.

  22. **Fixed tab indicator height and zustand import path**.
</Update>

<Update id={"@holocron.so/cli@0.6.0"} label={"Apr 25, 2026"}>
  ## @holocron.so/cli\@0.6.0

  1. **New `login`, `logout`, `whoami` commands** — authenticate with holocron.so via BetterAuth device flow. The CLI opens your browser, you approve, and the session token is saved locally:

     ```bash
     holocron login
     holocron whoami
     holocron logout
     ```

  2. **New `keys create`, `keys list`, `keys delete` commands** — manage API keys for deploying docs sites. Keys are scoped to your org and can authenticate the hosted AI proxy via `HOLOCRON_API_KEY`:

     ```bash
     holocron keys create --name production
     holocron keys list
     holocron keys delete <keyId>
     ```

  3. **Typed API client** — all API calls go through `spiceflow/client` with types auto-derived from the website routes and safe error handling via `errore` patterns.
</Update>

<Update id={"@holocron.so/vite@0.1.0"} label={"Apr 16, 2026"}>
  ## @holocron.so/vite\@0.1.0

  Initial release — drop-in Mintlify replacement as a Vite plugin.

  1. **Full Mintlify-compatible docs site from MDX** — reads `docs.json` (or `holocron.jsonc`) for navigation, tabs, groups, anchors, redirects, footer, banner, fonts, colors, SEO metadata, and favicon. Renders MDX pages with editorial typography, code blocks (Prism with all languages), callouts, tables, accordions, expandable fields, cards, steps, frames, panels, badges, tooltips, and more.

  2. **React Server Components on Vite 8** — powered by spiceflow. Server-rendered pages with full client hydration, client-side navigation, and per-page loaders.

  3. **Navigation with tabs, versions, and dropdowns** — `navigation.tabs` for switching sidebar content, `navigation.versions` for a version selector dropdown, and `navigation.dropdowns` (or `navigation.products`) for product-scoped navigation. Each switcher owns its own inner tab/group tree.

  4. **Custom entry point support** — mount holocron as a child of your own spiceflow app:
     ```ts
     import { createHolocronApp } from '@holocron.so/vite/app'
     const holocronApp = await createHolocronApp()
     const app = new Spiceflow().use(holocronApp)
     ```

  5. **HMR for config and MDX** — editing MDX content, adding/removing pages, and changing `docs.json` all hot-reload without a full page refresh.

  6. **AI agent support** — serves raw markdown at `/<page>.md` URLs, redirects AI user-agents to `.md` endpoints, exposes `/sitemap.xml` with `.md` hints, and bundles all docs as `/docs.zip`.

  7. **Built-in icon atlas** — resolves Lucide and Font Awesome icons at build time. Icons render inline as SVGs inheriting `currentColor`. Supports emoji, URL, and structured `{ name, library }` icon objects.

  8. **Image processing with pixelated placeholders** — local images get dimensions + compact WebP placeholders at build time. Blur-to-sharp transition and click-to-zoom via `react-medium-image-zoom`.

  9. **OG image generation** — auto-generates Open Graph PNG images per page using Takumi.

  10. **Generated fallback logo** — text-based logo PNG using Bagnard font, with light and dark variants.

  11. **Sidebar search** — Orama full-text index with keyboard navigation and wrap-around.

  12. **Dark mode** — class-based with cookie persistence and a blocking theme script (no flash). OS preference fallback.

  13. **CSS `@layer holocron`** — all styles wrapped in a CSS layer. Uses shadcn v2 CSS variable convention for full theme customization.

  14. **Redirects** — exact match, named parameters (`:id`), trailing wildcards (`*`). Query strings preserved. 301 status.

  15. **Base path support** — mount docs under a subpath like `/docs`.

  16. **Footer with socials** — logo, social icons, up to 4 link columns.

  17. **Banner** — dismissible top banner with MDX content and configurable colors.

  18. **Custom virtual modules** — override `virtual:holocron-config` and `virtual:holocron-pages` for programmatic control.

  19. **Sticky per-section asides** — `<Aside>` scoped to its section, `<Aside full>` spans multiple sections. `RequestExample`/`ResponseExample` auto-widen the sidebar.

  20. **404 page** — styled 404 inside the editorial layout with missing path, link home, and `noindex` meta.
</Update>

<Update id={"@holocron.so/cli@0.3.2"} label={"Sep 18, 2025"}>
  ## @holocron.so/cli\@0.3.2

  ### Patch Changes

  * export holocronjsonc type
</Update>

<Update id={"@holocron.so/cli@0.3.1"} label={"Sep 18, 2025"}>
  ## @holocron.so/cli\@0.3.1

  ### Patch Changes

  * fix double api api in client
</Update>
