> ## Documentation Index
> Fetch the complete documentation index at: https://amd-gaia.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.25.1

> An Agent UI that shows what each chat did and can undo it, safer sharing of one model server, and fixes for private chats, Full access and interrupted replies.

# GAIA v0.25.1 Release Notes

This release needs GAIA agent 0.3.1, which new installs get. With an older agent, private and memory-off chats stop with an update message instead of saving to memory, and Full access still can't open the folders you name.

## Breaking Changes

* **The `ChatSDK`, `ChatConfig`, `ChatResponse` and `ChatSession` aliases are removed** — import `AgentSDK`, `AgentConfig`, `AgentResponse` and `AgentSession`, their names since v0.20.0. (PR [#5366](https://github.com/amd/gaia/pull/5366))

## What's New

* **Each chat shows where it runs and what it changed** — a session panel lists the folders it may use, an internet switch, its outputs and every file it changed, and a rail beside each answer lists its sources and the files it wrote. (PRs [#5326](https://github.com/amd/gaia/pull/5326), [#5246](https://github.com/amd/gaia/pull/5246))
* **Undo a turn's file changes** — **Review changes** shows the diff; **Undo this turn** restores every file, even after a restart. (PR [#5239](https://github.com/amd/gaia/pull/5239))
* **A turn's work reads in plain words** — a live plan checklist and one line per tool call replace raw tool cards. (PRs [#5245](https://github.com/amd/gaia/pull/5245), [#5269](https://github.com/amd/gaia/pull/5269))
* **See what fills the context window and where the time goes**, type while GAIA works, and retry an answer with another model. (PRs [#5275](https://github.com/amd/gaia/pull/5275), [#5241](https://github.com/amd/gaia/pull/5241))
* **Chats that need you come first** — chats wait their turn for the GPU, and a tray icon shows whether GAIA is working or waiting on you. (PRs [#5242](https://github.com/amd/gaia/pull/5242), [#5354](https://github.com/amd/gaia/pull/5354))
* **The model picker shows where each model runs and whether it fits this PC**; cloud models show their price before you pick one, with an optional monthly limit. (PRs [#5244](https://github.com/amd/gaia/pull/5244), [#5270](https://github.com/amd/gaia/pull/5270))
* **gpt-oss 20B and 120B are supported local models** where they fit. (PRs [#5356](https://github.com/amd/gaia/pull/5356), [#5374](https://github.com/amd/gaia/pull/5374), [#5357](https://github.com/amd/gaia/pull/5357))
* **A new look** — a frameless desktop window, eight color palettes, and new type and motion that reduced motion turns off. (PRs [#5312](https://github.com/amd/gaia/pull/5312), [#5290](https://github.com/amd/gaia/pull/5290), [#5266](https://github.com/amd/gaia/pull/5266))
* **First-run setup names the chat model and its download size** up front. (PR [#5240](https://github.com/amd/gaia/pull/5240))
* **Lemonade Server v2026.43.3.** (PRs [#5148](https://github.com/amd/gaia/pull/5148), [#5558](https://github.com/amd/gaia/pull/5558))

## Bug Fixes

A selection of the user-visible fixes; the full list is in the changelog below.

* **Full access opens the folders you name in the desktop app** — it used to refuse them, often without asking. Ask mode shows Allow/Deny. (PR [#5414](https://github.com/amd/gaia/pull/5414))
* **Private and memory-off chats in the desktop app no longer save memories**, and relayed chats show their cost and the full details of a permission prompt. (PR [#5418](https://github.com/amd/gaia/pull/5418))
* **A reply cut short by a restart says so** — the Agent UI shows it as interrupted instead of an unanswered question, a resumed TUI session records it the same way, and a document caught mid-index shows **Failed** with **Retry**. (PRs [#5386](https://github.com/amd/gaia/pull/5386), [#5390](https://github.com/amd/gaia/pull/5390))
* **Esc closes a dialog without stopping the answer.** (PR [#5433](https://github.com/amd/gaia/pull/5433))
* **A rejected cloud key names the fix for the app you are in**, and files already saved are listed as saved. (PR [#5440](https://github.com/amd/gaia/pull/5440))
* **A turn the model gave up on is marked failed, not done**, with what ran and what is unfinished. (PR [#5432](https://github.com/amd/gaia/pull/5432))
* **Ctrl+C on a TUI one-shot stops the agent's turn too.** (PR [#5435](https://github.com/amd/gaia/pull/5435))
* **The desktop app survives an agent that died**, and quitting stops every process it started. (PR [#5438](https://github.com/amd/gaia/pull/5438))
* **Web search keeps working when DuckDuckGo rate-limits** — it retries, tries the lite endpoint, and uses Tavily if you connected it. (PR [#5434](https://github.com/amd/gaia/pull/5434))
* **"Undo may be incomplete" appears only when a snippet or script may have written files**, and names what ran. (PR [#5436](https://github.com/amd/gaia/pull/5436))
* **GAIA stops only a Lemonade Server it started itself.** (PR [#5439](https://github.com/amd/gaia/pull/5439))
* **A long turn that overflows the context window recovers** — the overflow check looks only at the agent's own model, and the retry keeps older tool results one call away instead of dropping them. (PRs [#5219](https://github.com/amd/gaia/pull/5219), [#5396](https://github.com/amd/gaia/pull/5396))
* **Chats and apps sharing one model server wait their turn** instead of failing, evicting each other's model, or reporting a busy server as stopped. (PRs [#5321](https://github.com/amd/gaia/pull/5321), [#5328](https://github.com/amd/gaia/pull/5328), [#5336](https://github.com/amd/gaia/pull/5336), [#5337](https://github.com/amd/gaia/pull/5337), [#5314](https://github.com/amd/gaia/pull/5314), [#5317](https://github.com/amd/gaia/pull/5317), [#5264](https://github.com/amd/gaia/pull/5264))
* **Closing one TUI session no longer stops the model server for every other session.** (PR [#5282](https://github.com/amd/gaia/pull/5282))
* **A PC that sleeps mid-answer no longer wakes to a stall error.** (PR [#5387](https://github.com/amd/gaia/pull/5387))
* **A failed turn is never re-run behind your back**, so its tools don't run twice. (PR [#5338](https://github.com/amd/gaia/pull/5338))
* **Memory keeps only what you say about yourself**, brings it up when a question is about it, stays current as facts change, and refuses corrupted entries. (PRs [#5243](https://github.com/amd/gaia/pull/5243), [#5324](https://github.com/amd/gaia/pull/5324), [#5395](https://github.com/amd/gaia/pull/5395), [#5306](https://github.com/amd/gaia/pull/5306))
* **A stuck MCP server, web fetch, media decode or chat bridge no longer hangs the turn**, and document indexing has limits and a working Cancel. (PRs [#5346](https://github.com/amd/gaia/pull/5346), [#5384](https://github.com/amd/gaia/pull/5384), [#5383](https://github.com/amd/gaia/pull/5383), [#5382](https://github.com/amd/gaia/pull/5382), [#5339](https://github.com/amd/gaia/pull/5339))
* **Settings and shared state survive several GAIA processes at once** — config writes, the file index and connector tokens are no longer lost or deleted. (PRs [#5388](https://github.com/amd/gaia/pull/5388), [#5377](https://github.com/amd/gaia/pull/5377), [#5378](https://github.com/amd/gaia/pull/5378))
* **GAIA no longer closes your own PowerPoint or ngrok tunnels.** (PRs [#5345](https://github.com/amd/gaia/pull/5345), [#5376](https://github.com/amd/gaia/pull/5376))
* **Scheduled tasks show runs missed while the PC was off**, run in windows that cross midnight, and recover after a crash. (PRs [#5391](https://github.com/amd/gaia/pull/5391), [#5407](https://github.com/amd/gaia/pull/5407), [#5380](https://github.com/amd/gaia/pull/5380))
* **A custom model downloads on its first chat**, can be picked in the Agent UI once downloaded, and is no longer reloaded before every turn. (PRs [#5360](https://github.com/amd/gaia/pull/5360), [#5449](https://github.com/amd/gaia/pull/5449), [#5362](https://github.com/amd/gaia/pull/5362))
* **A missing file is reported as not found instead of asking you to approve it**, and a download asks about the file, not its folder. (PRs [#5307](https://github.com/amd/gaia/pull/5307), [#5308](https://github.com/amd/gaia/pull/5308))
* **Your own scripts get 600 s instead of being killed at 30 s.** (PR [#5347](https://github.com/amd/gaia/pull/5347))
* **One bad batch of parallel tool calls no longer ends the turn with no answer.** (PR [#5413](https://github.com/amd/gaia/pull/5413))
* **`gaia install --lemonade` checks the installer's size and SHA-256 before running it**, for every supported installer. (PRs [#5389](https://github.com/amd/gaia/pull/5389), [#5455](https://github.com/amd/gaia/pull/5455))
* **Model servers left behind by a crashed Lemonade are stopped**, so the next start doesn't load the same models twice. (PR [#5352](https://github.com/amd/gaia/pull/5352))
* **The GAIA agent starts on Ubuntu 22.04, Debian 12 and RHEL 9** — it needed glibc 2.38 and failed at launch. (PR [#5545](https://github.com/amd/gaia/pull/5545))
* **Intel Macs can install GAIA again**, with `install.sh`, `pip install amd-gaia` and the `[rag]` and `[ui]` extras. (PRs [#5546](https://github.com/amd/gaia/pull/5546), [#5481](https://github.com/amd/gaia/pull/5481))
* **Settings load from a folder Windows lets you read but not create files in**, and GAIA operations waiting on a shared file take turns in order instead of timing out at random. (PR [#5469](https://github.com/amd/gaia/pull/5469))
* **A permission prompt left unanswered in one chat no longer blocks every other chat**, and chats on a cloud model don't wait for the GPU. (PR [#5609](https://github.com/amd/gaia/pull/5609))
* **A Full access chat in the desktop app asks before a command that needs approval** instead of refusing it. (PR [#5562](https://github.com/amd/gaia/pull/5562))
* **Documents from the library reach new chats**, and answers from documents are no longer saved as facts about you. (PR [#5540](https://github.com/amd/gaia/pull/5540))
* **The desktop app says when first-run setup failed** instead of opening as ready, and its crash dialog restarts or quits instead of leaving a dead window. (PRs [#5598](https://github.com/amd/gaia/pull/5598), [#5537](https://github.com/amd/gaia/pull/5537))
* **`gaia uninstall --purge` removes GAIA's memory, sessions, config and agent**, and lists what it keeps. (PR [#5602](https://github.com/amd/gaia/pull/5602))
* **`gaia download` finds GAIA's own Lemonade Server** instead of reporting downloaded models as missing. (PR [#5590](https://github.com/amd/gaia/pull/5590))

## Contributors

Thanks to the community members who contributed to this release:

* [@c0mrade8](https://github.com/c0mrade8) — the context-overflow check that looks only at the agent's own model and its trained limit (PR [#5219](https://github.com/amd/gaia/pull/5219))
* [@agammann](https://github.com/agammann) — validating the offline hub cache before reading its age (PR [#5371](https://github.com/amd/gaia/pull/5371))
* [@mvanhorn](https://github.com/mvanhorn) — resolving memory reminder deadlines from the evaluation date (PR [#5476](https://github.com/amd/gaia/pull/5476))

## Full Changelog

**213 commits** since v0.25.0:

* `cc5f35825` — fix(ui): plain library path-box errors and visible failure reasons (#5605)
* `01db252ff` — fix(agent): tell the flagship its own folders and the Agent UI's scheduler (#5564)
* `e9e775a01` — fix(ui): an unanswered prompt in one chat no longer blocks every other chat (#5609)
* `2547e81f5` — fix(agents): ask before a gated shell command in a Full access desktop chat (#5562)
* `5f28da95a` — fix(agents): show a no-argument tool while it runs, not after (#5466)
* `1c76fdf5f` — fix(ui): model list details on hover, picked downloads switch, and fresh-install fixes (#5538)
* `a66ec2a0b` — fix(agents): keep run\_python's scratch dir alive and stop system package installs (#5475)
* `b5a91d7d5` — fix(chat): a stopped reply stays stopped; tools without an answer say so (#5543)
* `aedde34c0` — fix(agents): content search skips unreadable files instead of a prompt per file (#5554)
* `e6488af52` — fix(agents): scale the local output cap with the window, and search the workspace in search\_file\_content (#5445)
* `c5f0e477c` — fix(rag): report a lock a parser wrapped as locked, not corrupted (#5480)
* `a7b60b1f6` — fix(ui): show why indexing failed instead of a generic server error (#5643)
* `200b09213` — fix(setup): plan against the server setup will use; plain error when Lemonade isn't answering (#5542)
* `c363fb2d8` — fix(ui): library documents reach new chats; document answers stay out of memory (#5540)
* `71b9e7811` — test(ui): fix two tests broken by PRs that landed together (#5664)
* `afb03785e` — fix(hub): bundle tiktoken's cl100k\_base in the frozen agent (#5600)
* `6cbb24621` — test: file-watcher, scheduler and router tests survive slow runners (#5627)
* `b8b03afa8` — fix(ui): scheduled tasks run on the installed GAIA agent and show their failures (#5539)
* `ea386183f` — fix(ui): model picker says when macOS is waiting on keychain access instead of spinning (#5594)
* `f15921a02` — fix(ui): export names the model the chat runs on, and says when it fails (#5619)
* `780504636` — fix(serve): send only the model's tool arguments in needs\_confirmation (#5645)
* `11a170ac3` — fix(electron): let Linux users turn off the GPU and choose the window platform (#5646)
* `7fff9fc8e` — fix(undo): Undo all removes folders a chat made for a file it then deleted (#5443)
* `3cadeb0ee` — fix(ui): Resend, Copy and Delete on a message can be clicked again (#5462)
* `6eaa0300d` — fix(desktop): stopping an agent on a busy PC no longer leaves its child processes running (#5463)
* `ad21a68c9` — fix(agent): loud clock errors cancel the tool; Modern Standby counts (#5464)
* `cc8ca5a40` — fix(memory\_reminder\_management): resolve memory reminder deadline from evaluation date (#5476)
* `3234d363e` — fix(connectors): report a connection being saved as busy, not gone (#5479)
* `49a440b71` — fix(ui): GAIA's icons in the tray and taskbar, a calmer empty chat (#5506)
* `27a8aa43a` — fix(desktop): crash dialog restarts or quits, quit no longer hangs (#5537)
* `51914491d` — fix(ui): show files a shell command deletes as deleted, with Undo (#5561)
* `af14f85c7` — fix(llm,ui): keep UTF-8 in model error messages and Agent UI JSON (#5563)
* `46f4ecaa5` — fix(webui): collapse long messages, code blocks and step outputs (#5566)
* `0844c1a86` — fix(ui): start a chat private, and show reminder due dates (#5568)
* `6185144fc` — fix(ui): reject schedules the parser can't read instead of guessing (#5569)
* `40208ba13` — fix(ui): name a chat when its first message is taken, and title cloud chats (#5580)
* `5e9eee758` — fix(ui): relayed flagship turns feed the turn summary and tool timer (#5587)
* `aa61e7b53` — fix(ui): create GAIA's documents folder before a chat is told it can write there (#5588)
* `2e6fc8c25` — fix(vlm): refuse a directory as an image path instead of crashing (#5589)
* `2fbb41a4e` — fix(cli): `gaia download` uses GAIA's own Lemonade instead of port 13305 (#5590)
* `3527ae6b4` — fix(cli): gaia diagnostics bundles the daemon, Lemonade and agent logs (#5591)
* `9b0542a28` — fix(ui): show ⌘ shortcuts on macOS (#5595)
* `278129810` — fix(ui): show a failed run's error once (#5596)
* `66b13e842` — fix(website): offer the terminal installers in the release-candidate section (#5597)
* `69083e2a5` — fix(ui): tell the user when first-run setup failed instead of opening as ready (#5598)
* `3f690f4bc` — fix(tools): on macOS, default file search skips the folders macOS guards with a prompt (#5599)
* `440e80bf1` — fix(cli): agent list shows the installed version; imported skills don't fail skill list (#5601)
* `5837fc9ed` — fix(uninstall): --purge also removes GAIA's memory, sessions, config and agent (#5602)
* `f962b0468` — fix(ui): show a cloud model's real context window, not Lemonade's 4096 (#5612)
* `822225d3e` — fix(ui): name the user's file in document indexing errors (#5613)
* `205708478` — fix(tui): stop /agents from naming an install command (#5616)
* `35c40a2e2` — fix(tui): price DeepSeek V4.1 Flash in /cost (#5617)
* `b9a03f6ff` — fix(ui): let Git and Memory connectors be connected (#5618)
* `dc969c93a` — fix(ui): say plainly why a Lemonade address can't be used (#5620)
* `2ea633bd1` — fix(ui): undo-history limits say which field is wrong (#5621)
* `39d835d2e` — fix(ui): don't list a memory a private chat refused to save (#5623)
* `0f6f91c9b` — fix(ui): keep keyboard focus inside open dialogs (#5632)
* `badced554` — fix: grey out the AMD gateway when its network can't be reached (#5633)
* `09df9b0bd` — fix(ui): say plainly when GAIA stops mid-answer (#5634)
* `c1a382cd2` — fix(ui): each answer remembers the model that wrote it (#5626)
* `243e43504` — ci(installer): wait out a transient exe lock in the Windows setup smoke test (#5630)
* `a62ea7f35` — ci(installers): drop the known-failure entries for #5526 and #5529 (#5606)
* `9ff05f917` — fix(ui): show a relayed agent's file changes in Outputs, Changes and Undo (#5553)
* `59d55d8de` — test: deflake four timing tests and keep tests out of the real home (#5610)
* `f6ced7fec` — ci(release): build and attach the terminal installers on release candidates (#5550)
* `e3f221c51` — ci(eval): tier the flagship eval and score Qwen3.6 on Strix Halo (#5535)
* `47860cdd0` — feat(website): one primary download per platform; Install starts it (#5536)
* `52d7165cd` — fix(eval): locate split chunks without jumping to repeated passages (#5548)
* `72c4421e3` — fix(deps): cap cryptography below 49 on Intel Macs (#5546)
* `d4d91fc80` — fix(packaging): build the Linux agent on glibc 2.34 so older distros run it (#5545)
* `6b174933f` — feat(eval): stop on a Claude quota outage and resume the run later (#5533)
* `233dfbd9e` — ci(installers): run every installer end to end on clean runners (#5521)
* `be2c42d79` — ci(release): dry-run the release train without publishing (#5534)
* `db8d17339` — feat(eval): record the Claude tokens each scenario really spent (#5525)
* `cee6a47ff` — ci(release): one command stamps and checks every version field (#5508)
* `3f07cee13` — fix(rag): unblock the release retrieval eval (image chunks, pypdf labels) (#5490)
* `3064f8032` — ci(release): take installers from GitHub releases, stop uploading them to R2 (#5509)
* `a2e03cbb7` — ci(workflows): run each CI lane only on the code it covers (#5514)
* `bf38b295a` — ci(eval): targeted flagship dispatch by category and scenario (#5513)
* `efc68fcf6` — chore: drop internal eval references from comments and tests (#5507)
* `ada7b4113` — feat(website): link download buttons to GitHub release assets (#5491)
* `0b14d740d` — fix(deps): cap pymupdf below 2 so Intel Macs can install (#5481)
* `b4018e00c` — fix(file-lock): fair cross-process queue, ACL-aware unwritable dirs (#5469)
* `1a0ffcd07` — chore(release): flagship agent 0.3.1 (#5461)
* `e34ba86f5` — Release v0.25.1 (#5474)
* `d80736b55` — fix(chat): retry a watched document another program has open (#5458)
* `ce37b284e` — fix(ui): an upload waiting for the embedder is not stopped as stalled (#5452)
* `d343b3aca` — fix(ui): an upload queued for the model isn't stopped as stuck, and Cancel reaches it (#5448)
* `72b945be4` — fix(ui): let the Agent UI pick a downloaded custom model (#5449)
* `7e49b1602` — test: catch reverts of the scheduler lease, restart notice and tool limit (#5456)
* `1158f69ba` — test: four flaky unit tests pass reliably and stay out of \~/.gaia (#5468)
* `53c6697cb` — fix(lemonade): ask the daemon once per poll while waiting for GAIA's server (#5444)
* `1441c1d74` — fix(installer): verify every supported Lemonade installer; clearer uninstall errors (#5455)
* `107e47fa8` — fix(connectors): keep a connection another GAIA process just forwarded (#5467)
* `b4af7d5c3` — fix(ui): closing the chat database no longer crashes a read still in flight (#5472)
* `a069d793b` — ci(release): push the flagship lock PR to a branch that can exist (#5473)
* `d0dc474b3` — fix(agents): report a turn the model gave up on as failed, not done (#5432)
* `419dbf09a` — ci(release): open a PR pinning the flagship's published hashes on main (#5447)
* `c64993de0` — fix(llm): only stop a Lemonade server the client launched itself (#5439)
* `f44b6c0b1` — fix(ui): only warn about untracked work that may have written files (#5436)
* `143c04ed1` — test(browser): stub DNS in test\_public\_urls\_pass (#5446)
* `65ba1e173` — fix(agents): keep web search working when DuckDuckGo rate-limits (#5434)
* `86fa4a6dc` — fix(ui): name each front-end's fix for a provider 401/403, keep saved work (#5440)
* `21f80a215` — fix(security): Full access grants named folders in the desktop app (#5414)
* `97e117697` — fix(electron): survive a dead agent's stdin and stop every child on quit (#5438)
* `6fe5e03ba` — fix(tui): stop the agent's turn when a one-shot gets Ctrl+C (#5435)
* `029082e17` — fix(agent): run a shell command the user asked for, and let the RSS tool decide (#4878)
* `975a59c92` — fix(hub): validate offline cache before reading age (#5371)
* `76c72aa03` — fix(webui): Esc closes a dialog without stopping the answer (#5433)
* `f20619470` — test(tui): wait for the stuck request to be accepted before stopping (#5437)
* `48ad949a6` — chore(deps): bump Lemonade Server to v2026.42.1 (#5148)
* `2387a0470` — test(llm): stop the load-backoff test recording the log lock's sleep (#5431)
* `a73c784db` — fix(ui): say when a restart cut a reply or an index short (#5386)
* `e42db3add` — fix(agents): one bad parallel batch no longer kills the turn (#5413)
* `d8a9ac363` — fix(agent): check only the agent's own model and clamp to trained ctx ceiling (#5219)
* `71316cf80` — fix(agents): check claims next to negations and keep the real final answer (#5415)
* `4b74329bd` — fix(packaging): bundle pymupdf's package data in the flagship binary (#5420)
* `88d277389` — fix(ui): relay token usage, permission details and memory mode to the sidecar (#5418)
* `05084953a` — fix(schedule): run windowed schedules that cross midnight (#5407)
* `937422e8c` — ci(linux): pin the CLI integration job to ubuntu-24.04 (#5416)
* `8864a3d19` — fix(ui): retry startup settings and offer to install a missing GAIA agent (#5412)
* `004f617e3` — chore(deps): bump the root-npm-dependencies group across 1 directory with 6 updates (#5372)
* `85ffc5e5f` — chore(deps): bump anthropics/claude-code-action from 1.0.240 to 1.0.252 in the github-actions group across 1 directory (#5044)
* `2680bc48d` — feat(ui): session panel — environment, outputs and changes per chat (#5326)
* `4217c620a` — test(ui,mcp): count scanner work and pin ping deadlines instead of timing them (#5409)
* `2113c9626` — feat(ui): context and performance panel (what fills the window, where the time goes) (#5275)
* `b0d240f98` — feat(models): support gpt-oss 20B and 120B in the TUI and Agent UI (#5356)
* `63b51a6fb` — feat(ui): type while GAIA works, see context fill, retry with another model (#5241)
* `0749c8d37` — feat(eval): long-horizon memory benchmark, and the stale-memory bugs it found (#5340)
* `71e328762` — feat(perf): turn log records how busy the model server was (#5285)
* `af653f070` — feat(ui): model picker shows real device, fit and live status (#5244)
* `761d89cc9` — fix: Agent UI and agent bugs found in an end-to-end UI test (#5311)
* `b45862286` — fix(mcp): expect the server-named crash error in the installer MCP harness (#5405)
* `b370ea0f0` — fix(memory): keep memory current as facts change over months (#5395)
* `0cbbac6d4` — fix(llm): a PC that sleeps mid-answer no longer wakes to a stall error (#5387)
* `75c6373d8` — ci: run every Strix Halo test on the devlab-dispatch pool (#5403)
* `31f7b110e` — fix(lemonade): register and download a custom model on its first chat (#5360)
* `194363fc5` — fix(agent): overflow retry archives tool results instead of dropping them (#5396)
* `76e51966a` — fix(hub): stop an agent install that waits forever on a pip lock (#5381)
* `c5cfa8344` — fix(release): read released daemon APIs from PyPI, drop the hand-kept table (#5394)
* `2086c04eb` — fix(state): lock and atomically replace shared \~/.gaia files across processes (#5388)
* `805a3b720` — fix(llm): auto\_load fails loudly when the model cannot be downloaded (#5323)
* `c4b53529b` — ci(release): retry-safe agent npm publishes; block on ancestor-skip lint (#5393)
* `6ca505f38` — ci(linux-halo): check the Linux user issues on a real Strix Halo (#5163)
* `f004baeed` — fix(daemon): a queued model request waits instead of failing, and shows it is waiting (#5328)
* `f4dcebef4` — fix(schedule): show runs missed while the PC was off or asleep (#5391)
* `c91dc176e` — fix(utils): report a watched file once it has finished being written (#5385)
* `8eb035379` — fix(messaging): stop a Slack or Telegram turn that makes no progress (#5382)
* `3906fa0b3` — fix(web): give page fetches and downloads an overall deadline (#5384)
* `446e752de` — fix(ui): bound document indexing in parallelism, time and Cancel (#5339)
* `46c273657` — chore(website,docs): retire the user-facing Agent Hub (#5365)
* `c2d6074e3` — fix(ui): stop reloading a custom model before every chat turn (#5362)
* `ee829a65f` — chore(cli): hide gaia hub from help; fix hints name gaia init (#5368)
* `2ffbb72c9` — feat(ui): a tray icon that shows what GAIA is doing and what needs you (#5354)
* `7e39510b5` — fix(llm): stop gpt-oss reading control markup in files as its own (#5357)
* `5a014465e` — fix(ui): one chat no longer holds the model away from every other chat (#5337)
* `664f91bbd` — fix(audio): stop an ffmpeg decode that stops making progress (#5383)
* `f1b3b52f2` — fix(llm): stop calling a shared KV-cache collision "conversation too long" (#5322)
* `884f5312f` — fix(scheduler): a job left firing by a crash no longer stays stuck forever (#5380)
* `de79ca8a0` — fix(lemonade): stop the model servers a dead lemond leaves behind (#5352)
* `b4e08e574` — fix(mcp): stop a hung MCP stdio server from freezing the turn (#5346)
* `92908a483` — fix(mcp): a busy tool call no longer takes the bridge offline (#5375)
* `8010c6a28` — fix(agents): send items on every array tool parameter (#5374)
* `be663c8b2` — fix(llm): wait for a busy shared Lemonade instead of hanging or failing (#5321)
* `afdda1401` — fix(web): ask permission for the downloaded file, not its folder (#5308)
* `8ddd6c115` — fix(ui): never re-run a failed chat turn behind the user's back (#5338)
* `066a3f367` — feat(website): show the desktop app and the terminal at work in their install cards (#5351)
* `15019a058` — fix(gaia-agent): save a turn the TUI's closing cut short as interrupted (#5390)
* `b8c2264fb` — fix(daemon): never kill a live daemon because queued leases slowed its status (#5327)
* `83cd38c77` — feat(ui): chat list shows what needs you, chats queue for the GPU, notification settings (#5242)
* `d5568b476` — feat(ui): frameless desktop window, color palettes, fading titles (#5312)
* `04698b6a8` — fix(daemon): closing a TUI session no longer kills the shared model server (#5282)
* `fd4099383` — feat(ui): side rail with each answer's sources, files and data flow (#5246)
* `645b63f97` — fix(security): report a missing path as not found instead of asking to approve it (#5307)
* `873c68696` — fix(ui): busy model server is not reported as stopped; polls stop piling up (#5317)
* `1e2d4704e` — feat(ui): show cloud prices before connecting, and a monthly spending limit (#5270)
* `a37ee9e61` — fix(memory): refuse tool-call markup and model reasoning at the store (#5306)
* `0efa63372` — feat(ui): show a turn's work in plain words, with a live plan checklist (#5245)
* `d10b423dc` — fix(memory): background memory jobs stop overwriting the chat's prompt cache (#5286)
* `0d61f0dd5` — feat(agent,ui): undo the file changes from a turn (#5239)
* `185125945` — fix(lemonade): wait for GAIA's restarted model server instead of failing the turn (#5264)
* `6c780d1a8` — feat(ui): warm gray and brass design tokens, soft-tinted controls, Inter (#5290)
* `81e00990e` — feat(ui): first-run setup names the chat model; new chats offer tasks (#5240)
* `41c5cc557` — fix(ui): cap chat titles and 404 unknown /api paths (#5272)
* `1c8187a2c` — fix(ui): answer footer and permission prompts speak plainly (#5269)
* `53cdd5023` — ci: stop the account switch, release evals and SWE-bench from going red on a clock (#5369)
* `ef78e7e70` — feat(ui): one motion system on shared tokens, off under reduced motion (#5266)
* `c9a468e3b` — ci: cut \~143 runner-hours/week and move small hardware tests off Strix Halo (#5162)
* `4fd125606` — fix(ui): stop the mobile tunnel killing the user's own ngrok tunnels (#5376)
* `0d77e3e38` — fix(daemon): a daemon for a scratch home exits once nothing has used it for two hours (#5359)
* `181c84e25` — fix(eval): the simulated user answers access prompts instead of letting them time out (#5358)
* `b2bd122da` — test(agents): rate-limit sleep test counts only the agent's own sleeps (#5355)
* `5d45d704f` — fix(gaia-agent): set up a /query turn off the event loop (#5349)
* `15200e87a` — fix(rag): wait visibly on a busy embedder instead of resending batches (#5348)
* `2a62a01b0` — fix(shell): give scripts a 600 s default instead of the 30 s kill (#5347)
* `4bdeb8628` — fix(ui): system status answers in bounded time and tells down from busy (#5344)
* `349830b34` — fix(ui): keep a running chat's replay buffer small and capped (#5343)
* `75fd6ea76` — fix(ui): never take a model from under another chat or app (#5336)
* `6e113b1c4` — fix(memory): surface stored facts in chats and keep saves out of sight (#5324)
* `915d3a9f3` — fix(tui): a turn waiting for the model is not reported as broken (#5319)
* `1c1546e30` — fix(tui): follow a daemon that restarted on a new port (#5318)
* `41ebf01b0` — fix(ui): chat survives a busy, slow or dropped backend connection (#5316)
* `ade5bab45` — fix(lemonade): stop calling a busy shared server stalled, and retry a stolen port (#5314)
* `0a14f8fd8` — fix(memory): remember only what the user says, and lead the memory page with it (#5243)
* `889204189` — fix(connectors): stop concurrent token refreshes deleting the connection (#5378)
* `11da36ac3` — fix(filesystem): stop deleting the file index when it is only locked (#5377)
* `3a0f1a6b7` — fix(rag): never kill the user's own PowerPoint on a PPTX timeout (#5345)
* `74c830ed6` — fix(installer): verify the Lemonade installer before running it (#5389)
* `1ba144752` — chore: delete the disabled agent PyPI lane, ChatSDK aliases, and committed eval runs (#5366)
* `363b1dc21` — ci(release): RCs publish without approval and never cancel each other (#5367)
* `65415ee85` — chore(installer): retire the "Terminal Hub" name in user-facing text (#5364)
* `e6d49de58` — fix(hub): let by-reference publishes exceed the inline 250 MiB cap (#5363)
* `7aaf5f05e` — ci(release): remove the Context7 docs refresh from the release workflow (#5353)

Full Changelog: [v0.25.0...v0.25.1](https://github.com/amd/gaia/compare/v0.25.0...v0.25.1)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.