Skip to navigation

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Fixed user invitation error handling (v4.102.2)

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

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.

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.

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.