Skip to content

Kaleta 2.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 12:09
· 900 commits to main since this release

Kaleta 2.2 makes Claude the default way to run a site – and puts you in charge of what it may do. Every connection is full access, drafts only or read only; the change log shows what Claude changed and through which connection; and Claude follows the instructions you write for it.

What a connection may do

When you connect Claude – on the consent screen, or when you create a token under My account – you choose:

  • Everything your account may do: build, edit and publish, never beyond your role.
  • Drafts only: Claude builds pages, writes news drafts and prepares look changes. You publish them. It cannot change settings, redirects or anything else on the live site.
  • Read only: Claude reads pages, settings, the audit and the change log, and suggests changes.

How it works:

  • A limited connection only sees the tools it may use, and it never has the publishing permission.
  • Publishing through it is refused before anything is saved.
  • My account shows the access of every connected app and token.
  • Existing connections keep full access, so nothing changes until you reconnect with less.

Who changed what

  • The change log marks every change Claude made with the name of its connection.
  • It can show only Claude's changes or only people's.
  • Claude reads it too, with the new list_changes tool – "what changed this week?" now has an answer.

Instructions for Claude

Extensions → Claude connection → Instructions for Claude takes what Claude should keep to: how you address customers, words to use or avoid, house rules.

  • Every connection gets them when it connects.
  • They are also available to Claude as the resource kaleta://instructions.

Claude also offers ready-made tasks (in the Claude app under +):

  • build a page;
  • run the site audit and fix what is safe;
  • translate a page;
  • write a news item;
  • a weekly review of the site.

Claude from the first minute

  • The Claude connection is on in new installations. Existing sites keep their choice of extensions.
  • First steps on the Dashboard now include Connect Claude.
  • Sites in a subfolder can connect the Claude app through OAuth: they serve /.well-known/openid-configuration under the site.
  • The MCP protocol version is negotiated: 2025-06-18, 2025-03-26 and 2024-11-05.

More settings over the connection

Besides the site name and company details, update_settings now takes:

  • extensions and language versions;
  • the cookie bar;
  • SEO switches (indexing, schema.org, llms.txt, IndexNow, AI crawlers, robots.txt rules, verification codes);
  • analytics codes;
  • the code in <head>;
  • the security contact;
  • the instructions for Claude.

Claude cannot switch its own connection off.

Fixes

  • Publishing permission for builds: publishing through save_build, edit_build and build_from_html needs the publishing permission. Before, a custom role with access to Pages but without publishing could publish a build over the connection.
  • First steps in every language: the privacy-policy step recognises the page in German, Polish, French, Spanish, Italian and Slovak too.
  • Settings keep hidden fields: a settings field the form does not show keeps its value when the tab is saved.
  • No skipped data migrations: each data migration now runs once by name, whatever the database version says. A site updating from 1.x straight to 2.2 still converts its old pop-up elements.

For contributors

  • Mcp\Catalog has a fourth access kind, draft: tools whose effect is a draft. Catalog::allows() decides per connection.
  • Data migrations run by name (data_migrations, Migration::pending()), so a PHP migration no longer has to be the highest number of its release. Migration::DATA lists them, and a unit test keeps the list in step with the files.
  • Auth::useConnection() carries the connection's name and access. canPublish() is false for limited connections.
  • New pieces:
    • Mcp\Prompts (resources and prompts);
    • migration 0035 (ka_api_tokeny.access, ka_oauth_kody.access, ka_protokol.via, the extensions of existing sites written down).
  • The recorded MCP contract gains list_changes.

Updating

Update from Settings → Backups and updates. It works from every earlier release; tested from 1.2, 1.4.1, 1.9, 2.0 and 2.1.