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,ChatResponseandChatSessionaliases are removed — importAgentSDK,AgentConfig,AgentResponseandAgentSession, their names since v0.20.0. (PR #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, #5246)
- Undo a turn’s file changes — Review changes shows the diff; Undo this turn restores every file, even after a restart. (PR #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, #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, #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, #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, #5270)
- gpt-oss 20B and 120B are supported local models where they fit. (PRs #5356, #5374, #5357)
- A new look — a frameless desktop window, eight color palettes, and new type and motion that reduced motion turns off. (PRs #5312, #5290, #5266)
- First-run setup names the chat model and its download size up front. (PR #5240)
- Lemonade Server v2026.43.3. (PRs #5148, #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)
- 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)
- 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, #5390)
- Esc closes a dialog without stopping the answer. (PR #5433)
- A rejected cloud key names the fix for the app you are in, and files already saved are listed as saved. (PR #5440)
- A turn the model gave up on is marked failed, not done, with what ran and what is unfinished. (PR #5432)
- Ctrl+C on a TUI one-shot stops the agent’s turn too. (PR #5435)
- The desktop app survives an agent that died, and quitting stops every process it started. (PR #5438)
- Web search keeps working when DuckDuckGo rate-limits — it retries, tries the lite endpoint, and uses Tavily if you connected it. (PR #5434)
- “Undo may be incomplete” appears only when a snippet or script may have written files, and names what ran. (PR #5436)
- GAIA stops only a Lemonade Server it started itself. (PR #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, #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, #5328, #5336, #5337, #5314, #5317, #5264)
- Closing one TUI session no longer stops the model server for every other session. (PR #5282)
- A PC that sleeps mid-answer no longer wakes to a stall error. (PR #5387)
- A failed turn is never re-run behind your back, so its tools don’t run twice. (PR #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, #5324, #5395, #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, #5384, #5383, #5382, #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, #5377, #5378)
- GAIA no longer closes your own PowerPoint or ngrok tunnels. (PRs #5345, #5376)
- Scheduled tasks show runs missed while the PC was off, run in windows that cross midnight, and recover after a crash. (PRs #5391, #5407, #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, #5449, #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, #5308)
- Your own scripts get 600 s instead of being killed at 30 s. (PR #5347)
- One bad batch of parallel tool calls no longer ends the turn with no answer. (PR #5413)
gaia install --lemonadechecks the installer’s size and SHA-256 before running it, for every supported installer. (PRs #5389, #5455)- Model servers left behind by a crashed Lemonade are stopped, so the next start doesn’t load the same models twice. (PR #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)
- Intel Macs can install GAIA again, with
install.sh,pip install amd-gaiaand the[rag]and[ui]extras. (PRs #5546, #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)
- 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)
- A Full access chat in the desktop app asks before a command that needs approval instead of refusing it. (PR #5562)
- Documents from the library reach new chats, and answers from documents are no longer saved as facts about you. (PR #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, #5537)
gaia uninstall --purgeremoves GAIA’s memory, sessions, config and agent, and lists what it keeps. (PR #5602)gaia downloadfinds GAIA’s own Lemonade Server instead of reporting downloaded models as missing. (PR #5590)
Contributors
Thanks to the community members who contributed to this release:- @c0mrade8 — the context-overflow check that looks only at the agent’s own model and its trained limit (PR #5219)
- @agammann — validating the offline hub cache before reading its age (PR #5371)
- @mvanhorn — resolving memory reminder deadlines from the evaluation date (PR #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 downloaduses 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)