All releases
v0.29.0Latest12 November 2026

Choose your speech model, hand the agent secrets safely, and a rebuilt desktop UI

3 highlights3 improvements7 fixes

Voice input now lets you pick a speech model graded for your languages, the agent can ask for API keys through a card that keeps them out of the chat, and the desktop interface passed a full quality review.

Featured

Pick the speech model for dictation, graded for your languages

Settings, the Voice pane and the command line now list fourteen speech models, each graded A to F for the languages you use, with Recommended, Faster and More accurate suggestions for your GPU or CPU. Your choice syncs between the desktop app and the CLI, and Automatic keeps the previous default. (#1317)

The agent can ask for a secret without it entering the chat

A dedicated card collects API keys, tokens and passwords, and the value never reaches the chat, history, logs or telemetry: it travels over its own channel, is stored encrypted under a one-use reference and expires after a day. The agent can use it directly, for example as an environment variable or header for a tool server, and a system rule stops it asking for secrets in plain text. (#1381)

A desktop interface rebuilt against a sixteen-metric quality rubric

Seven evaluation waves and three rounds of owner review brought every visual and UX metric to at least 9 out of 10. You get a layout that holds down to 800 by 600, readable accent text in all six themes, one vocabulary and one icon size, compact tool rows, an empty chat that suits newcomers, and a single connection-lost banner. (#1359)

Improved

Unreal extension summaries name the domains they cover

The catalog the agent sees now describes each Unreal extension in players' words, such as stamina, drain, regen, roll or aiming at a target. Requests like a sprinting stamina bar lead it to the right installable package instead of hand-written code. (#1321)

A cleaner composer mic and dictation in the comment panel

The language switcher next to the composer mic is gone; dictation follows the active language in Settings, and the mic is a transparent square that matches the context meter. The citation comment panel gets its own mic, and a recording only types into the field where it started. (#1324)

Links and selectable text in the secret request card

Labels and reasons on the secret card now show links you can click and text you can select and copy, on desktop, mobile, the command line and the remote pane. Desktop links open only through the external browser bridge, and mobile taps go through the existing confirmation prompt. (#1390)

Fixed

Unreal projects saved with a byte order mark open again

Project and plugin descriptors that start with a UTF-8 byte order mark, as Windows PowerShell writes them, now launch the editor and install extensions instead of failing to parse. A read-only descriptor produces a clear error rather than a silent failure. (#1316)

The desktop app recovers after a crash instead of refusing to start

A hard crash could leave the background service unable to confirm that leftover processes had stopped, so every start reported that the chat could not be restored and restarting did not help. Recovery now works even when the session inherits a broken temp folder, and the service role no longer misreads its own runtime. (#1319)

Chats on one project stop evicting each other's tool sessions

Each chat used to open its own connection to the hosted tool server, so two chats on the same project knocked each other offline in an endless reconnect loop. Chats now share one session per project and account, reconnects are jittered, and closing a chat releases only its own listeners. (#1323)

Separate clients on one project stop replacing each other's sessions

When the desktop, a command-line agent or another worker shared one instance identity, the tool server replaced their session about every half minute and the eviction went unnoticed. The app now recognises a replaced session from the server's reply and gives each process its own identity, and engine selection is per chat again. (#1326)

Test sandboxes on shared Linux hosts no longer collide

On machines where several accounts share one temp folder, the first account to create the test home owned it and every other account failed. The test home now carries the user id on POSIX, so parallel runners each get their own. (#1382)

No more unauthenticated probes to the hosted server

A session without a usable token kept pinging the hosted server, producing tens of thousands of rejected requests a day. The connectivity check now reports the session as unauthorized without sending anything, while local and self-hosted servers are still probed. (#1389)

Secret request strings translated and Android lint cleared

The secret request card's text now ships in every supported language on iOS, so the localization check passes again, and the Android workspace screen's lint errors are gone. (#1385)

Under the hood

  • docs(agent-lab): iteration 22 record (campfire regression) and six new Unreal extension tasks (#1314)
  • ci: the docs-only gate also skips the root.claude/ and.agents/ (#1315)
  • docs(agent-lab): iteration 23 record (gas-stamina-sprint) and the Third Person stand recipe fix (#1320)
  • chore(contracts): recapture the catalog contract for Claude Fable 5.2 (#1318)
  • docs(agent-lab): A/B eval of editor diagnostics (Unreal-MCP #430), iteration 24 (#1322)
  • chore(deps): bump @anthropic-ai/claude-agent-sdk to 0.3.322 (#1325)
  • chore(deps): @baizor/gamedev-cli-core ^0.9.0 (#1357)
  • chore(deps): engine CLIs and cli-core at their newest releases (#1393)
  • chore(deps): engine CLIs at their newest releases (1.11.1 / 0.39.1 / 0.31.1) (#1394)