Skip to content

Goose

v1.40.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

acp ai ai-agents mcp

Summary

AI summary

Broad release touches 🐛 Bug Fixes, ✨ Features, 🔧 Improvements, and 📚 Documentation.

Full changelog

✨ Features

  • Language selection in desktop app #9405
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, Traditional Chinese desktop locales #10072
  • Korean localization for desktop app #9856
  • Japanese locale support #9768
  • Spanish (es) locale support #9833
  • Hindi desktop locale #9733
  • /status slash command in CLI #9845
  • /model slash command for session model switching #8747
  • /goal command for agent self-evaluation before finishing #9069
  • goose review local code review command #9114
  • Peek mode for async background tasks in summon #9519
  • Context parameter and working_dir override for delegate tasks #9518 #9520
  • GLM-5.2 support #9967
  • Together AI declarative provider #9545
  • EmpirioLabs as declarative OpenAI-compatible provider #9771
  • OrcaRouter as declarative OpenAI-compatible provider #9515
  • NEAR AI Cloud provider #9352
  • Perplexity as declarative OpenAI-compatible provider #9324
  • Alibaba (Qwen via DashScope) declarative provider #9443
  • Databricks AI Gateway provider #9274
  • Scaleway provider #9254
  • Vercel AI Gateway #9144
  • xAI SuperGrok OAuth subscription provider #9420
  • OpenAI GPT models via AWS Bedrock mantle endpoint #9707
  • Azure Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN #9716
  • MLX models support for local inference provider #9154
  • Streamable HTTP support for deeplink generator #9954
  • Global hints loading from ~/.agents/AGENTS.md #9736
  • Unified thinking effort control across all providers #9242
  • Canonical thinking modes #9743
  • Hooks system for extensibility #9093
  • PreToolUse denial in hooks #9304
  • Honor blocking Stop hook decisions #9468
  • Option to disable automatic update downloads #9872
  • Track cache tokens for accurate cost reporting #9752
  • Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE #9256
  • Configurable MAX_CODE_BLOCK_LINES via env vars #9301
  • GOOSE_FAST_MODEL env var support #9296
  • Hugging Face OAuth support with auth tab in settings #9552
  • Chat history search in navigation panel #8448
  • Import sessions #9474
  • View model interactions #9806
  • View JSON content #9678
  • Image read tool #9607
  • goose://new-session deep link #9196
  • goose://resume session deep link #9343
  • Initial prompt with goose://new-session #9427
  • MCP extensions support in open plugins #9471
  • Nushell terminal and completion support #8628
  • TUI command on goose-cli #9385
  • TUI diff viewer #9260
  • Unified OTLP logging schema for cross-tool detection #9713
  • Prompt injection mitigation enabled by default for internal users #9612
  • Encrypted Nostr session sharing #8922
  • Quarterly option for scheduler #9076
  • Optional --parameters for scheduled recipes #8741
  • Worktree-aware directory switcher #8450
  • Harbor eval runner #9138
  • Linux musl CLI builds #9240

🐛 Bug Fixes

  • Mac auto-update config seeding #10132
  • Use async reqwest client so OTLP export works in goose serve mode #10100
  • Reject non-object tool-call arguments instead of panicking #9832
  • Save /edit prompts to history #10011
  • Use session.message_count for schedule sessions listing #10026
  • Sync session store after provider and model update #10060
  • Buffer thinking across stream chunks for DeepSeek/Kimi tool calls #9704
  • Surface actionable errors for truncated tool-call arguments #9946
  • Show optimistic toggle state when disabling an extension #9882
  • Do not pass temperature to ChatGPT Codex provider #9931
  • Resolve databricks_v2 pricing and surface cost in standard usage update #9925
  • Activate hermit on macOS so STDIO extensions resolve node #9482
  • Autovisualiser: accept JSON-encoded string for the data parameter #9838
  • Developer/read_image: send a User-Agent on URL image fetches #9927
  • Start a turn when /goal or /grind is set #9801
  • Pass thinking config to Bedrock Anthropic models #9794
  • Preserve Windows backslash paths in custom extension command #9741
  • Custom OpenAI provider dropping port when URL scheme is omitted #9730
  • ACP cancel race condition #9804
  • Removed window goosed when closing window #9818
  • Context exceeded checker more precise #9831
  • Inherit login-shell PATH in spawned subagents #9737
  • Accept string values for GOOSE_CONTEXT_LIMIT #9738
  • Clear rejected OAuth credentials after refresh #9694
  • Keep extended thinking within the Anthropic output cap #9814
  • RPM build-id links disabled #9671
  • Preserve custom API path in base_url derivation for OpenAI #9649
  • Handle resume deep links #9298
  • Repair PATH for plugin hook commands #9615
  • Restore Cmd/Ctrl+T new chat shortcut #9614
  • Lead with extension description, shorten HTTP/SSE transport label #9653
  • Mention menu icon to open the sidebar #9643
  • Dedupe React to prevent multiple instances in renderer #9631
  • Hermit cleanup in uvx and jbang scripts #9616
  • Use blocking OTLP HTTP exporter #9599
  • Fall back to default provider when resuming session with unavailable provider #9547
  • Provide Tokio runtime for OTLP HTTP exporter batch thread #9541
  • Read meta.n_ctx from /v1/models to fix context limit for local servers #9530
  • Align session history scrollbar with window edge #9601
  • Refresh session name in sidebar after rename #9543
  • Show resolved skill supporting file paths #9584
  • Implement real streaming via Bedrock ConverseStream API #9579
  • Record OpenAI-native cached_tokens in usage metering #9829
  • Override API URL option for Moonshot provider #9819
  • Detect image paths with spaces #9387
  • Restore new chat shortcut navigation #9528
  • Evict stale completed tasks to prevent unbounded memory growth #9514
  • OAuth callback timeout instead of hanging in WSL #9536
  • Warn on unmatched extension names in delegate #9513
  • Deleting recently created session and creating new shows deleted session's content #9351
  • Close modal when canceling recipe parameter form #9195
  • Ensure tool request timestamp precedes tool response timestamp #9462
  • Correctly map ollama_cloud to canonical provider #9639
  • Incorrect max tokens values for groq provider #9790
  • Mark stream decode errors retryable #9723
  • Classify Bedrock ValidationException as ExecutionError #9735
  • Page through all Databricks AI Gateway v2 endpoints when listing models #9753
  • Preserve unparseable extension entries during config refresh #9439
  • Surface Anthropic stream refusals as visible errors #9724
  • Skip non-recipe project config files in summon #9808
  • Dedup duplicate tool-call ids within a turn #9792
  • Resolve bundled extensions from discovery #9759
  • Include agentInfo in ACP initialize response #9765
  • Keep extensions icon visible after switching sessions #9787
  • Use media marker parts for vision prompts in local-inference #9452
  • Make azure api-version query param optional #9221
  • Preserve pending env vars in Add Extension form #9285
  • Tolerate missing responses output #9449
  • Stop main window growing taller on every launch #9409
  • Serialize per-session agent creation to stop duplicate MCP init #9357
  • Respect GOOSE_MAX_TURNS in gateway sessions #9354
  • Send empty object instead of null for Anthropic tool_use input #9355
  • Use context limit from /model/info for LiteLLM custom models #9303
  • Skip OTLP signals when protocol=grpc to avoid background-thread panic #9512
  • Forward ACP server context window size to clients #9455
  • Refresh provider list in Switch Models picker #9408
  • Start new chat in current window from recipe param modal #9422
  • Use refreshed gcloud token after reauth (retry Vertex AI on 401/403) #9849
  • Set TCP_USER_TIMEOUT on streamable HTTP clients #9207
  • Activate custom provider after adding via configure #9213
  • Reduce excessive MISSING_TRANSLATION warnings for fallback locales #9294
  • Eliminate cross-window deep link contamination #9273
  • Improve Telegram gateway error reporting and connection reliability #9223
  • Enable VT processing on Windows Console Host #9248
  • Zero out cost for local providers (ollama, local) #9219
  • Autovisualiser: use appInfo instead of clientInfo in MCP Apps init handshake #9249
  • Use mkdir -p for self-test workspace initialization #9247
  • Show tool name in approval prompt #9216
  • Resolve Azure CLI on Windows by using az.cmd #9215
  • Handle non-interactive terminal in goose configure on Windows #9214
  • Persist accumulated cost in session DB to survive reload #9191
  • Prevent tool-use marker leakage in toolshim output #8310
  • Re-apply canonical limits when delegate overrides model #9183
  • Remove hard-coded React alias that points to wrong location #9842

🔧 Improvements

  • Keep turn-context out of the Anthropic prefix cache #10030
  • Disable extended thinking for fast-model operations #9815
  • Support streamed tool calls without indexes #10023
  • Diagnostics migrated to JSON report #9964
  • Route MCP elicitations through tool streams #9943
  • Propagate elicitation decline and cancel actions end-to-end #9437
  • Allow unlisted models in search #9933
  • Sanitize extension environment maps #9884
  • Drop debug info for dependencies in dev profile #9843
  • Databricks responses API support check #9347
  • Open Model Gym output dir configurable #9789
  • Per-agent timeout configurable (GYM_AGENT_TIMEOUT) #9791
  • Session name as source of truth for displayed session titles #9841
  • Stricter GGUF requirements with auto detection of tool calling support #9442
  • Prefer goose aliases for Databricks v2 inventory #9430
  • Build summon instructions per turn #9329
  • ACP session list pagination #9199
  • Structured per-provider config block, non-destructive provider switching #8977
  • Emit trace_output as span attribute instead of event #9255
  • Flush OTLP traces reliably on exit with configurable timeout #9228
  • Proactive OAuth token refresh to avoid re-auth on every session #8386
  • Better parsing of pasted HTML as markdown #9190
  • Preserve thinking content for providers that require it #8857
  • Dynamically refresh skill instructions each turn #9217
  • GOOSE_OAUTH_CALLBACK_PORT support for stable OAuth redirect_uri #9209
  • Honor Retry-After on 429 responses #9161
  • Coalesce streaming Thinking deltas #9162
  • Strip chain-of-thought markers from custom provider output #8635
  • Use LRU cache for token counting #9586
  • Replace review subprocess timeout with turn limits #9571
  • Opt-in ACP last message snippets #9798
  • Expose raw provider supported models over ACP #9475
  • CLI to list skills with token counts #9326
  • Include request URL in provider error messages #9232
  • Surface resolved Databricks model metadata #9206
  • Ensure parallel tool image responses don't interleave for Databricks #9241
  • Slash commands (built-in, skill, recipe) in ACP server #9238
  • Open-plugins generalization + skills #9112
  • Use plain '> ' prompt instead of goose emoji #9305

📚 Documentation

  • Name the message field in the hooks payload guide #9913
  • Custom agents guide #9293
  • Correct custom agents guide #9947
  • Add guide for connecting goose Desktop to a remote goosed server #9275
  • Hooks guide #9288
  • Blog post for hooks feature #9227
  • Document summon extension requirement for delegate and load tools #9231
  • ACP clients documentation update #9772
  • AAIF migration blog post #9866
  • Self-improving agents blog post #9846
  • Orchestrating with goose blog post #9104
  • Goose with peekaboo blog post #8884
  • Built-in Local Inference blog post #8808
  • MiniMax and office QA benchmark findings blog post #8984
  • Scaleway provider documentation #9423
  • SaladCloud AI Gateway documentation #9253
  • Scholar Sidekick tutorial page #9477
  • Documentation reorganization #9310

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Goose

Get notified when new releases ship.

Sign up free

About Goose

an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

All releases →

Related context

Beta — feedback welcome: [email protected]