Skip to content

Kaeso 0.5.6. Released 2 November 2026, with 47 changes.

Latest
Released
Changes
47 changes
In this release
Added, Changed, Fixed and Security
The release on GitHub (opens in a new tab)

Added

Changed

Gateway

KPP

Self-hosting

Fixed

  • Streamed tool calls keep the tool name the app defined (#598 (opens in a new tab))
  • Shortening an organization's log retention asks first, and saving one retention keeps an unsaved edit of the other (#602 (opens in a new tab))
  • Streams that break off log the tool call Kaeso was still holding back and count its tokens in the usage estimate (#603 (opens in a new tab))
  • Tool call arguments, citations and unknown parts that a Responses stream sends only in the finished item reach every app (#606 (opens in a new tab))
  • A system or developer message between two tool results reaches Chat Completions models after the last result (#608 (opens in a new tab))
  • An Anthropic stream error in another shape or in plain text keeps the provider's message (#609 (opens in a new tab))
  • An ended session sends you to sign in from any page, the request log stops refetching a page that keeps failing, and the project overview explains what couldn't load (#610 (opens in a new tab))
  • A Chat Completions stream's second finish chunk no longer adds an empty text block after the stop (#612 (opens in a new tab))
  • Date pickers name the day you picked, and the request and audit logs filter by days in the install's time zone (#613 (opens in a new tab))
  • A Combobox lists every option again after a pick, and a data table you can open rows in is a grid that doesn't open a row when you select its text (#621 (opens in a new tab))
  • The project's forms show why a name was refused under the name, and the key and service account dialogs go back to it (#624 (opens in a new tab))
  • Request logs say a stream ended because Kaeso restarted, not because the app left, and a broken-off upload is no longer called too large (#625 (opens in a new tab))
  • The postgres.pool_size setting now says it sizes each instance's pool and that background jobs open up to 8 connections outside it (#633 (opens in a new tab))
  • The gateway raises its open-file limit at startup, so heavy traffic no longer runs it out of sockets at about 500 streams (#635 (opens in a new tab))
  • Automatic updates retry within the window's hour when they can't start, and no longer retry a release whose update rolled back (#639 (opens in a new tab))
  • The updater gives each Docker call its own timeout, so a hung Docker no longer holds an update for 10 minutes past its health deadline (#640 (opens in a new tab))
  • The password hint wraps under its field instead of running past the dialog and off a phone's screen (#645 (opens in a new tab))

Gateway

  • Long agent conversations no longer hit "busy translating" at half the memory budget (#601 (opens in a new tab))
  • Limit checks cost the same however many requests are open, instead of slowing Valkey down as streams pile up (#604 (opens in a new tab))
  • Limited streams no longer pause for Valkey once a minute, and a limited reply ends as soon as it is charged (#607 (opens in a new tab))
  • Requests no longer wait for PostgreSQL every 30 seconds when a key's cached entries expire (#616 (opens in a new tab))
  • Budgets no longer lose up to 10 seconds of usage when their counter is rebuilt during a usage write (#619 (opens in a new tab))
  • A restart no longer loses the last seconds of usage and request logs when Docker stops the gateway before its requests have drained (#631 (opens in a new tab))
  • Scheduling an organization's deletion no longer reads every user of the install, and no longer reports an error once the organization is scheduled (#632 (opens in a new tab))
  • Request logs keep flowing after ClickHouse recovers from a stall, instead of the writer hanging until a restart (#634 (opens in a new tab))

Console

  • Instance users and organizations stay in the gateway's order instead of sorting only the rows loaded so far (#597 (opens in a new tab))
  • The playground's model list follows catalogue changes, the audit log's Clear search removes the target filter, and deleting your account forgets what the browser kept (#599 (opens in a new tab))

Security

  • Changing your password can also disconnect your agents, for when someone else may have connected one (#605 (opens in a new tab))
  • A disabled key can no longer be rotated into a working one; enable it first (#618 (opens in a new tab))
  • Ending your own sessions is now recorded in the instance's audit log (#620 (opens in a new tab))
  • An agent no longer sees organizations and projects it was shut out of in your memberships or a member's rights (#622 (opens in a new tab))
  • An organization past its deletion date can no longer be restored, and a restore under way stops its final deletion instead of losing its logs (#628 (opens in a new tab))
  • Changing an organization's log retention or content logging now needs a recent sign-in, and the right is marked sensitive (#629 (opens in a new tab))
  • Agent sign-ins are limited per address and capped, unknown agent tokens count toward key throttling, and sign-in errors go back only to approved agents (#638 (opens in a new tab))

Gateway

  • An ownership transfer racing with a demotion, removal or leave no longer leaves an organization without an owner (#611 (opens in a new tab))
  • A key created while its member is removed, its account deleted or its project or service account archived is refused or archived with the rest (#614 (opens in a new tab))
  • A burst of sign-in attempts can no longer run the gateway out of memory (#630 (opens in a new tab))

More releases