← Goose
Goose v1.46.0
breakingdeprecatedmodelpricing2026-08-12 · official notes
Summary
- Unrolled agent loop #9574
- Cache-safe request assembly with append-only turn context and declared cache semantics #11022
- Streaming shell output while commands run #10808
Full notes
## ✨ Features
- Unrolled agent loop [#9574](https://github.com/aaif-goose/goose/pull/9574)
- Cache-safe request assembly with append-only turn context and declared cache semantics [#11022](https://github.com/aaif-goose/goose/pull/11022)
- Streaming shell output while commands run [#10808](https://github.com/aaif-goose/goose/pull/10808)
- Per-message usage stats UI (tokens, cost, TTFT, tok/s) [#10210](https://github.com/aaif-goose/goose/pull/10210)
- Per-message usage/cost tracking with derived session totals [#10172](https://github.com/aaif-goose/goose/pull/10172)
- Track cache tokens for accurate cost reporting [#9752](https://github.com/aaif-goose/goose/pull/9752)
- Markdown format option to session export [#10703](https://github.com/aaif-goose/goose/pull/10703)
- Resizable sidebar with drag handle and persisted width [#10795](https://github.com/aaif-goose/goose/pull/10795)
- Interactive menu for single select elicitations [#10327](https://github.com/aaif-goose/goose/pull/10327)
- Session metadata on sidebar chat hover [#10663](https://github.com/aaif-goose/goose/pull/10663)
- Configurable LOCAL_WHISPER_LANGUAGE for multilingual local transcription [#10634](https://github.com/aaif-goose/goose/pull/10634)
- Allow disabling built-in skills [#10600](https://github.com/aaif-goose/goose/pull/10600)
- Structured summary output with template rendering for compaction [#10471](https://github.com/aaif-goose/goose/pull/10471)
- Pass working_dir to the Stop hook context [#10296](https://github.com/aaif-goose/goose/pull/10296)
- Surface output-token-limit info [#10831](https://github.com/aaif-goose/goose/pull/10831)
- Tab completion and switch provider for `model` command [#10585](https://github.com/aaif-goose/goose/pull/10585)
- Collapse const-union enums in tool schemas [#10577](https://github.com/aaif-goose/goose/pull/10577)
- GenAI semantic convention attributes for OTEL [#10700](https://github.com/aaif-goose/goose/pull/10700)
- Enrich root span with gen_ai attributes and improve OTEL output format [#10816](https://github.com/aaif-goose/goose/pull/10816)
- Forward images and MCP embedded-resource blobs in Anthropic and Google formats [#10340](https://github.com/aaif-goose/goose/pull/10340)
- ACP session/new supports Hidden session via _meta.hidden [#10811](https://github.com/aaif-goose/goose/pull/10811)
- Stable agent event message identity [#10716](https://github.com/aaif-goose/goose/pull/10716)
- OAuth logo_uri in client ID metadata documents [#10727](https://github.com/aaif-goose/goose/pull/10727)
- Termux detection in installer to select musl portable build [#10568](https://github.com/aaif-goose/goose/pull/10568)
- Hooks feature with PreToolUse denial [#9093](https://github.com/aaif-goose/goose/pull/9093), [#9304](https://github.com/aaif-goose/goose/pull/9304)
- `/goal` command for agent self-evaluation before finishing [#9069](https://github.com/aaif-goose/goose/pull/9069)
- `/status` slash command [#9845](https://github.com/aaif-goose/goose/pull/9845)
- `/model` slash command to switch session model [#8747](https://github.com/aaif-goose/goose/pull/8747)
- `--edit` session flag to edit conversation before forking [#9799](https://github.com/aaif-goose/goose/pull/9799)
- `goose review` local code review command [#9114](https://github.com/aaif-goose/goose/pull/9114)
- Open plugins generalization with skills support [#9112](https://github.com/aaif-goose/goose/pull/9112)
- Summon extension: peek mode for async background tasks [#9519](https://github.com/aaif-goose/goose/pull/9519)
- Summon extension: context and working_dir parameters for delegate tasks [#9518](https://github.com/aaif-goose/goose/pull/9518), [#9520](https://github.com/aaif-goose/goose/pull/9520)
- Load global hints from ~/.agents/AGENTS.md [#9736](https://github.com/aaif-goose/goose/pull/9736)
- Proactive OAuth token refresh to avoid re-auth on every session [#8386](https://github.com/aaif-goose/goose/pull/8386)
- GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri [#9209](https://github.com/aaif-goose/goose/pull/9209)
- Unified thinking effort control across all providers [#9242](https://github.com/aaif-goose/goose/pull/9242)
- Projects as backend sources with system prompt injection [#8739](https://github.com/aaif-goose/goose/pull/8739)
- Group chat sessions by project in nav panel [#10212](https://github.com/aaif-goose/goose/pull/10212)
- Collapsible project group headers in nav panel [#10278](https://github.com/aaif-goose/goose/pull/10278)
- Worktree-aware directory switcher [#8450](https://github.com/aaif-goose/goose/pull/8450)
- Chat history search feature in navigation panel [#8448](https://github.com/aaif-goose/goose/pull/8448)
- Search filter to provider grid [#10437](https://github.com/aaif-goose/goose/pull/10437)
- Option to disable automatic update downloads [#9872](https://github.com/aaif-goose/goose/pull/9872)
- TUI diff viewer [#9260](https://github.com/aaif-goose/goose/pull/9260)
- MAX_CODE_BLOCK_LINES configurable via env vars [#9301](https://github.com/aaif-goose/goose/pull/9301)
- GOOSE_MAX_TOOL_RESPONSE_SIZE to configure tool output size limit [#9256](https://github.com/aaif-goose/goose/pull/9256)
- GOOSE_FAST_MODEL env var in ModelConfig::with_fast [#9296](https://github.com/aaif-goose/goose/pull/9296)
- GOOSE_DOCS_ROOT for air-gapped docs access [#10294](https://github.com/aaif-goose/goose/pull/10294)
- Quarterly option for scheduler [#9076](https://github.com/aaif-goose/goose/pull/9076)
- Harbor eval runner [#9138](https://github.com/aaif-goose/goose/pull/9138)
- goose://new-session and goose://resume deep links [#9196](https://github.com/aaif-goose/goose/pull/9196), [#9343](https://github.com/aaif-goose/goose/pull/9343)
- Initial prompt with goose://new-session [#9427](https://github.com/aaif-goose/goose/pull/9427)
- Encrypted Nostr session sharing [#8922](https://github.com/aaif-goose/goose/pull/8922)
- Import sessions [#9474](https://github.com/aaif-goose/goose/pull/9474)
- Hugging Face OAuth support with auth tab in settings [#9552](https://github.com/aaif-goose/goose/pull/9552)
- MLX models support in local inference provider [#9154](https://github.com/aaif-goose/goose/pull/9154)
- Linux Vulkan support for local inference [#9038](https://github.com/aaif-goose/goose/pull/9038)
- Reconnect desktop ACP sessions after sleep and connection loss [#10411](https://github.com/aaif-goose/goose/pull/10411)
- TLS support for ACP serve [#10088](https://github.com/aaif-goose/goose/pull/10088)
- Group consecutive tool calls into one summarized chain card [#8995](https://github.com/aaif-goose/goose/pull/8995)
- Bind MCP apps to trusted ownership metadata [#10747](https://github.com/aaif-goose/goose/pull/10747)
- MCP extensions in open plugins [#9471](https://github.com/aaif-goose/goose/pull/9471)
- Skills to the chat composer [#8881](https://github.com/aaif-goose/goose/pull/8881)
- Dynamically refresh skill instructions each turn [#9217](https://github.com/aaif-goose/goose/pull/9217)
- CLI to list skills with token counts [#9326](https://github.com/aaif-goose/goose/pull/9326)
- Image read tool [#9607](https://github.com/aaif-goose/goose/pull/9607)
- View model interactions [#9806](https://github.com/aaif-goose/goose/pull/9806)
- UniFFI SDK for cross-language bindings [#9593](https://github.com/aaif-goose/goose/pull/9593)
- Provider bindings MVP to goose-sdk with Python wheel publishing [#10208](https://github.com/aaif-goose/goose/pull/10208)
- Kotlin FFI with build and Maven publish [#10375](https://github.com/aaif-goose/goose/pull/10375)
- Create source archive as release artifact [#10786](https://github.com/aaif-goose/goose/pull/10786)
### New Providers
- Celeris provider [#10714](https://github.com/aaif-goose/goose/pull/10714)
- Friendli declarative provider [#10762](https://github.com/aaif-goose/goose/pull/10762)
- Azure AI Foundry multi-LLM provider [#10622](https://github.com/aaif-goose/goose/pull/10622)
- OllamaCloud provider with dynamic model discovery [#10264](https://github.com/aaif-goose/goose/pull/10264)
- Sakana AI provider for OpenAI-compatible Fugu API [#10357](https://github.com/aaif-goose/goose/pull/10357)
- iFlytek Spark and Astron MaaS providers [#9837](https://github.com/aaif-goose/goose/pull/9837)
- Fireworks AI declarative provider [#9990](https://github.com/aaif-goose/goose/pull/9990)
- OpenRouter request parameters support [#9276](https://github.com/aaif-goose/goose/pull/9276)
- Together AI declarative provider [#9545](https://github.com/aaif-goose/goose/pull/9545)
- OrcaRouter declarative provider [#9515](https://github.com/aaif-goose/goose/pull/9515)
- Perplexity declarative provider [#9324](https://github.com/aaif-goose/goose/pull/9324)
- Alibaba (Qwen via DashScope) declarative provider [#9443](https://github.com/aaif-goose/goose/pull/9443)
- Databricks AI Gateway provider [#9274](https://github.com/aaif-goose/goose/pull/9274)
- Scaleway provider [#9254](https://github.com/aaif-goose/goose/pull/9254)
- NEAR AI Cloud provider [#9352](https://github.com/aaif-goose/goose/pull/9352)
- EmpirioLabs declarative provider [#9771](https://github.com/aaif-goose/goose/pull/9771)
- xAI SuperGrok OAuth subscription provider [#9420](https://github.com/aaif-goose/goose/pull/9420)
- Vercel AI Gateway [#9144](https://github.com/aaif-goose/goose/pull/9144)
- Routstr declarative provider [#9175](https://github.com/aaif-goose/goose/pull/9175)
- FuturMix provider [#8840](https://github.com/aaif-goose/goose/pull/8840)
- oMLX declarative provider [#9177](https://github.com/aaif-goose/goose/pull/9177)
- Atomic Chat declarative provider [#9210](https://github.com/aaif-goose/goose/pull/9210)
- Muse Spark 1.1 via Meta Models API [#10432](https://github.com/aaif-goose/goose/pull/10432)
- AWS Bedrock support for OpenAI GPT models via mantle endpoint [#9707](https://github.com/aaif-goose/goose/pull/9707)
- Azure AD (Entra ID) bearer token auth via AZURE_OPENAI_AD_TOKEN [#9716](https://github.com/aaif-goose/goose/pull/9716)
### New Models
- GPT-5.6 support [#10384](https://github.com/aaif-goose/goose/pull/10384), [#10349](https://github.com/aaif-goose/goose/pull/10349)
- GPT-5.5 to ChatGPT Codex known models [#9292](https://github.com/aaif-goose/goose/pull/9292)
- GLM-5.2 support [#9967](https://github.com/aaif-goose/goose/pull/9967)
- Opus5 support with adaptive thinking [#10686](https://github.com/aaif-goose/goose/pull/10686)
- Claude-sonnet-5 and claude-fable-5 to known models [#10865](https://github.com/aaif-goose/goose/pull/10865), [#10183](https://github.com/aaif-goose/goose/pull/10183)
- Cursor composer-2.5 models [#10618](https://github.com/aaif-goose/goose/pull/10618)
- Cursor-agent models from CLI [#10367](https://github.com/aaif-goose/goose/pull/10367)
- Latest Gemini models [#10630](https://github.com/aaif-goose/goose/pull/10630)
- Gemini 3.x known locations and KNOWN_MODELS entries [#9142](https://github.com/aaif-goose/goose/pull/9142)
- MiniMax-M3 and M2.7 variants [#10431](https://github.com/aaif-goose/goose/pull/10431)
- OVHcloud Qwen3.6-27B model [#10339](https://github.com/aaif-goose/goose/pull/10339)
### Internationalization
- French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, zh-TW desktop locales [#10072](https://github.com/aaif-goose/goose/pull/10072)
- Korean localization [#9856](https://github.com/aaif-goose/goose/pull/9856), [#10667](https://github.com/aaif-goose/goose/pull/10667)
- Spanish (es) locale [#9833](https://github.com/aaif-goose/goose/pull/9833)
- Japanese locale [#9768](https://github.com/aaif-goose/goose/pull/9768)
- Hindi Desktop locale [#9733](https://github.com/aaif-goose/goose/pull/9733)
- Russian language support [#9406](https://github.com/aaif-goose/goose/pull/9406)
- Turkish desktop locale [#9392](https://github.com/aaif-goose/goose/pull/9392)
- Simplified Chinese (zh-CN) translation [#8765](https://github.com/aaif-goose/goose/pull/8765)
- Language selection feature [#9405](https://github.com/aaif-goose/goose/pull/9405)
## 🐛 Bug Fixes
- Reject invalid subrecipe content [#10994](https://github.com/aaif-goose/goose/pull/10994)
- Keep turn-context in place for OpenAI Responses-stack models for prompt caching [#10993](https://github.com/aaif-goose/goose/pull/10993)
- Byte-bound the shell truncation preview [#10992](https://github.com/aaif-goose/goose/pull/10992)
- Stop silently ignoring thinking effort off for OpenRouter [#10991](https://github.com/aaif-goose/goose/pull/10991)
- Dispatch edited queued messages [#10933](https://github.com/aaif-goose/goose/pull/10933)
- Contain recipe template paths [#10930](https://github.com/aaif-goose/goose/pull/10930)
- Make shell approval titles faithful [#10986](https://github.com/aaif-goose/goose/pull/10986)
- Block MCP app form submissions [#10985](https://github.com/aaif-goose/goose/pull/10985)
- Sanitize Bedrock tool errors [#10934](https://github.com/aaif-goose/goose/pull/10934)
- Implicit OAuth during model discovery [#10929](https://github.com/aaif-goose/goose/pull/10929)
- Keep ACP session naming out of live conversations [#10963](https://github.com/aaif-goose/goose/pull/10963)
- Sanitize Unicode tags in MCP resources [#10746](https://github.com/aaif-goose/goose/pull/10746)
- Preserve RFC 9207 iss from MCP OAuth callback [#10678](https://github.com/aaif-goose/goose/pull/10678)
- Shell ACP providers on desktop [#10907](https://github.com/aaif-goose/goose/pull/10907)
- Stop killing streaming responses at the total request timeout [#10620](https://github.com/aaif-goose/goose/pull/10620)
- Restore final_output_tool when agent is recreated after LRU eviction [#10793](https://github.com/aaif-goose/goose/pull/10793)
- Avoid O(n²) cloning during session load [#10665](https://github.com/aaif-goose/goose/pull/10665)
- Prefix child stderr log target so it passes the default goose=info filter [#10901](https://github.com/aaif-goose/goose/pull/10901)
- Fall back to static model list only for non-models payloads [#10189](https://github.com/aaif-goose/goose/pull/10189)
- Stdio extensions silently skipped when name missing or env: used in config [#10773](https://github.com/aaif-goose/goose/pull/10773)
- Start scheduler at startup instead of first ACP connection [#10766](https://github.com/aaif-goose/goose/pull/10766)
- Respect disabled builtin extensions (developer) at session start [#10223](https://github.com/aaif-goose/goose/pull/10223)
- Parse PyPI requirements for OSV checks [#10510](https://github.com/aaif-goose/goose/pull/10510)
- Contain voice file extensions in telegram [#10456](https://github.com/aaif-goose/goose/pull/10456)
- Preserve denied tool request precedence [#10612](https://github.com/aaif-goose/goose/pull/10612)
- Contain subdirectory hint discovery [#10545](https://github.com/aaif-goose/goose/pull/10545)
- Clear stale validation error when reopening the schedule modal [#10627](https://github.com/aaif-goose/goose/pull/10627)
- Sanitize shell/subprocess call in linux.rs [#10748](https://github.com/aaif-goose/goose/pull/10748)
- Unlink destination before copying binaries [#10705](https://github.com/aaif-goose/goose/pull/10705)
- Honor timeout_seconds on the Anthropic declarative provider [#10440](https://github.com/aaif-goose/goose/pull/10440)
- Allow removing images when editing user messages [#9979](https://github.com/aaif-goose/goose/pull/9979)
- Preserve thinking inline for Cerebras models that reject reasoning_content [#10774](https://github.com/aaif-goose/goose/pull/10774)
- Make CLI streaming render incremental instead of O(n^2) [#10487](https://github.com/aaif-goose/goose/pull/10487)
- Together provider: parse model list response [#10576](https://github.com/aaif-goose/goose/pull/10576)
- DeepSeek model names to v4 API [#10729](https://github.com/aaif-goose/goose/pull/10729)
- Forward Claude Code and Pi model picker selection to the adapter [#10675](https://github.com/aaif-goose/goose/pull/10675), [#10707](https://github.com/aaif-goose/goose/pull/10707)
- Preserve enabled flag when migrating platform extensions [#10690](https://github.com/aaif-goose/goose/pull/10690)
- Pass session working_dir to on_call_tool [#10689](https://github.com/aaif-goose/goose/pull/10689)
- Preserve adversary tool arguments [#10529](https://github.com/aaif-goose/goose/pull/10529)
- Keep XML snippets inside JSON as data for local-inference [#10606](https://github.com/aaif-goose/goose/pull/10606)
- Sync generated chat title in header [#10578](https://github.com/aaif-goose/goose/pull/10578)
- Prompt for tool approval in Telegram gateway sessions [#10613](https://github.com/aaif-goose/goose/pull/10613)
- Keep CLI provider prompts out of process arguments [#10547](https://github.com/aaif-goose/goose/pull/10547)
- Ignore stale inventory for static model lists [#10591](https://github.com/aaif-goose/goose/pull/10591)
- Preserve featured model size on delete and backfill missing sizes [#10422](https://github.com/aaif-goose/goose/pull/10422)
- Create inventory tables atomically with schema version [#10586](https://github.com/aaif-goose/goose/pull/10586)
- Rewrite oneOf to anyOf in tool schemas for OpenAI-compatible backends [#10571](https://github.com/aaif-goose/goose/pull/10571)
- Allow custom model as default for non-local providers [#10438](https://github.com/aaif-goose/goose/pull/10438)
- Require absolute goose path roots [#10454](https://github.com/aaif-goose/goose/pull/10454)
- Scope smart approval by request [#10457](https://github.com/aaif-goose/goose/pull/10457)
- Preserve fixed subrecipe values [#10452](https://github.com/aaif-goose/goose/pull/10452)
- Bundle git so hermit can clone its package registry in Flatpak [#10511](https://github.com/aaif-goose/goose/pull/10511)
- Forward image content chunks to client during live ACP session [#10485](https://github.com/aaif-goose/goose/pull/10485)
- Dispatch Code Mode callbacks on main runtime to prevent hangs [#10484](https://github.com/aaif-goose/goose/pull/10484)
- Protect OAuth token caches [#10516](https://github.com/aaif-goose/goose/pull/10516)
- Preserve content audience boundaries [#10493](https://github.com/aaif-goose/goose/pull/10493)
- Bound scheduled recipe validation [#10509](https://github.com/aaif-goose/goose/pull/10509)
- Return JSON-RPC errors from dispatch handlers instead of killing the connection [#10499](https://github.com/aaif-goose/goose/pull/10499)
- Avoid local inference Metal teardown crash [#10508](https://github.com/aaif-goose/goose/pull/10508)
- Enable indexmap serde support for musl builds [#10507](https://github.com/aaif-goose/goose/pull/10507)
- Scroll chat to the latest reply on session resume [#10501](https://github.com/aaif-goose/goose/pull/10501)
- Secure large response spill files [#10482](https://github.com/aaif-goose/goose/pull/10482)
- Register LiteLLM with refresh_only inventory so model picker lists models [#10489](https://github.com/aaif-goose/goose/pull/10489)
- Limit provider selector height in CLI [#10420](https://github.com/aaif-goose/goose/pull/10420)
- Tighten existing secrets file permissions [#10453](https://github.com/aaif-goose/goose/pull/10453)
- Classify image access capabilities in developer extension [#10451](https://github.com/aaif-goose/goose/pull/10451)
- Preserve one-time permission scope [#10450](https://github.com/aaif-goose/goose/pull/10450)
- Register goose:// scheme handler in Flatpak desktop entry [#10461](https://github.com/aaif-goose/goose/pull/10461)
- Reject duplicate recipe parameter keys [#10448](https://github.com/aaif-goose/goose/pull/10448)
- Synchronously kill orphaned goose serve backends on GUI close [#10292](https://github.com/aaif-goose/goose/pull/10292)
- Break self-referential $ref cycles before Code Mode schema [#10469](https://github.com/aaif-goose/goose/pull/10469)
- Stop multiline paste auto-submitting line-by-line on Windows [#10326](https://github.com/aaif-goose/goose/pull/10326)
- Hide nested config values in Configuration Editor [#10390](https://github.com/aaif-goose/goose/pull/10390)
- Stop resolving TUI scripts f
Weekly digest: every breaking change, retirement and price change across 20+ coding agents, one email.
Form not loading? Subscribe here.