> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.knapsack.cloud/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.knapsack.cloud/_mcp/server.

# Changelog

## October 20, 2026

## App Client connection check uses your saved URL (v4.106.1)

On the **Configuration** settings page, the connection check now tests the production URL saved for your workspace. While you edit the URL, the badge shows **Reachable** when your browser can load it, and the full check runs once you save. Workspaces that load the App Client from a separate internal address see **Save to check** until the change is saved.

The check is now available to workspace admins only.

## October 17, 2026

## Help menu links to updates, docs, and support (v4.105.3)

The **Knapsack** section of the app menu replaces the Roadmap link with three links: **Latest updates** opens this changelog, **Knapsack docs** opens the documentation, and **Help and feedback** starts an email to `help@knapsack.cloud` with your workspace ID and version details filled in.

## October 16, 2026

## Copy a block to another page (v4.105.2)

Authors can now copy a block to another page or pattern tab and keep the original where it is. Choose **Copy to page...** from the block menu, then pick the destination. The copy is added to the end of that page, and the confirmation links straight to it.

## Clearer message when sign-in fails (v4.105.2)

A failed sign-in now shows "Sign-in failed. We couldn't complete sign-in." with a prompt to try again, instead of an internal error message.

## October 13, 2026

## Fixed narrow page tab content beside the table of contents (v4.104.10)

On page tabs with a table of contents, the content again uses the full width of the page, with the table of contents at the right edge. Since v4.104.9 the content had been squeezed into the left half.

## Doctor lists nav items whose moves don't save (v4.104.10)

If a nav item's key in `knapsack.navs.yml` doesn't match the page or pattern it links to, moving it in a draft looked saved but reverted on reload. **Settings** > **Doctor** now has a **Nav Item Keys** section that lists each affected item and what to change in `knapsack.navs.yml` to fix it.

## October 12, 2026

## Fixed tabs breaking after a block was deleted (v4.104.9)

Deleting a block and then adding a page's first tab before the undo message closed could leave the tab pointing at the deleted block, with only a "Could not find block with id" message and no tab bar. Deleting a block now removes it from every place it's listed.

If a page already refers to a missing block, editors see a banner in its place with a **Remove Block** button, and viewers see nothing. The Doctor also removes missing blocks from page tabs, so drafts already saved in this state load normally.

## Doctor appears in the settings menu for Contributors (v4.104.9)

Contributors could open the Doctor but couldn't find it. It now appears under **Settings** > **Tools** > **Doctor** for every role that can use it, and in the app menu and command bar.

## October 10, 2026

## Sidebar highlights the right item when a page and a pattern share an ID (v4.104.7)

When a page and a pattern share an ID, such as a Date Picker page and a Date Picker pattern, opening the pattern no longer highlights the page's sidebar entry. Deleting, renaming, or duplicating one of them now affects only that one.

* New pages and patterns can no longer take an ID already used by another page or pattern.
* A page or pattern with no navigation entry now shows a banner with **Add to navigation...**, which places it anywhere in the sidebar, including inside nested groups.
* **Settings** > **Doctor** has a new **Pages and patterns sharing an ID** section that lists each pair and which one the sidebar links to.

## October 9, 2026

## Fixed list edits from other tabs and collaborators overwriting content (v4.104.3)

When a change to a list (such as a page's blocks) arrived from another browser tab or another author, an insert could overwrite an existing item instead of adding a new one, and a removal could leave an empty entry behind. The same affected discarding a draft from another tab and **Revert changes** after a failed save. Lists now update correctly in all three cases.

## Branded sign-in error page (v4.104.3)

When sign-in fails at `auth.knapsack.cloud`, you now see a Knapsack-styled error page with plain-language guidance and a reference ID to share with support, instead of the generic error page with a cropped logo.

## Invalid SVG uploads are rejected with a clear message (v4.104.4)

Uploading an SVG that browsers can't display on its own, such as one missing the SVG namespace or one that fails to parse, now stops before the upload and tells you what is wrong with the file.

## Fixed deleting patterns and pages that have no tabs (v4.104.4)

Deleting a pattern after removing all of its tabs, or a page stored without a block list, no longer fails with a "Cannot read properties of undefined" error.

## October 5, 2026

## Build design tokens without the full Knapsack CLI (v4.104.0)

The new `@knapsack/design-tokens-cli` package runs the design-token build step on its own. `design-tokens-cli build` reads your tokens JSON and writes the same per-target files (CSS, JS, Android, iOS) as the `knapsack` CLI's token build.

Configure it in a `design-tokens-cli.config.mjs` file with `export default configure({ ... })`, using the same `srcFilePath`, `distDir`, and `targets` options as the `designTokens` section of your Knapsack config. Flags such as `--targets css,js` override the config file. Requires Node.js 22.12 or later.

## September 23, 2026

## Spec enrichment now reports partial and empty results accurately (v4.102.4)

When a component's inferred spec comes back empty, the enrichment run now reports the correct outcome instead of showing success. Components that were shipping with no props table due to an empty enrichment response will now surface that gap in logs.

## September 22, 2026

## Package bundler fixed for browser apps (v4.102.3)

Design system packages built with `npx @knapsack/package-bundler` now load correctly in browser applications without errors or unstyled components.

## September 18, 2026

## Fixed user invitation error handling (v4.102.2)

Errors during user invitations no longer cause unexpected failures in the interface.

## September 15, 2026

## New CLI to bundle design systems for sharing (v4.102.0)

Design system teams can now run `npx @knapsack/package-bundler` to produce a single self-contained package that Knapsack can evaluate without accessing your private registry or dependency tree.

The bundler inlines runtime dependencies, verifies no imports leak out, and produces an installable tarball. Peer dependencies like React and Angular stay external so consumers get a single copy.

## September 14, 2026

## MCP now returns props for multi-template components (v4.101.5)

Calling `get-component` with `include: ["props"]` now returns prop tables for every template in a multi-template component, not just the first.

Previously, props for components with more than one template (such as a Tabs component with separate TabsBar and TabsLink templates) were unreachable via the `include` parameter.

## September 11, 2026

## Reviewer picker for DB-mode review requests (v4.101.0)

In DB mode, authors now choose a reviewer when requesting review of a draft, and a request without a reviewer isn't accepted.

The Request Review modal also shows a pre-flight check for overlapping in-review drafts, and admins can cancel a review request on behalf of an author with an optional reason.

## September 10, 2026

## API keys now grouped into Active, Expired, and Revoked tabs (v4.100.10)

The API keys page organizes credentials into three tabs so active keys are easy to find and revoked or expired ones don't clutter the list.

## Closing the API key reveal now asks for confirmation (v4.100.10)

Closing the new API key dialog before copying the key now asks you to confirm. The key is shown only once, so this keeps you from losing it by accident.

## Search and MCP context update on DB-mode publish (v4.100.10)

Publishing a draft on a DB-mode site now immediately updates search results and AI context, so queries reflect the latest published content without waiting for a code deploy.

## Migration-complete banner shows only after a real migration (v4.100.10)

The "We've moved to a new database" banner no longer appears when a scheduled freeze is cancelled without a migration having occurred.

## September 8, 2026

## Named URLs for read-only deployments (v4.100.8)

Read-only deployments can now be opened at a named URL, such as `/site/my-site/prod`, so each environment has an address that's easy to share. Your Knapsack team can set one up for you.

Read-only deployments also no longer show a misleading "Local Development" label in the top bar.

## Site load failures now show specific error pages (v4.100.8)

When a site or branch fails to load, you now see an error page that explains what went wrong instead of a generic message with a raw internal error string.

## September 4, 2026

## DB-mode publish modal shows a change summary (v4.100.6)

Admins publishing a DB-mode draft now see a confirmation modal that lists every added, modified, and removed page, pattern, and setting before they commit. The modal shows progress while publishing, confirms success, and shows an error inline if the publish fails.

## Site freeze banner alerts authors before saving stops (v4.100.6)

When a content freeze is scheduled or active, a persistent banner now appears in the authoring UI so authors know saving is paused and why, before they try to save.

## DB-mode authoring surfaces use draft vocabulary (v4.100.6)

All DB-mode authoring surfaces now say "draft" instead of "branch" and other git terms.

## Fixed crash blanking the app for admins on some sites (v4.100.6)

Admins on sites that had never used tabs or block collections no longer see the entire app replaced with a blank error screen.

## Fixed `knapsack start` deleting demo files on connect (v4.100.6)

Starting the local Knapsack server no longer deletes demo files from your repository when a browser first connects.

## August 31, 2026

## Content management draft actions menu redesigned (v4.100.4)

Authors on non-legacy content management sites now see a redesigned draft actions menu with clear labels and updated copy. It no longer uses "branch" language, and actions are grouped into Draft Details, Actions, and Draft Management sections.

Desktop and mobile layouts differ: mobile includes Request review and Publish changes inline; desktop keeps those in the edit bar. An Exit button for proposed drafts and a responsive editing bar with continuous label truncation are also included.

## Draft change summary API now available (v4.100.4)

The API can now return a summary of a draft's changes, grouped into Added, Modified, and Removed, with documentation changes kept separate from settings changes. The review modal uses it to show reviewers exactly what a draft changes.

Display names resolve from post-change then pre-change data, so renamed and deleted entities still show their correct labels. An "other changes" group lists any changes that can't be attributed instead of leaving them out.

## Overlapping draft detection now available (v4.100.4)

The API can now find other proposed drafts on the same site that touch the same pages, patterns, or settings areas, so authors can spot possible conflicts before requesting review.

The check is advisory and never blocks a review request; a `mayHaveUndetectedOverlap` flag is returned when either draft has changes that cannot be classified.

## MCP list-tokens returns namespace digest and CSS variable names (v4.100.4)

AI agents that query design tokens now get namespace-qualified paths and the exact CSS custom property names your token build produces, so they invent fewer variable names.

Calling list-tokens with no arguments returns a digest of token counts by namespace; passing an `include` prefix filter returns flat token entries with `cssVar`, `path`, and `value`. The get-component tool gains section selection via `include`.

## Zendesk support form removed from the app (v4.100.4)

The "Contact Knapsack" modal and CSAT feedback form, which submitted to a retired Zendesk integration, have been removed from the app.

## Settings and authoring routes hidden on read-only deploys (v4.100.4)

When you view a deployed App Client, the Settings, MCP, Design, Develop, Prototype, and related navigation links are now hidden and their pages can't be opened, so read-only environments don't expose administrative pages.

The authoring workspace (latest, branch instances, local dev) is unaffected; only standalone deployed clients are gated.

## In-app documentation links updated (v4.100.4)

Help and documentation links in the app now point to the right pages on the new docs site instead of 404 pages.

## Markdown block headings no longer carry auto-generated IDs (v4.100.5)

Headings inside markdown blocks no longer get `id` attributes from the markdown renderer, which stops a deprecation warning the server logged on every render.

App UI renders markdown client-side with its own heading ID assignment, so this change does not affect the table-of-contents or any user-visible heading anchors in the authoring workspace.

## August 21, 2026

## MCP spec tables now include all authored fields (v4.100.3)

Component prop defaults, descriptions, slot titles, allowed component constraints, and authored ordering now appear in the spec tables that AI agents read over MCP, so agents no longer guess at missing data.

Props tables now include Default and Description columns; slots tables include Title, Required, Only One, Constraints, and Allowed Components columns, all in the order you authored them.

## Asset-set stylesheets and scripts load reliably (v4.100.3)

Asset-set CSS and JavaScript files no longer 404 or trigger MIME errors when multiple asset sets share source files from the same directory.

A race condition caused the server to register static routes at one URL prefix while serving clients a different prefix; pages could load unstyled as a result. URLs are now derived deterministically from the asset set configuration.

## August 20, 2026

## Asset-set stylesheets now load reliably (v4.100.2)

Fixed a race condition that served asset-set CSS from the wrong URL. The browser rejected the response with a MIME-type error, so styles didn't apply.

When multiple asset sets shared a source directory, non-deterministic Promise resolution could cause the server's static routes and the client's reported URLs to disagree, resulting in a 404 and an HTML response where CSS was expected.

## MCP pattern lookups no longer time out on cold cache (v4.100.2)

Large-pattern `get-pattern` calls that previously exceeded timeout thresholds on a cold cache now complete in seconds by sharing a single renderer-discovery request across concurrent callers.

## MCP tool handlers now serve revalidated content (v4.100.2)

Fixed a bug where live AI conversations ignored newly uploaded component builds. Tool handlers now serve the latest content after a revalidation.

_Showing the 20 most recent of 41 entries. Append `/llms.txt` to the changelog URL for the complete index._