---
url: /CHANGELOG.md
---
# kubb.dev

## 0.0.3

### Patch Changes

* [#329](https://github.com/kubb-labs/platform/pull/329) [`efccec6`](https://github.com/kubb-labs/platform/commit/efccec60904e3db00a2bd0fed654db1352fe2b23) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Add `kubb:setup:start` and `kubb:setup:end` to the Setup phase of the `LifecycleTimeline` visualization, and add a "Lifecycle hooks" entry to the Kit sidebar linking to the new reference page.

## 0.0.2

### Patch Changes

* [#267](https://github.com/kubb-labs/platform/pull/267) [`2a03211`](https://github.com/kubb-labs/platform/commit/2a0321188406809fbc474f4b741826ba14e17f79) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Let wide tables on docs pages scroll horizontally instead of clipping their overflowing columns, keeping the rounded corners intact.

## 0.0.1

### Patch Changes

* [#170](https://github.com/kubb-labs/platform/pull/170) [`4b06f89`](https://github.com/kubb-labs/platform/commit/4b06f89270c383028d584e44507dfddd4639e837) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - docs(adapter-oas): add missing dedupe option to the adapter-oas reference page

* [#191](https://github.com/kubb-labs/platform/pull/191) [`db0dbd0`](https://github.com/kubb-labs/platform/commit/db0dbd06a69d6c539527ffe968a2697f4d0b5534) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Keep the beta banner's layout offset in sync while scrolling so page content no longer shows through the docs header once the banner scrolls out of view.

* [#158](https://github.com/kubb-labs/platform/pull/158) [`8d529ea`](https://github.com/kubb-labs/platform/commit/8d529ea243197e3b63aa4fcd26fc7266058681e1) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Move extension metadata into the docs repo (`kubb-labs/docs`) and hand-write the extension docs pages. The new source of truth is `extensions/{plugins,adapters,parsers}/<id>.yaml` at the root of the docs repo: small options-free files in the nuxt/modules style, validated against the new `public/schemas/extension.json`. The pages under `plugins/`, `adapters/`, and `parsers/` are now committed markdown with options documented inline and reusable examples under `snippets/` via the VitePress import syntax. The fetch pipeline vendors the docs repo and `generateRegistry` reads from `vendor/docs/extensions/`, keeping the npm and GitHub stats enrichment. See ADR-0008.

* [#221](https://github.com/kubb-labs/platform/pull/221) [`bb7d0f2`](https://github.com/kubb-labs/platform/commit/bb7d0f247f0f1554633b9631ccc51818e6146649) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Render the changelog as a standalone timeline view. Releases now read as dated version markers down a vertical rail, with mono package labels and colored category labels, rendered above a page header with a link to the source changelog. The synced markdown keeps its structure, so the layout comes from a `changelog` page class and a small header component.

* [#212](https://github.com/kubb-labs/platform/pull/212) [`b21d831`](https://github.com/kubb-labs/platform/commit/b21d83137f0778e336fc198bdf908ff663fe4539) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Add four client usage guides to the sidebar under Going further: calling operations, error handling, serialization and parsing, and server-sent events. The pages cover the shared contract of `@kubb/plugin-fetch` and `@kubb/plugin-axios`: the grouped options object, the `RequestResult` shape, `throwOnError` and `ResponseError`, `contentType`, parameter and body serialization, response deserializers and the `validator` option, and consuming a `text/event-stream` operation with `for await`.

* [#236](https://github.com/kubb-labs/platform/pull/236) [`8dcfe53`](https://github.com/kubb-labs/platform/commit/8dcfe53903fe5cdfa1fff77495e1888e7cc63c57) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Match the top spacing on the plugins, adapters, parsers, contributors, sponsors, and blog pages to the docs and extension detail pages. These `layout: page` routes opened with a 3rem gap above their title, so it sat much lower than on the rest of the site; they now start at the same `--kubb-space-3` offset below the nav.

* [#125](https://github.com/kubb-labs/platform/pull/125) [`5ce4a1c`](https://github.com/kubb-labs/platform/commit/5ce4a1c696e7c701a9aa5a812f040a1bf67bce9c) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Allow the `status.kubb.dev` iframe and `cdn.jsdelivr.net` source map fetches in the CSP, and add `mobile-web-app-capable` alongside the deprecated apple-prefixed meta.

* [#126](https://github.com/kubb-labs/platform/pull/126) [`4bfffe7`](https://github.com/kubb-labs/platform/commit/4bfffe7002f7d3ee8b9923efc073953d5713b479) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Document every diagnostic code under `docs/5.x/diagnostics`, so each `docs:` link Kubb prints resolves. The index lists all codes with their severity and a one-line summary.

* [#136](https://github.com/kubb-labs/platform/pull/136) [`1a9dd5b`](https://github.com/kubb-labs/platform/commit/1a9dd5b270c80d8d5de41ad51e7ed0f717c57da2) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Document the `@kubb/plugin-client` class naming change in the v5 migration guide: class clients (`clientType: 'class'`, `clientType: 'staticClass'`, and `sdk`) now name each tag class with a `Client` suffix (`pet` generates `PetClient`) so the barrel no longer collides with the schema model of the same name. The guide shows the before and after output and how to restore the old names through `resolver.resolveGroupName`.

* [#134](https://github.com/kubb-labs/platform/pull/134) [`e42220f`](https://github.com/kubb-labs/platform/commit/e42220f9193efe95f684fde947f1dfc6b7cca407) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Sync the hand-written docs with kubb v5.0.0-beta.44: `Diagnostics.hasError`/`isProblem`/`isPerformance` replace the removed `hasBuildError` and `'timing'` kind, the file manager and file processor sections describe the internal classes instead of removed exports, `config.input` narrowing uses the `in` operator, the last v4 `barrelType` examples use the `barrel` object, the AST ref helpers import from `@kubb/ast/utils`, and the incremental cache default is documented in the configuration reference and the migration guide (including a new rule in the upgrade prompt).

  Fix `generateDocs.tsx` generating zero plugin, adapter, parser, and middleware pages: the pinned `@kubb/renderer-jsx` has no `stream` method, so the silent fallback emitted nothing. The generator renders the tree and reads `renderer.files`, and throws when populated registries produce zero pages.

* [#122](https://github.com/kubb-labs/platform/pull/122) [`444dd55`](https://github.com/kubb-labs/platform/commit/444dd5582d44c3e359e5a031b908d469ad5d5384) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Link the footer copyright (`© 2022-2026 Stijn Van Hulle`) to [stijnvanhulle.be](https://stijnvanhulle.be).

* [#173](https://github.com/kubb-labs/platform/pull/173) [`ea628b1`](https://github.com/kubb-labs/platform/commit/ea628b1d97e9f3eafdc8770c2ff6febad6ebd3c4) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Extension pages (plugins, adapters, parsers) now declare `header: plugin|adapter|parser` in their YAML frontmatter instead of embedding a component call in the markdown body. Layout.vue reads the frontmatter key and renders the header in the `#doc-before` slot, keeping content files component-free.

* [#157](https://github.com/kubb-labs/platform/pull/157) [`3b06b75`](https://github.com/kubb-labs/platform/commit/3b06b75b65425752507c471b5d5f2e222b1865fb) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Remove unused code flagged by knip in the docs app. Drop the dead `DOCS_DIR` and `MAX_BADGE_DISPLAY` constants and the unused framework brand logos in `brands.ts` (the VitePress config defines its own), and drop the redundant `export` on the script helpers `ghHeaders`, `parseGitHubRepo`, `fenceLang`, `renderCodeBlock`, and `renderExampleFile` that are only used within their own module. No runtime or output changes.

* [#139](https://github.com/kubb-labs/platform/pull/139) [`270efca`](https://github.com/kubb-labs/platform/commit/270efca9a43a9698674363a990e60a42ee9148ab) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Document the v5 tag group folder change in the migration guide. Grouping with `group: { type: 'tag' }` now writes each tag to a folder named after the plain camelCased tag instead of `${tag}Controller`, and the guide shows the `group.name` escape hatch that restores the v4 layout. Adds a matching rule to the upgrade prompt.

* [#141](https://github.com/kubb-labs/platform/pull/141) [`b01bbaa`](https://github.com/kubb-labs/platform/commit/b01bbaa09ccb153c695282b3ec44be42ec4106f1) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Document the new plugin `output.mode` option (`'directory' | 'group' | 'file'`) in the configuration reference and migration guide, and drop the removed `ctx.getMode` helper from the core API reference. The migration guide and its upgrade prompt now explain that single-file output needs an explicit `output.mode: 'file'` instead of an `output.path` ending in `.ts`. Add a diagnostics page for `KUBB_INVALID_PLUGIN_OPTIONS`, the error raised when `output.mode: 'group'` is set without a `group` option.

* [#144](https://github.com/kubb-labs/platform/pull/144) [`2b612c0`](https://github.com/kubb-labs/platform/commit/2b612c01ded9181322ca2e125999a01f6e32da5f) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Remove `kubb agent` CLI command references from docs

* [#142](https://github.com/kubb-labs/platform/pull/142) [`6a4b654`](https://github.com/kubb-labs/platform/commit/6a4b654c9eeaa7172b19d7b34c72322041276301) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Drop the `'group'` value from the documented `output.mode` option. `output.mode` now reads `'directory' | 'file'` in the configuration reference and migration guide. The `KUBB_INVALID_PLUGIN_OPTIONS` diagnostics page now describes the remaining case, pairing `output.mode: 'file'` with a `group` option, and the `group` option keeps organizing `'directory'` output into per-tag or per-path subdirectories.

* [#192](https://github.com/kubb-labs/platform/pull/192) [`b1d0dbd`](https://github.com/kubb-labs/platform/commit/b1d0dbd10faf27b10fd649892498b43be4d55e4f) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Replace `@kubb/plugin-client` references with `@kubb/plugin-axios` and `@kubb/plugin-fetch`, now that the combined client package has been removed from the kubb ecosystem. Updates the Studio plugin registry, the kubb.dev site config and landing components, the agent package list, and the architecture docs.

* [#218](https://github.com/kubb-labs/platform/pull/218) [`6ec9abf`](https://github.com/kubb-labs/platform/commit/6ec9abf79b1ab7f12763b45ae8627ce6b95922db) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Restore the Macros guide to the sidebar under Going further. The plugin restructure moved the per-client how-to guides into the plugin sidebars and dropped the general Macros page, which the AST reference and every plugin's options page still link to.

* [#213](https://github.com/kubb-labs/platform/pull/213) [`f97d3e1`](https://github.com/kubb-labs/platform/commit/f97d3e1fd51450be9feb588e239d4e9afff8b9cc) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Rename the "Configuration" sidebar entry to `kubb.config.ts` with the kubb logo, and regroup the Reference section so configuration and commands sit together, ahead of the AST/Parsers/Adapters building blocks and the Telemetry/Diagnostics pair.

* [#175](https://github.com/kubb-labs/platform/pull/175) [`acb9d10`](https://github.com/kubb-labs/platform/commit/acb9d105c3d024cde37163de5805d037c63efe15) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Replace inline `<Terminal>` Vue components in docs with a markdown-it fence plugin. Terminal blocks now use ` ```terminal ` fences with `command:` and `output:` fields. Badge labels are removed from section headings.

* [#132](https://github.com/kubb-labs/platform/pull/132) [`085c231`](https://github.com/kubb-labs/platform/commit/085c2318b6fe922117d4c12addced4a47918699f) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - Align the landing-page `Terminal` view with the new kubb v5 beta output: two spaces after the symbol, plugin names padded to a fixed column, and a right-aligned summary block (`Plugins`, `Files`, `Duration`, `Output`).

* [#232](https://github.com/kubb-labs/platform/pull/232) [`37c3c8b`](https://github.com/kubb-labs/platform/commit/37c3c8bbae574773637653b345c5fe8c849c737e) Thanks [@stijnvanhulle](https://github.com/stijnvanhulle)! - fix(ui): ship @kubb/ui as source so Nuxt UI components resolve in consuming apps

  Components like `ConfirmModal` and `DangerSection` referenced `UModal`, `UAlert`, and other Nuxt UI components in their templates. The package used to ship pre-built, so those references compiled to runtime `resolveComponent()` calls that fail outside the library build, and Vue rendered them as inert unknown elements. In Kubb Studio this made the delete-agent confirmation modal invisible, both in the agents table and on the agent settings page.

  The package now ships raw source and each consumer compiles it: Kubb Studio transpiles it so Nuxt resolves the components (including the Nuxt icon runtime), and kubb.dev scans it through the Nuxt UI Vite plugin's `scanPackages` option, which substitutes the Vue-compatible icon. The tsdown build step, the extracted `@kubb/ui/style.css` entry, and the runtime resolution failures all go away.
