Hinzugefügt
- Cerebras is a built-in provider: add its key and call its models from any app format (#642 (öffnet in einem neuen Tab))
Geändert
- The model API takes request bodies up to 32 MiB by default, as Anthropic does, instead of 8 MiB (#617 (öffnet in einem neuen Tab))
- Kaeso decodes large requests about a third faster by counting each body once (#623 (öffnet in einem neuen Tab))
Gateway
- The gateway serves more requests per second under heavy load and spends less CPU on each (#600 (öffnet in einem neuen Tab))
- A response cache lookup on a large request no longer holds up other requests on the same gateway thread (#626 (öffnet in einem neuen Tab))
- A fresh install starts with KPMR's OpenRouter prices as of 2 November 2026, 22:15 UTC (#644 (öffnet in einem neuen Tab))
KPP
- A Chat Completions tool call streamed without an id no longer slows the stream down as it grows (#615 (öffnet in einem neuen Tab))
- Kaeso translates large Responses requests, such as long Codex threads, with less work (#627 (öffnet in einem neuen Tab))
- Kaeso translates streamed replies with less work per chunk, 1.3 to 1.6 times faster for the common pairs (#641 (öffnet in einem neuen Tab))
Self-hosting
- Updates finish 10 to 15 seconds sooner, because new containers report healthy as soon as they are (#636 (öffnet in einem neuen Tab))
Behoben
- Streamed tool calls keep the tool name the app defined (#598 (öffnet in einem neuen Tab))
- Shortening an organization's log retention asks first, and saving one retention keeps an unsaved edit of the other (#602 (öffnet in einem neuen Tab))
- Streams that break off log the tool call Kaeso was still holding back and count its tokens in the usage estimate (#603 (öffnet in einem neuen Tab))
- Tool call arguments, citations and unknown parts that a Responses stream sends only in the finished item reach every app (#606 (öffnet in einem neuen Tab))
- A system or developer message between two tool results reaches Chat Completions models after the last result (#608 (öffnet in einem neuen Tab))
- An Anthropic stream error in another shape or in plain text keeps the provider's message (#609 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- A Chat Completions stream's second finish chunk no longer adds an empty text block after the stop (#612 (öffnet in einem neuen Tab))
- Date pickers name the day you picked, and the request and audit logs filter by days in the install's time zone (#613 (öffnet in einem neuen 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 (öffnet in einem neuen 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 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- The
postgres.pool_sizesetting now says it sizes each instance's pool and that background jobs open up to 8 connections outside it (#633 (öffnet in einem neuen 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 (öffnet in einem neuen 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 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- The password hint wraps under its field instead of running past the dialog and off a phone's screen (#645 (öffnet in einem neuen Tab))
Gateway
- Long agent conversations no longer hit "busy translating" at half the memory budget (#601 (öffnet in einem neuen Tab))
- Limit checks cost the same however many requests are open, instead of slowing Valkey down as streams pile up (#604 (öffnet in einem neuen Tab))
- Limited streams no longer pause for Valkey once a minute, and a limited reply ends as soon as it is charged (#607 (öffnet in einem neuen Tab))
- Requests no longer wait for PostgreSQL every 30 seconds when a key's cached entries expire (#616 (öffnet in einem neuen Tab))
- Budgets no longer lose up to 10 seconds of usage when their counter is rebuilt during a usage write (#619 (öffnet in einem neuen 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 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- Request logs keep flowing after ClickHouse recovers from a stall, instead of the writer hanging until a restart (#634 (öffnet in einem neuen Tab))
Console
- Instance users and organizations stay in the gateway's order instead of sorting only the rows loaded so far (#597 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
Sicherheit
- Changing your password can also disconnect your agents, for when someone else may have connected one (#605 (öffnet in einem neuen Tab))
- A disabled key can no longer be rotated into a working one; enable it first (#618 (öffnet in einem neuen Tab))
- Ending your own sessions is now recorded in the instance's audit log (#620 (öffnet in einem neuen Tab))
- An agent no longer sees organizations and projects it was shut out of in your memberships or a member's rights (#622 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- Changing an organization's log retention or content logging now needs a recent sign-in, and the right is marked sensitive (#629 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
Gateway
- An ownership transfer racing with a demotion, removal or leave no longer leaves an organization without an owner (#611 (öffnet in einem neuen 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 (öffnet in einem neuen Tab))
- A burst of sign-in attempts can no longer run the gateway out of memory (#630 (öffnet in einem neuen Tab))