Goose

AI

An extensible on-machine AI agent that runs and edits code through MCP tools.

Latest v1.45.0 · by BlockWebsiteblock/goose

Release activity

Release activity — 10 releases across 10 days since May 27, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before May 27, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 20261 release on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 20261 release on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
Wednesday1 release on May 27, 20261 release on Jun 3, 2026No releases on Jun 10, 20261 release on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 20261 release on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 20261 release on Jun 25, 20261 release on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 20261 release on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 20261 release on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

10 releases since May 27, 2026

Changelog

v1.45.0

Added 7
  • Stable agent event message identity
  • Tab completion and switch provider for model command
  • Support latest Gemini models
  • Configurable GOOSE_DOCS_ROOT for air-gapped docs access
  • Structured summary output with template rendering for compaction
  • Allow disabling built-in skills
  • Gate tool-call label enrichment on ACP client capability
Fixed 13
  • Restore dynamic model discovery and current Grok support
  • Update DeepSeek model names to v4 API
  • Forward Claude Code model picker selection to the adapter
  • Forward Pi model selection to the adapter
  • Preserve enabled flag when migrating platform extensions
  • Pass session working_dir to on_call_tool
✨ Features
  • Stable agent event message identity #10716
  • Tab completion and switch provider for model command #10585
  • Support latest Gemini models #10630
  • Configurable GOOSE_DOCS_ROOT for air-gapped docs access #10294
  • Structured summary output with template rendering for compaction #10471
  • Allow disabling built-in skills #10600
  • Gate tool-call label enrichment on ACP client capability #10644
🐛 Bug Fixes
  • Restore dynamic model discovery and current Grok support #10756
  • Update DeepSeek model names to v4 API #10729
  • Forward Claude Code model picker selection to the adapter #10675
  • Forward Pi model selection to the adapter #10707
  • Preserve enabled flag when migrating platform extensions #10690
  • Pass session working_dir to on_call_tool #10689
  • Preserve adversary tool arguments #10529
  • Keep XML snippets inside JSON as data for local inference #10606
  • Sync generated chat title in header #10578
  • Prompt for tool approval in telegram gateway sessions #10613
  • Keep CLI provider prompts out of process arguments #10547
  • Ignore stale inventory for static model lists #10591
  • Use shell working directory on initial desktop launch #10655
  • Enable inventory refresh for OpenRouter model picker #10641
  • Preserve read lines and reload tool output in ACP #10662
  • Surface tool call output in CLI and Desktop #10654
  • Truncate overlong function names in provider requests #10659
  • Preserve ACP tool call update fields in desktop #10653
  • Use configured session manager for tool summaries #10628
  • Omit disabled OpenRouter reasoning #10517
  • Clear stale pending ACP connection after terminal recovery failure #10552
  • Confirm pending steer message on queuedSteer notification #10532
  • Apply hermit env directly in node shims so fish login shell doesn't break MCP startup #10028
🔧 Improvements
  • Upgrade to rmcp 2.0 #10584
  • Opus5 support including adaptive thinking #10686
  • Refine dark theme message surfaces for consistent, compliant dark mode UX #10693
  • Fix Korean translation errors, untranslated entries, and terminology consistency #10667
  • Simplify ACP tool-call handling and fix chain summaries #10599
  • Enhance the uniffi API layer #10427
  • Disable scheduler by default for ACP #10781
  • UI cleanup to remove unused components and functions #10761
  • Bump nostr to 0.44.6 to clear RUSTSEC-2026-0216 #10733
  • Create source archive as release artifact #10786
View originalPermalink
How v1.45.0 went

v1.44.0

Added 18
  • Support for latest Gemini models
  • Pass working_dir to the Stop hook context
  • Declarative Sakana AI provider for OpenAI-compatible Fugu API
  • Model interactions viewer restored
  • Chunk command-classifier input with overlapping windows for security
  • Search filter for provider grid
Fixed 1
  • Preserve command arguments through extension forms
Security 1
  • Fix arbitrary command execution in goose CLI via goose review through git core.fsmonitor config
Security fixes
  • Arbitrary command execution in goose CLI via goose review (via git core.fsmonitor config) - GHSA-r5pp-p5r8-466r (credit to @0xmagic0)
✨ Features
  • Support for latest Gemini models #10630
  • Pass working_dir to the Stop hook context #10296
  • Declarative Sakana AI provider for OpenAI-compatible Fugu API #10357
  • Model interactions viewer restored #10205
  • Chunk command-classifier input with overlapping windows for security #10416
  • Search filter for provider grid #10437
  • Muse Spark 1.1 support via Meta Models API #10432
  • GPT-5.6 support #10384
  • Reconnect desktop ACP sessions after sleep and connection loss #10411
  • Per-message usage stats UI (tokens, cost, TTFT, tok/s) #10210
  • OllamaCloudProvider with dynamic model discovery and context limits #10264
  • Delete support for custom apps from Apps UI #10127
  • --edit session flag to edit conversation before forking #9799
  • iFlytek Spark and Astron MaaS providers #9837
  • Fireworks AI declarative provider #9990
  • OpenRouter request parameters support #9276
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, zh-TW desktop locales #10072
  • MiniMax-M3 and missing M2.7 variants #10431
🐛 Bug Fixes
  • Preserve command arguments through extension forms #10527
  • Enforce manual approval for code mode #10528
  • Confine app file operations #10481
  • Preserve featured model size on delete and backfill missing sizes #10422
  • Preserve recursive schema types with pctx 0.4.1 #10572
  • Create inventory tables atomically with schema version #10586
  • Rewrite oneOf to anyOf in tool schemas for OpenAI-compatible backends #10571
  • Allow custom model as default for non-local providers #10438
  • Require absolute goose path roots #10454
  • Scope smart approval by request #10457
  • Preserve fixed subrecipe values #10452
  • Bundle git in Flatpak so hermit can clone its package registry #10511
  • Expose AGENT_SESSION_ID to shell commands #10428
  • Forward image content chunks to client during live session #10485
  • Dispatch Code Mode callbacks on main runtime to prevent hangs #10484
  • Protect OAuth token caches #10516
  • Preserve content audience boundaries #10493
  • Bound scheduled recipe validation #10509
  • Return JSON-RPC errors from dispatch handlers instead of killing connection #10499
  • Isolate prepare tools test state #10504
  • Avoid local inference Metal teardown crash #10508
  • Enable indexmap serde support for musl builds #10507
  • Scroll chat to latest reply on session resume #10501
  • Secure large response spill files #10482
  • Register LiteLLM with refresh_only inventory so model picker lists models #10489
  • Limit provider selector height in CLI #10420
  • Tighten existing secrets file permissions #10453
  • Classify image access capabilities #10451
  • Preserve one-time permission scope #10450
  • Register goose:// scheme handler in Flatpak desktop entry #10461
  • Reject duplicate recipe parameter keys #10448
  • Synchronously kill orphaned goose serve backends on GUI close #10292
  • Break self-referential $ref cycles before Code Mode schema #10469
  • Stop multiline paste auto-submitting line-by-line on Windows #10326
  • Hide nested config values in Configuration Editor #10390
  • Stop resolving TUI scripts from cwd #10449
  • Exclude MCP App tools from Code Mode callbacks #10290
  • Apply default extension timeout to developer shell tool calls #10348
  • Preserve reasoning_content for DeepSeek thinking mode on multi-turn tool calls #10366
  • Make prompt timestamps timezone-explicit #10209
  • Disable compaction during approval #10089
  • Restore pnpm 11 project configuration #10395
  • Treat empty-string finish_reason as non-terminal in streaming #10258
  • Fix Gemini OAuth onboarding #10363
  • Retry empty provider turns instead of stopping silently #10360
  • Guard llama.cpp backend init against SIGILL on x86_64 CPUs without FMA/AVX2 #10105
  • Sanitize responses function call names #10344
  • Pick session mode from the ids the agent actually offers #10320
  • Show manual-setup indicator for extensions without install link #10321
  • Dedupe duplicate signed thinking blocks to fix Anthropic 400 #10083
🔧 Improvements
  • Extract tool call handling from ACP server #10574
  • Report cache-aware Harbor costs #10430
  • Trim macOS desktop entitlements #10490
  • Consolidate and harden release workflows #10447
  • TLS backend matrix job for rustls-tls and native-tls #10148
  • Bound code-mode execution with timeout and cancellation #10214
  • Recover malformed tool calls from GLM/Minimax models instead of rejecting them #10230
  • Group chat sessions by project in nav panel #10212
  • Per-message usage/cost tracking with derived session totals #10172
  • Return effective context limit from /model-info #10165
  • Disable thinking preservation for Groq #10284
  • Clarify terminal color semantics in CLI #10414
📚 Documentation
  • Clean up stale documentation audit findings #10114
  • Update environment and config references #10203
  • Document hook deny contract, matcher regex, tool_input keys, and provider config #10467
  • Remove stale gooseignore references #10359
  • Add Code of Conduct #10424
  • Clarify session --edit context retention #10257
View originalPermalink
How v1.44.0 went

v1.43.0

Added 18
  • Reconnect desktop ACP sessions after sleep and connection loss
  • Per-message usage stats UI displaying tokens, cost, TTFT, and tok/s
  • Per-message usage and cost tracking with derived session totals
  • Group chat sessions by project in nav panel
  • Show project names in directory switcher dropdown
  • OllamaCloudProvider with dynamic model discovery and context limits
Fixed 2
  • Exclude MCP App tools from Code Mode callbacks
  • Preserve reasoning_content for DeepSeek thinking mode on multi-turn tool calls
✨ Features
  • Reconnect desktop ACP sessions after sleep and connection loss #10411
  • Per-message usage stats UI (tokens, cost, TTFT, tok/s) #10210
  • Per-message usage/cost tracking with derived session totals #10172
  • Group chat sessions by project in nav panel #10212
  • Show project names in directory switcher dropdown #10207
  • OllamaCloudProvider with dynamic model discovery and context limits #10264
  • Delete support for custom apps from Apps UI #10127
  • --edit session flag to edit conversation before forking #9799
  • iFlytek Spark and Astron MaaS providers #9837
  • Fireworks AI declarative provider #9990
  • OpenRouter request parameters support #9276
  • OVHcloud Qwen3.6-27B model (262K context) #10339
  • GPT-5.6 family support #10349
  • GLM-5.2 support #9967
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, and Traditional Chinese desktop locales #10072
  • Provider bindings MVP to goose-sdk with Python wheel publishing #10208
  • TLS support for ACP serve #10088
  • Streamable HTTP support in deeplink generator #9954
🐛 Bug Fixes
  • Exclude MCP App tools from Code Mode callbacks #10290
  • Preserve reasoning_content for DeepSeek thinking mode on multi-turn tool calls #10366
  • Compaction disabled during approval #10089
  • Treat empty-string finish_reason as non-terminal in streaming #10258
  • Gemini OAuth onboarding failure #10363
  • Retry empty provider turns instead of stopping silently #10360
  • Guard llama.cpp backend init against SIGILL on x86_64 CPUs without FMA/AVX2 #10105
  • Sanitize responses function call names #10344
  • Pick session mode from the IDs the agent actually offers #10320
  • Desktop ACP shell PATH #10336
  • Dedupe duplicate signed thinking blocks to fix Anthropic 400 #10083
  • Resolve provider default model instead of leaking sentinel "current" #10305
  • Return effective context limit from /model-info #10165
  • Gate rcgen aws_lc_rs feature behind rustls-tls #10116
  • Recover malformed tool calls from GLM/Minimax models instead of rejecting them #10230
  • Restore cursor when configure exits #10222
  • Skip scheduled sessions for implicit resume #10178
  • Sync slash help with builtins #10173
  • Treat unicode punctuation as image path terminators #10106
  • Don't bleed provider-specific request_params into delegate() sessions #9906
  • Purge empty phantom sessions on startup #9651
  • Include structuredContent from MCP tool response #10128
  • Propagate agent cleanup errors on session delete #10112
  • Tolerate partial Responses output items #10108
  • Always use OpenAI-compatible "parameters" for Databricks tools #10101
  • Unescape shell-escaped image paths #10098
  • Send inference config (max_tokens, temperature) on Bedrock Converse #9889
  • Dedupe Nostr session deep link imports #9918
  • Don't retry deterministically-permanent 400s (thinking-block immutability) #10005
  • 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
  • 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
  • Resolve databricks_v2 pricing and surface cost in standard usage update #9925
  • Activate hermit on macOS so STDIO extensions resolve node #9482
  • Prompt timestamps are now timezone-explicit #10209
🔧 Improvements
  • Apply the default extension timeout to developer shell tool calls #10348
  • Disable thinking preservation for Groq #10284
  • Bound code-mode execution with timeout and cancellation #10214
  • Keep turn-context out of the Anthropic prefix cache #10030
  • Disable extended thinking for fast-model operations #9815
  • Switch the local inference provider MLX backend to use the safemlx crate #10304
  • OpenAI Responses API store param configurable #10040
  • Support streamed tool calls without indexes #10023
  • Fail closed on unverifiable update provenance #10168
  • Migrate diagnostics to JSON report #9964
  • Route MCP elicitations through tool streams #9943
  • ACP migration for desktop UI #10081
  • Relabel settings 'Session' tab to 'External Backend' #10318
  • Show manual-setup indicator for extensions without an install link #10321
📚 Documentation
  • Clarify session --edit context retention #10257
  • Name the message field in the hooks payload guide #9913
  • Custom agents guide #9293
  • Correct custom agents guide #9947
View originalPermalink
How v1.43.0 went

v1.42.0

Added 7
  • OllamaCloudProvider with dynamic model discovery and context limits
  • Per-message usage stats UI showing tokens, cost, TTFT, and tok/s
  • Per-message usage and cost tracking with derived session totals
  • Group chat sessions by project in navigation panel
  • Show project names in directory switcher dropdown
  • Provider bindings MVP to goose-sdk with Python wheel publishing
  • AskAI bot hints for followups
Changed 4
  • Increase /mcp-app-guest body limit for larger single-file MCP apps
  • Relabel settings 'Session' tab to 'External Backend'
  • Switch local inference provider MLX backend to use the safemlx crate
  • Disable thinking preservation for Groq
Fixed 9
  • Resolve provider default model instead of leaking sentinel "current"
  • Return effective context limit from /model-info
  • Recover malformed tool calls from GLM/Minimax models instead of rejecting them
  • Restore cursor when configure exits
  • Sync slash help with builtins
  • Treat unicode punctuation as image path terminators
✨ Features
  • OllamaCloudProvider with dynamic model discovery and context limits #10264
  • Per-message usage stats UI (tokens, cost, TTFT, tok/s) #10210
  • Per-message usage/cost tracking with derived session totals #10172
  • Group chat sessions by project in nav panel #10212
  • Show project names in directory switcher dropdown #10207
  • Provider bindings MVP to goose-sdk with Python wheel publishing #10208
  • AskAI bot hints for followups #10291
🐛 Bug Fixes
  • Resolve provider default model instead of leaking sentinel "current" #10305
  • Return effective context limit from /model-info #10165
  • Recover malformed tool calls from GLM/Minimax models instead of rejecting them #10230
  • Restore cursor when configure exits #10222
  • Sync slash help with builtins #10173
  • Treat unicode punctuation as image path terminators #10106
  • Don't bleed provider-specific request_params into delegate() sessions #9906
  • Purge empty phantom sessions on startup #9651
  • Include structuredContent from MCP tool response #10128
  • Gate rcgen aws_lc_rs feature behind rustls-tls #10116
🔧 Improvements
  • Increase /mcp-app-guest body limit for larger single-file MCP apps #10324
  • Relabel settings 'Session' tab to 'External Backend' #10318
  • Switch local inference provider MLX backend to use the safemlx crate #10304
  • Disable thinking preservation for Groq #10284
  • Bound code-mode execution with timeout and cancellation #10214
  • Skip scheduled sessions for implicit resume #10178
  • Fail closed on unverifiable update provenance #10168
  • Update Rust toolchain and raise recursion limit #10303
  • Drop unsupported gpt-5.3-codex from chatgpt_codex provider #10271
  • Move Google provider into goose-providers #10216
  • Move Snowflake provider #10218
  • Move Databricks providers into goose-providers crate #10162
  • Move declarative definitions #10167
📚 Documentation
  • Clarify session --edit context retention #10257
  • Simplified the issue templates #10316
  • Remove stale crates/goose-server and update docs #10224
View originalPermalink
How v1.42.0 went

v1.41.0

Added 20
  • iFlytek Spark and Astron MaaS providers
  • --edit session flag to edit conversation before forking
  • Fireworks AI declarative provider
  • OpenRouter request parameters support
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, and Traditional Chinese desktop locales
  • Spanish locale support
✨ Features
  • iFlytek Spark and Astron MaaS providers (#9837)
  • --edit session flag to edit conversation before forking (#9799)
  • Fireworks AI declarative provider (#9990)
  • OpenRouter request parameters support (#9276)
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, and Traditional Chinese desktop locales (#10072)
  • Spanish (es) locale support (#9833)
  • Korean localization for desktop app (#9856)
  • Japanese locale support (#9768)
  • Hindi desktop locale (#9733)
  • Language selection feature in desktop (#9405)
  • /status slash command in CLI (#9845)
  • Streamable HTTP support in deeplink generator (#9954)
  • GLM-5.2 model support (#9967)
  • Global hints loading from ~/.agents/AGENTS.md (#9736)
  • Azure Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN (#9716)
  • Together AI declarative provider (#9545)
  • OrcaRouter as declarative OpenAI-compatible provider (#9515)
  • EmpirioLabs AI declarative provider (#9771)
  • MLX model support for local inference provider (#9154)
  • Summon peek mode for async background tasks (#9519)
  • Summon context parameter for delegate tasks (#9518)
  • Summon working_dir override for delegate tasks (#9520)
  • Structured metadata for summon task load results (#9521)
  • TLS support for ACP serve (#10088)
  • OpenAI Responses API store param configurability (#10040)
  • Exposed available tools in ACP schema (#10097)
  • ACP thinking effort config option (#10711)
  • Last message snippets for ACP sessions (#9798)
  • OTLP logging schema for cross-tool detection (#9713)
  • Option to disable automatic update downloads (#9872)
  • Cache token tracking for accurate cost reporting (#9752)
  • Session import functionality (#9474)
  • xAI SuperGrok OAuth subscription provider (#9420)
  • Perplexity as declarative OpenAI-compatible provider (#9324)
  • Alibaba (Qwen via DashScope) declarative provider (#9443)
  • Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE (#9256)
  • /model slash command for session model switching (#8747)
  • Databricks AI Gateway provider (#9274)
  • Russian language support (#9406)
  • Turkish desktop locale (#9392)
  • NEAR AI Cloud provider (#9352)
  • Scaleway provider (#9254)
  • Harbor eval runner (#9138)
  • /goal command for agent self-evaluation before finishing (#9069)
  • Summon subagent instructions (#9325)
  • Open-plugins generalization + skills (#9112)
  • PreToolUse denial in hooks (#9304)
  • Optional api_key configuration for declarative openai-engine providers (#9202)
  • goose review local code review command (#9114)
  • TUI diff viewer (#9260)
  • Paginated session list in ACP (#9199)
  • Structured per-provider config block with non-destructive provider switching (#8977)
  • tui command on goose-cli (#9385)
  • Configurable MAX_CODE_BLOCK_LINES via env vars (#9301)
  • goose://resume session deep link (#9343)
  • GOOSE_FAST_MODEL env var support (#9296)
  • Vercel AI Gateway provider (#9144)
  • Quarterly option for scheduler (#9076)
  • Hooks feature (#9093)
  • Projects as backend sources with system prompt injection (#8739)
  • Worktree-aware directory switcher (#8450)
  • Chat history search feature (#8448)
  • Optional --parameters for scheduled recipes (#8741)
  • GitHub Copilot /responses API (#9043)
  • Unified thinking effort control across all providers (#9242)
  • Slash commands (built-in, skill, recipe) in ACP server (#9238)
  • Nushell terminal and completion support (#8628)
  • Simplified Chinese (zh-CN) translation (#8765)
  • Atomic Chat as declarative OpenAI-compatible provider (#9210)
  • GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri (#9209)
  • Proactive OAuth token refresh to avoid re-auth on every session (#8386)
  • goose://new-session deep link for fresh chat (#9196)
  • Routstr as declarative provider (#9175)
  • FuturMix provider (#8840)
  • oMLX declarative provider (#9177)
  • Declarative provider support in goose-providers crate (#9992)
  • ACP elicitation improvements (#9797)
  • Image read tool (#9607)
  • gpt-5.5 model support for ChatGPT Codex provider (#9292)
🐛 Bug Fixes
  • Canonical model output paths (#10196)
  • ACP agent cleanup errors propagation on session delete (#10112)
  • claude-sonnet-5 added to canonical model registry (#10183)
  • MCP-app-guest request body limit increased (#10180)
  • Tolerate partial Responses output items (#10108)
  • Databricks tool parameters for OpenAI compatibility (#10101)
  • Unescape shell-escaped image paths (#10098)
  • Desktop Mac auto-update config seeding (#10132)
  • /edit prompts saved to history (#10011)
  • Schedule sessions listing using session.message_count (#10026)
  • Session store sync after provider/model update and thinking effort update (#10060)
  • Fallback REST API call removed in ACP mode for edit in place (#10034)
  • Don't retry deterministically-permanent 400s (thinking-block immutability) (#10005)
  • Async reqwest client for OTLP export in goose serve mode (#10100)
  • Reject non-object tool-call arguments instead of panicking (#9832)
  • Databricks pricing resolution and cost surfacing (#9925)
  • Removed unused SubagentStart/SubagentStop hook events (#9960)
  • Recipe modal closes when canceling parameter form (#9195)
  • Tool request timestamp precedes tool response timestamp (#9462)
  • Activate hermit on macOS so STDIO extensions resolve node (#9482)
  • Auto-visualiser JSON-encoded string handling (#9838)
  • User-Agent sent on URL image fetches (#9927)
  • Do not pass temperature to ChatGPT Codex provider (#9931)
  • Nostr session deep link import deduplication (#9918)
  • Provider refresh when session working directory changes (#9883)
  • GCP refreshed gcloud token after reauth (retry Vertex AI on 401/403) (#9849)
  • Start a turn when /goal or /grind is set (#9801)
  • Handle resume deep links (#9298)
  • PATH repair for plugin hook commands (#9615)
  • Cmd/Ctrl+T new chat shortcut restored (#9614)
  • Mention menu icon opens sidebar (#9643)
  • Dedupe React to prevent multiple instances in renderer (#9631)
  • Hermit cleanup added to uvx and jbang scripts (#9616)
  • Blocking OTLP HTTP exporter (#9599)
  • Fall back to default provider when resuming session with unavailable provider (#9547)
  • Tokio runtime provided for OTLP HTTP exporter batch thread (#9541)
  • OpenAI meta.n_ctx read from /v1/models for local server context limit (#9530)
  • Session history scrollbar aligned with window edge (#9601)
  • Session name refresh in sidebar after rename (#9543)
  • Resolved skill supporting file paths shown (#9584)
  • Bedrock real streaming via ConverseStream API (#9579)
  • OpenAI-native cached_tokens recorded in usage metering (#9829)
  • Moonshot provider API URL override option (#9819)
  • Image paths with spaces detected (#9387)
  • New chat shortcut navigation restored (#9528)
  • Stale completed tasks evicted in summon (#9514)
  • OAuth callback timeout in WSL instead of hanging (#9536)
  • Unmatched extension names warning in delegate (#9513)
  • Elicitation decline and cancel actions propagated end-to-end (#9437)
  • Bedrock inference config (max_tokens, temperature) sent on Converse (#9889)
  • Optimistic toggle state shown when disabling an extension (#9882)
  • Windows backslash paths preserved in custom extension command (#9741)
  • ACP cancel race condition fixed (#9804)
  • Removed window goosed when closing window (#9818)
  • Context exceeded checker made more precise (#9831)
  • Login-shell PATH inherited in spawned subagents (#9737)
  • String values accepted for GOOSE_CONTEXT_LIMIT (#9738)
  • Rejected OAuth credentials cleared after refresh (#9694)
  • Extended thinking kept within Anthropic output cap (#9814)
  • RPM build-id links disabled (#9671)
  • Custom API path preserved in OpenAI base_url derivation (#9649)
  • Bedrock ValidationException classified as ExecutionError (#9735)
  • Unparseable extension entries preserved during config refresh (#9439)
  • Session info ACP method (#9729)
  • Anthropic stream refusals surfaced as visible errors (#9724)
  • Ollama_cloud correctly mapped to canonical provider (#9639)
  • Groq provider max tokens values corrected (#9790)
  • Stream decode errors marked retryable (#9723)
  • Databricks AI Gateway v2 endpoints pagination (#9753)
  • Pattern-based prompt injection detection confidence scores adjusted (#9690)
  • ACP compatibility in TUI for config extensions (#9683)
  • Thinking content buffered across stream chunks for DeepSeek/Kimi tool calls (#9704)
  • Actionable errors surfaced for truncated tool-call arguments (#9946)
  • Deleting recently created session and creating new one no longer shows deleted content (#9351)
  • Custom OpenAI provider port preserved when URL scheme omitted (#9730)
  • ACP agentInfo included in initialize response (#9765)
  • Local inference media marker parts used for vision prompts (#9452)
  • Extensions icon visible after switching sessions (#9787)
  • Non-recipe project config files skipped in summon (#9808)
  • Duplicate tool-call ids deduped within a turn (#9792)
  • Bundled extensions resolved from discovery (#9759)
  • Thinking config passed to Bedrock Anthropic models (#9794)
  • LiteLLM context limit from /model/info for custom models (#9303)
  • Thinking content preserved for provider context (#9314)
  • Configurable timeout env vars mentioned in Ollama stream stall error (#9246)
  • Full recipe parameter details included in load/discovery output (#9233)
  • Unused fetch-metadata IPC handler removed (SSRF) (#9340)
  • Gateway respects GOOSE_MAX_TURNS (#9354)
  • Anthropic empty object sent instead of null for tool_use input (#9355)
  • Selected branch preserved across project chats (#9010)
  • Tolerate missing responses output (#9449)
  • Azure api-version query param made optional (#9221)
  • Pending env vars preserved in Add Extension form (#9285)
  • Linux x86_64 built inside manylinux_2_28 for glibc 2.28+ compat (#9415)
  • Main window stops growing taller on every launch (#9409)
  • Desktop chat search session limiting (#9366)
  • Per-session agent creation serialized to stop duplicate MCP init (#9357)
  • OTLP signals skipped when protocol=grpc to avoid background-thread panic (#9512)
  • Stop hook decisions honored when blocking (#9468)
  • ACP server context window size forwarded to clients (#9455)
  • Provider list refresh in Switch Models picker (#9408)
  • New chat started in current window from recipe param modal (#9422)
  • Trace_output emitted as span attribute instead of event (#9255)
  • File fallback checked when keyring has no entry (#9279)
  • ScheduleModal error message styling (#9278)
  • Sidebar hamburger aligned in macOS fullscreen (#9257)
  • current_exe() used instead of PATH lookup when spawning goose (#9236)
  • TCP_USER_TIMEOUT set on streamable HTTP clients (#9207)
  • Custom provider activated after adding via configure (#9213)
  • OTLP traces flushed reliably on exit with configurable timeout (#9228)
  • Excessive MISSING_TRANSLATION warnings reduced for fallback locales (#9294)
  • Cross-window deep link contamination eliminated (#9273)
  • Telegram gateway error reporting and connection reliability improved (#9223)
  • VT processing enabled on Windows Console Host (#9248)
  • Cost zeroed for local providers (ollama, local) (#9222)
  • Tool-use marker leakage prevented in toolshim output (#8310)
  • Summon canonical limits re-applied when delegate overrides model (#9183)
  • CLI cumulative total_tokens reported in stream-json/json output (#8910)
  • GCP metadata server token refreshed on expiration (#8929)
  • WSL2 OS detection corrected by removing PWD-based Windows override (#8869)
  • Bedrock ReasoningContent blocks handled gracefully (#8843)
  • Tool pair summaries inserted at chronological position in conversation (#9087)
  • SQLite foreign key enforcement enabled in session pool (#9121)
  • Deleted chat session still appearing in sidebar list (#8674)
  • Extension_name required on read_resource (#8989)
  • SACP notifies clients of generated session names (#8983)
  • Quoted numeric config values converted to numbers if needed (#8844)
  • SSE reconnect loop kept alive on long disconnects (#8717)
  • OpenAI request_params applied to outgoing API payload (#9151)
  • Gemini 3.x known_location Global routing and KNOWN_MODELS entries (#9142)
  • Anthropic Retry-After honored on 429 responses (#9161)
  • Streaming Thinking deltas coalesced + available tools listed on not-found (#9162)
  • User-set session name preserved for recipe-based chats (#9079)
  • OIDC-proxy exp enforcement independent of MAX_TOKEN_AGE_SECONDS (#8832)
  • Inline code contrast improved in light theme (#9058)
  • Max_tokens omitted for OpenAI-compatible requests when unset (#9123)
  • MCP-app host capabilities set correctly (#9116)
  • Nullable schemas normalized for Vertex Gemini compatibility (#8930)
  • GitHub recipe temp paths isolated (#8878)
  • X-Initiator header set on GitHub Copilot requests (#8809)
  • Dynamic_models: false honored in declarative provider configs (#8795)
  • Frontend extension session state and tool routes (#8464)
  • Bedrock trailing message cached for stable prefix across agent turns (#8916)
  • Case-insensitive model name lookup for context_limit (#8906)
  • Cumulative token usage emitted in stream-json/json complete event (#8870)
  • 400 returned instead of panicking on invalid CSP header value (#8810)
  • ACP streaming chunks coalesced under one message id (#8788)
  • Goose2 vite server reused on port conflict (#8722)
  • Python3 used in developer extension instructions for macOS/Linux compatibility (#8784)
  • ACP child synchronously reaped to avoid SIGCHLD race (#9023)
  • Goose2 small-window chat and settings layouts (#9019)
  • Elicitation fixes (#8999)
  • OpenAI null tool_call arguments accepted in streaming chunks (#9035)
  • Plain '> ' prompt used instead of goose emoji in CLI (#9305)
  • Goosed not killed when a window closes (#9302)
  • Databricks parallel tool image responses don't interleave tool results (#9241)
  • Accumulated cost persisted in session DB to survive reload (#9191)
  • Publish-npm binary built from current SHA + compat check (#9212)
  • Preprompt excluded from session title generation (#8793)
  • Login-shell PATH probe prevented from suspending goose on startup (#8804)
  • Venice replaced with declarative config (#9234)
  • MOIM allowlist widened for expected fix_conversation warnings (#9226)
  • mkdir -p used for self-test workspace initialization (#9247)
  • Tool name shown in approval prompt (#9216)
  • ACP images replayed on session load (#9496)
  • Azure CLI resolved on Windows using az.cmd (#9215)
  • Non-interactive terminal handled in goose configure on Windows (#9214)
  • ACP recipe state applied during session load and fork (#9998)
  • Local inference GGUF requirements stricter, auto detection of tool calling support, thinking output parsing fixed (#9442)
  • Goose alias preferred for Databricks v2 inventory (#9430)
  • Streamed tool calls without indexes supported (#10023)
  • Allow local file ACP origins (#10194)
  • MCP app sandbox bridge lifecycle fixed (#10064)
🔧 Improvements
  • Refactored local inference provider crates (#10169)
  • ACP auth and origin defaults improved (#9886)
  • UI connected to ACP directly instead of goosed (#10081)
  • Turn-context kept out of Anthropic prefix cache (#10030)
  • Extended thinking disabled for fast-model operations (#9815)
  • Diagnostics migrated to JSON report (#9964)
  • MCP elicitations routed through tool streams (#9943)
  • Provider refactored: model config not required to create provider (#9953)
  • Session name as source of truth for displayed session titles (#9841)
  • Provider inventory split out of providers (#9826)
  • MCP extensions supported in open plugins (#9471)
  • Databricks Responses API support check (#9347)
  • Initial prompt with goose://new-session (#9427)
  • View model interactions (#9806)
  • API Client moved to goose-providers (#9869)
  • Request logger refactored out of providers (#9847)
  • Provider trait moved into goose-providers (#9860)
  • Global config access moved out of ModelConfig (#9769)
  • Debug info dropped for dependencies in dev profile (#9843)
  • Formats/openai.rs moved into goose-providers crate (#9633)
  • Goose-providers crate created with canonical models, conversation and other types (#9588)
  • Generic validator for declarative providers (#10010)
  • UI types decoupled from generated OpenAPI types (#10149, #10109)
  • ACP SDK upgraded to new HTTP/WS crate (#10082)
  • MCP sampling support removed (#10087)
  • Legacy MCP-UI proxy support removed (#10086)
  • Session_id removed from provider streaming trait methods (#9984)
  • Ollama provider moved into goose-providers (#9986)
  • Anthropic provider moved into goose-providers (#9985)
  • OpenAI provider moved into goose-providers (#9880)
  • LRU cache used for token counting (#9586)
  • Hugging Face OAuth support added with auth tab in settings (#9552)
  • Review subprocess timeout replaced with turn limits (#9571)
  • Benchmarking improved (#9465, #9637)
  • Canonical thinking modes added (#9743)
  • Skill instructions dynamically refreshed each turn (#9217)
  • Pasted HTML parsed better as markdown (#9190)
  • Dependency hygiene improved (#9360)
  • Summon instructions built per turn (#9329)
  • Protocol cleanup (#9147)
  • Settings moved into app shell (#9047)
  • Extension page redesigned (#8940)
  • Provider catalog moved behind ACP layer in goose2 (#9030)
  • Skills library redesigned (#8868)
  • Sidebar navigation and project icons polished (#8896)
  • Provider resolution parallelized and SQLite pool eagerly initialized (#8899)
  • Skill categories removed (#9008)
  • Consecutive tool calls grouped into summarized chain card (#8995)
  • Artifact heuristics/regexes replaced with protocol messages (#8996)
  • CLI help text updated for --session-id (#10077)
  • Canonical model registry refreshed (#10709, #9551, #9331)
  • EmpirioLabs provider display name updated (#10126)
📚 Documentation
  • Custom agents guide (#9293)
  • Custom agents guide correction (#9947)
  • Message field named in hooks payload guide (#9913)
  • Release testing instructions updated (#10122)
  • ACP clients documentation updated (#9772)
  • Session History navigation/delete docs fixed (#9727)
  • Remote goosed server connection guide (#9275)
  • SaladCloud AI Gateway documentation (#9253)
  • Summon extension requirement documented for delegate and load tools (#9231)
  • Hooks guide (#9288)
  • Hooks feature blog post (#9227)
  • Documentation reorganized (#9310)
  • Scaleway provider documentation (#9423)
  • Self-improving agents blog post (#9846)
  • AAIF migration blog post (#9866)
  • Orchestrating with goose blog post (#9104)
  • Minimax and office QA benchmark findings blog post (#8984)
  • Goose with peekaboo blog post (#8884)
  • Built-in Local Inference blog post (#8808)
  • DCO references removed (#9864)
  • Internal documentation anchors fixed (#9094)
  • Ophis MCP server added to extensions registry (#9861)
  • Scholar Sidekick tutorial page (#9477)
  • Installation whitespace fix (#9867)
  • Stats update (#9410)
  • MCP blog post typo fix (#9641)
  • Analyze extension instructions updated (#9585)
View originalPermalink
How v1.41.0 went

v1.40.0

Added 20
  • Language selection in desktop app
  • French, German, Italian, Portuguese, Indonesian, Malay, Vietnamese, and Traditional Chinese desktop locales
  • Korean localization for desktop app
  • Japanese locale support
  • Spanish (es) locale support
  • Hindi desktop locale
✨ 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
View originalPermalink
How v1.40.0 went

v1.39.0

Added 20
  • ACP method for managing recipes and UI changes
  • Use ACP to manage global config and session extensions
  • Recipe handling in new_session
  • /status slash command in CLI
  • ACP new session on desktop for non-recipe sessions
  • Typed request/response for add and get session extensions in ACP
✨ Features
  • ACP method for managing recipes and UI changes #9951
  • Use ACP to manage global config and session extensions #9948
  • Recipe handling in new_session #9935
  • /status slash command in CLI #9845
  • ACP new session on desktop (non-recipe sessions) #9914
  • Typed request/response for add, get session extensions in ACP #9890
  • Option to disable automatic update downloads #9872
  • Change cwd using ACP and refactor extension in bottom menubar #9887
  • Track cache tokens for accurate cost reporting #9752
  • Load session using ACP #9875
  • View model interactions #9806
  • Support OpenAI GPT models via AWS Bedrock mantle endpoint #9707
  • Peek mode for async background tasks in summon #9519
  • Korean localization for desktop app #9856
  • Chat reply UI with ACP #9857
  • Durable ACP chat session state for desktop UI #9852
  • ACP for desktop chat prompt (feature toggle off) #9802
  • MCP extensions support in open plugins #9471
  • Initial prompt with goose://new-session deep link #9427
  • Configurable Open Model Gym output dir #9789
  • Spanish (es) locale support #9833
  • EmpirioLabs as a declarative OpenAI-compatible provider #9771
  • MLX models support for local inference provider #9154
  • Elicitation method for ACP with improvements #9797
  • View JSON #9678
  • Load global hints from ~/.agents/AGENTS.md #9736
  • Configurable per-agent timeout (GYM_AGENT_TIMEOUT) #9791
  • Azure Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN #9716
  • _meta.conversationBefore for ACP forking session #9821
  • Quarterly option for scheduler #9076
  • Together AI declarative provider #9545
  • Image read tool #9607
  • Context parameter for summon delegate tasks #9518
  • Structured metadata for summon task load results #9521
  • Working_dir override for summon delegate tasks #9520
  • OrcaRouter as a declarative OpenAI-compatible provider #9515
  • Elicitation decline and cancel actions propagation #9437
  • ACP opt-in last message snippets #9798
  • Japanese locale support #9768
  • Unified OTLP logging schema for cross-tool detection #9713
  • Canonical thinking modes #9743
  • Hindi Desktop locale #9733
  • Custom ACP method to get session info #9729
  • GOOSE_SERVER__SECRET_KEY support at goose serve ACP endpoint #9726
  • Surface Anthropic stream refusals as visible errors #9724
  • ACP search session in Desktop #9717
  • Steering messages with ACP #9560
  • ACP list session with keyword and type filter #9695
  • ACP thinking effort config option #9711
  • Prompt injection mitigation enabled by default for internal users #9612
  • ACP list sessions and manage sessions in Desktop #9687
  • ACP methods for config extensions #9581
  • Custom notifications only when ACP client specifies capability #9596
  • Minimal uniffi setup for cross-language SDK #9593
  • Hugging Face OAuth support with auth tab in settings #9552
  • Import sessions #9474
  • xAI SuperGrok OAuth subscription provider #9420
  • Replay ACP images on session load #9496
  • Raw provider supported models over ACP #9475
  • ACP session system prompt setter #9478
  • Scholar Sidekick MCP extension #9433
  • tui feature flag to gate the tui command #9428
  • CLI to list skills with token counts #9326
  • Perplexity as a declarative OpenAI-compatible provider #9324
  • Alibaba (Qwen via DashScope) declarative provider #9443
  • Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE #9256
  • /model slash command to CLI for session model switching #8747
  • Databricks AI Gateway provider #9274
  • Russian language support #9406
  • Turkish desktop locale #9392
  • Language selection feature #9405
  • Handle resume deep links #9298
🐛 Bug Fixes
  • Publish mac updater metadata #9945
  • Activate hermit on macOS so STDIO extensions resolve node #9482
  • Accept JSON-encoded string for autovisualiser data parameter #9838
  • Send User-Agent on URL image fetches in developer/read_image #9927
  • Allow unlisted models in search #9933
  • Do not pass temperature to ChatGPT Codex provider #9931
  • Sanitize extension environment maps #9884
  • Desktop updater to target aaif-goose releases #9868
  • Refresh provider when session working directory changes #9883
  • Use refreshed gcloud token after reauth (retry Vertex AI on 401/403) #9849
  • Start a turn when /goal or /grind is set #9801
  • Remove hard-coded React alias that breaks dev render #9842
  • Pass thinking config to Bedrock Anthropic models #9794
  • Check for responses API support in Databricks #9347
  • Use media marker parts for vision prompts in local-inference #9452
  • Keep extensions icon visible after switching sessions #9787
  • Skip non-recipe project config files in summon #9808
  • Dedupe duplicate tool-call ids within a turn #9792
  • Resolve bundled extensions from discovery #9759
  • Include agentInfo in ACP initialize response #9765
  • Custom OpenAI provider dropping port when URL scheme is omitted #9730
  • Preserve Windows backslash paths in custom extension command #9741
  • ACP cancel race condition #9804
  • Removed window goosed when closing window #9818
  • 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
  • Disable RPM build-id links #9671
  • Preserve custom API path in OpenAI base_url derivation #9649
  • 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
  • Add hermit cleanup to 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 OpenAI 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 ConverseStream API for Bedrock #9579
  • Record OpenAI-native cached_tokens in usage metering #9829
  • Add option for overriding API URL 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 in summon #9514
  • OAuth timeout instead of hanging in WSL #9536
  • Warn on unmatched extension names in summon delegate #9513
  • Deleting a recently created session then creating new session 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 and update max tokens #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
  • Goose-sdk release compat check with new schema #9697
  • Compatibility of config extension ACP call in TUI #9683
🔧 Improvements
  • Move OpenAI provider into goose-providers #9880
  • Move ApiClient to goose-providers, lifting out TlsConfig #9869
  • Refactor request logger out of providers #9847
  • Delete embeddings support #9865
  • Move provider trait into goose-providers #9860
  • Move global config access out of ModelConfig, move ModelConfig into goose_providers #9769
  • Add Ophis MCP server to the extensions registry #9861
  • Make session.name the source of truth for displayed session titles #9841
  • Split provider inventory out of providers #9826
  • Drop debug info for dependencies in dev profile #9843
  • Make context exceeded checker more precise #9831
  • Update analyze extension instructions #9585
  • Validate desktop i18n catalogs #9776
  • Refresh canonical model registry #9709
  • Move formats/openai.rs into goose-providers crate #9633
  • Create goose-providers crate with canonical models, conversation and other types #9588
  • Remove dead component and useNavigationSessions cleanup #9603
  • ACP session setup refactor #9488
  • Use LRU cache for token counting #9586
  • Replace review subprocess timeout with turn limits #9571
  • Improve benchmarking #9637
  • Pattern-based detection adjustments for prompt injection confidence scores #9690
  • Removed create recipe from session modal and REST API #9916
📚 Documentation
  • Correct custom agents guide #9947
  • Custom agents documentation #9293
  • AAIF migration blog post #9866
  • Remove DCO references #9864
  • Self-improving agents blog post #9846
  • Correct whitespace in installation fenced code block #9867
  • Update docs for ACP clients #9772
  • Fix stale session navigation/delete docs #9727
  • Fix typo in MCP blog post #9641
  • Add Scaleway provider docs #9423
  • Scholar Sidekick tutorial page #9477
View originalPermalink
How v1.39.0 went

v1.38.0

Added 20
  • Opt-in ACP last message snippets for sessions
  • Unified OTLP logging schema for cross-tool detection
  • Canonical thinking modes across providers
  • Custom ACP method to get session info
  • ACP secret key support at goose serve endpoint
  • Surface Anthropic stream refusals as visible errors
✨ Features
  • Opt-in ACP last message snippets for sessions #9798
  • Unified OTLP logging schema for cross-tool detection #9713
  • Canonical thinking modes across providers #9743
  • Custom ACP method to get session info #9729
  • ACP secret key support at goose serve endpoint #9726
  • Surface Anthropic stream refusals as visible errors #9724
  • ACP search session support in Desktop #9717
  • Steering messages with ACP #9560
  • ACP list sessions with keyword and type filter #9695
  • ACP thinking effort config option #9711
  • ACP session management in Desktop #9687
  • Image read tool #9607
  • ACP methods for config extensions #9581
  • Custom notifications only when ACP client specifies capability #9596
  • Minimal uniffi setup for cross-language SDK #9593
  • Hugging Face OAuth support with auth tab in settings #9552
  • Session import functionality #9474
  • Replay ACP images on session load #9496
  • Raw provider supported models over ACP #9475
  • ACP session system prompt setter #9478
  • Scholar Sidekick MCP extension #9433
  • TUI feature flag to gate tui command #9428
  • CLI to list skills with token counts #9326
  • xAI SuperGrok OAuth subscription provider #9420
  • Perplexity as declarative OpenAI-compatible provider #9324
  • Alibaba (Qwen via DashScope) declarative provider #9443
  • Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE #9256
  • /model slash command in CLI for session model switching #8747
  • Databricks AI Gateway provider #9274
  • TUI command on goose-cli #9385
  • Configurable MAX_CODE_BLOCK_LINES via env vars #9301
  • NEAR AI Cloud provider #9352
  • goose://resume session deep link #9343
  • Scaleway provider #9254
  • Honor GOOSE_FAST_MODEL env var in ModelConfig::with_fast #9296
  • goose review local code review command #9114
  • TUI diff viewer #9260
  • ACP paginate session list #9199
  • Structured per-provider config block, non-destructive provider switching #8977
  • Pass session cwd param to ACP providers #9229
  • gpt-5.5 added to known models #9292
  • Opt-in to Vercel AI Gateway leaderboard #9259
  • Harbor eval runner #9138
  • Slash commands (built-in, skill, recipe) in ACP server #9238
  • /goal command for agent self-evaluation before finishing #9069
  • Summon subagent instructions #9325
  • Open-plugins generalization with skills #9112
  • PreToolUse denial hook #9304
  • Optional api_key configuration for declarative openai-engine providers #9202
  • Login shell PATH flag #9313
  • Linux musl CLI builds #9240
  • goose://new-session deep link to open fresh chat #9196
  • GOOSE_DISABLE_TOOL_CALL_SUMMARY to opt out of per-tool-call summaries #8947
  • Recipe discovery and execution via ACP server #8925
  • GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri #9209
  • Proactive OAuth token refresh to avoid re-auth on every session #8386
  • Encrypted Nostr session sharing #8922
  • Simplified Chinese (zh-CN) translation #8765
  • Nushell terminal and completion support #8628
  • Optional --parameters for scheduled recipes #8741
  • GitHub Copilot /responses API #9043
  • Vercel AI Gateway provider #9144
  • Routstr declarative provider #9175
  • FuturMix provider #8840
  • oMLX declarative provider #9177
  • Strip chain-of-thought markers from custom provider output #8635
  • Quarterly option for scheduler #9076
  • Hooks system #9093
  • Atomic Chat as declarative OpenAI-compatible provider #9210
  • Projects as backend sources with system prompt injection #8739
  • Worktree-aware directory switcher #8450
  • Chat history search feature in navigation panel #8448
  • Expose built-in skills through sources list ACP calls #9045
  • ACP streamable HTTP spec compliance #9034
  • Move goose2 provider catalog behind ACP layer #9030
  • Group consecutive tool calls into one summarized chain card #8995
  • Replace raw config and secret methods in ACP #9000
  • Support Google model inventory refresh #8913
  • MCP Apps inline rendering in goose2 #8877
  • Goose2 custom providers support in UI and ACP #8924
  • Ollama host configurable in goose2 #8912
  • Skills added to chat composer #8881
  • MCP Apps hydrate and replay payloads in Goose2 #8632
  • Windows CUDA release artifacts #8750
🐛 Bug Fixes
  • Desktop new chat shortcut #9659
  • Correctly map ollama_cloud to canonical provider and update max tokens #9639
  • Incorrect max tokens values for Groq provider #9790
  • 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
  • goose-sdk release compat check with new schema #9697
  • Compatibility of config extension ACP call in TUI #9683
  • Intermittent missing extension override on UI #9575
  • Scheduled recipe session params #9553
  • Skip OTLP signals when protocol=grpc to avoid background-thread panic #9512
  • Forward ACP server context window size to clients #9455
  • Quote release PR search phrase in pre-release.sh #9573
  • Refresh provider list in Switch Models picker #9408
  • Start new chat in current window from recipe param modal #9422
  • Make Azure api-version query param optional #9221
  • Preserve pending env vars in Add Extension form #9285
  • Tolerate missing responses output #9449
  • Stricter GGUF requirements, auto detection of tool calling support, fixed thinking output parsing #9442
  • Build linux x86_64 standard inside manylinux_2_28 for glibc 2.28+ compat #9415
  • Stop desktop main window growing taller on every launch #9409
  • Desktop chat search session limiting #9366
  • 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
  • Preserve thinking content for provider context #9314
  • Mention configurable timeout env vars in Ollama stream stall error #9246
  • Include full recipe parameter details in load/discovery output #9233
  • Remove unused fetch-metadata IPC handler (SSRF) #9340
  • Emit trace_output as span attribute instead of event #9255
  • Check file fallback when keyring has no entry #9279
  • Desktop ScheduleModal error message styling #9278
  • Align sidebar hamburger in macOS fullscreen #9257
  • Use current_exe() instead of PATH lookup when spawning goose #9236
  • 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
  • Replace Venice custom provider with declarative config #9234
  • Widen MOIM allowlist to suppress expected fix_conversation warnings #9226
  • Use mkdir -p for self-test workspace initialization #9247
  • Re-apply canonical limits when delegate overrides model #9183
  • Report cumulative total_tokens in stream-json/json output #8910
  • Refresh GCP metadata server token on expiration #8929
  • Convert quoted numeric config values to numbers if needed #8844
  • Keep SSE reconnect loop alive on long disconnects #8846
  • Apply request_params to outgoing OpenAI API payload #9151
  • Add Gemini 3.x known_location Global routing and KNOWN_MODELS entries #9142
  • Coalesce streaming Thinking deltas + list available tools on not-found #9162
  • Honor Retry-After on 429 responses #9161
  • Preserve user-set session name for recipe-based chats #9079
  • Enforce exp independently of MAX_TOKEN_AGE_SECONDS in OIDC proxy #8839
  • Improve inline code contrast in light theme #9058
  • Omit max_tokens for OpenAI-compatible requests when unset #9123
  • Set correct mcp-app host capabilities #9116
  • Normalize nullable schemas for Vertex Gemini compatibility #8930
  • Isolate GitHub recipe temp paths #8878
  • Set X-Initiator header on GitHub Copilot requests #8809
  • Honor dynamic_models: false in declarative provider configs #8795
  • Cache trailing message for stable prefix across Bedrock agent turns #8916
  • Case-insensitive model name lookup for context_limit #8906
  • Emit cumulative token usage in stream-json/json complete event #8870
  • Return 400 instead of panicking on invalid CSP header value #8810
  • Coalesce streaming chunks under one message id in ACP #8788
  • Reuse goose2 vite server on port conflict #8722
  • Correct WSL2 OS detection by removing PWD-based Windows override #8869
  • Handle Bedrock ReasoningContent blocks gracefully #8843
  • Insert tool pair summaries at chronological position in conversation #9087
  • Enable SQLite foreign key enforcement in session pool #9121
  • Deleted chat session still appears in sidebar list #8674
  • Require extension_name on read_resource #8989
  • Queued message lost when clicking sending now #9074
  • Keep model picker and session config in sync in goose2 #9048
  • Read prompted file parameters in recipes #8504
  • Accept null tool_call arguments in streaming chunks #9035
  • Use python3 in developer extension instructions for macOS/Linux compatibility #8784
  • Synchronously reap ACP child to avoid SIGCHLD race #9023
  • Elicitation fixes #8999
  • SACP notifies clients of generated session names #8983
  • CRT linkage in Windows CUDA build #8987
  • Unscheduling a recipe should not delete them #8978
  • Seed provider handoff history in ACP #8941
  • Respect goose2 interface density settings #8953
  • Make goose2 respect accent color #8952
  • Preserve replay message timestamps #8942
  • Goose2 window minimum sizing #8946
  • Avoid transform-rasterized dialog text in goose2 #8937
  • Keep renamed skills open in detail view #8935
  • Gemini OAuth onboarding failure #8905
  • Model picker stays usable during provider loading #8900
  • Handle ACP requests concurrently #8781
  • Prevent tool-use marker leakage in toolshim output #8310
  • Exclude preprompt from session title generation #8793
  • Prevent login-shell PATH probe from suspending goose on startup #8804
🔧 Improvements
  • Mark stream decode errors retryable #9723
  • Validate desktop i18n catalogs #9776
  • Move formats/openai.rs into goose-providers crate #9633
  • Create goose-providers crate with canonical models and types #9588
  • ACP session setup refactor #9488
  • LRU cache for token counting #9586
  • Replace review subprocess timeout with turn limits #9571
  • Benchmarking infrastructure #9465
  • Honor blocking Stop hook decisions #9468
  • Forward custom headers through OAuth connect path #9388
  • Prefer goose aliases for Databricks v2 inventory #9430
  • Improve dependency hygiene #9360
  • Simplify UI customization #9353
  • Build summon instructions per turn #9329
  • Preserve selected branch across project chats #9010
  • Unified thinking effort control across all providers #9242
  • Linux desktop Vulkan packages #9323
  • Flush OTLP traces reliably on exit with configurable timeout #9228
  • Mount ACP in goosed server for iterative migration #9097
  • Use plain '> ' prompt instead of goose emoji in CLI #9305
  • Remove popular chat topics from new chat screen #9307
  • Stop killing goosed when a window closes #9302
  • Remove vendored Windows binaries #9318
  • Include request URL in provider error messages #9232
  • Ensure parallel tool image responses don't interleave for Databricks #9241
  • Surface resolved Databricks model metadata #9206
  • Better parsing of pasted HTML as markdown #9190
  • Persist accumulated cost in session DB to survive reload #9191
  • Prompt injection mitigation pattern updates #9198
  • TUI spacing/layout improvements #9243
  • Preserve thinking content for providers that require it #8857
  • Dynamically refresh skill instructions each turn #9217
  • Build non-vulkan Linux variants using ubuntu 22.04 #9211
  • Show tool name in approval prompt #9216
  • Localize hardcoded strings in provider settings UI #8931
  • Move settings into app shell #9047
  • Add Location column to CLI skills table #8785
  • Consolidate logging setup into shared helper #8817
  • Protocol cleanup #9147
  • Refresh onboarding when provider catalog loads #9051
  • Frontend extension session state and tool routes #8464
  • Remove threads layer, use sessions directly for ACP #9078
  • Install plugins to ~/.agents/plugins #9088
  • Use native arm64 runners for Linux artifact builds #9075
  • Linux Vulkan support for local inference #9038
  • Switch to official new rust-sdk for ACP #9062
  • Provider-first onboarding #9039
  • Replace artifact heuristics/regexes with protocol messages #8996
  • Fold UI refactor review into code review skill #8982
  • LM Studio declarative provider improvements #8973
  • Remove artifacts dir handling #8945
  • Install plugins support #8949
  • Redesign Extensions page, treat Extension Manager as core MCP enabler #8940
  • Goose2 settings headers cleanup #8951
  • Goose2 compact settings modal headers #8950
  • Break up acp/server.rs #8932
  • Goose2 skill refactor #8897
  • Polish sidebar navigation and project icons #8896
  • Update provider row after saving credentials #8914
  • Parallelize provider resolution and eagerly init SQLite pool #8899
  • Update goose2 credential management behind provider-scoped ACP/core API #8887
  • Deduplicate _goose/providers/list RPC call at startup #8873
  • Mergeable configs #8378
  • Agent provider to use explicit type states #8879
  • Translate ACP host capabilities into MCP initialization #8623
  • Redesign skills library #8868
  • Prompt injection mitigation enabled by default for internal users #9612
  • Re-adjust pattern-based detection confidence scores #9690
  • Pattern-based detection updates to reduce false positives #9350
  • Add directionality to egress logging #9546
📚 Documentation
  • Update ACP clients documentation #9772
  • Fix stale session navigation/delete docs #9727
  • Fix typo in MCP blog post #9641
  • Update analyze extension instructions #9585
  • Add Scaleway provider documentation #9423
  • Add Repology badge to README #9245
  • Document summon extension requirement for delegate and load tools #9231
  • Guide for connecting goose Desktop to remote goosed server #9275
  • SaladCloud AI Gateway documentation #9253
  • Hooks guide #9288
  • Blog post for hooks feature #9227
  • Fix internal documentation anchors #9094
  • Blog: orchestrating with goose #9104
  • Updated tunnel remote access documentation #9077
  • Blog: goose with peekaboo #8884
  • Built-in Local Inference blogpost #8808
  • Blog: findings with minimax and office QA benchmark #8984
  • Reorganize documentation #9310
  • Stats update #9410
🌐 Localization
  • Japanese locale support #9768
  • Hindi Desktop locale #9733
  • Russian language support #9406
  • Turkish desktop locale #9392
View originalPermalink
How v1.38.0 went

v1.37.0

Added 20
  • xAI SuperGrok OAuth subscription provider
  • Replay ACP images on session load
  • Expose raw provider supported models over ACP
  • ACP session system prompt setter
  • Scholar Sidekick MCP extension
  • tui feature flag to gate the TUI command
Fixed 1
  • Forward custom headers through OAuth connect path
✨ Features
  • xAI SuperGrok OAuth subscription provider #9420
  • Replay ACP images on session load #9496
  • Expose raw provider supported models over ACP #9475
  • ACP session system prompt setter #9478
  • Scholar Sidekick MCP extension #9433
  • tui feature flag to gate the TUI command #9428
  • CLI to list skills with token counts #9326
  • Perplexity as a declarative OpenAI-compatible provider #9324
  • Alibaba (Qwen via DashScope) declarative provider #9443
  • Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE #9256
  • /model slash command to CLI for session model switching #8747
  • Databricks AI Gateway provider #9274
  • Russian language support #9406
  • Turkish desktop locale #9392
  • TUI command on goose-cli #9385
  • Configurable MAX_CODE_BLOCK_LINES via env vars #9301
  • NEAR AI Cloud provider #9352
  • goose://resume session deep link #9343
  • Scaleway provider #9254
  • GOOSE_FAST_MODEL env var support in ModelConfig::with_fast #9296
  • Harbor eval runner #9138
  • Slash commands (built-in, skill, recipe) in ACP server #9238
  • /goal command for agent self-evaluation before finishing #9069
  • Summon subagent instructions #9325
  • Open-plugins generalization + skills #9112
  • PreToolUse denial hooks #9304
  • ACP session list pagination #9199
  • goose review local code review command #9114
  • TUI diff viewer #9260
  • goose://new-session deep link to open fresh chat #9196
  • Atomic Chat as declarative OpenAI-compatible provider #9210
  • GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri #9209
  • Proactive OAuth token refresh to avoid re-auth on every session #8386
  • GPT-5.5 added to ChatGPT Codex known models #9292
  • Opt-in to Vercel AI gateway leaderboard #9259
  • ACP pass session cwd param to providers #9229
  • Routstr as a declarative provider #9175
  • FuturMix provider #8840
  • oMLX declarative provider #9177
  • Strip chain-of-thought markers from custom provider output #8635
  • Encrypted Nostr session sharing #8922
  • Simplified Chinese (zh-CN) translation #8765
  • Nushell terminal and completion support #8628
  • Optional --parameters to scheduled recipe #8741
  • GitHub Copilot /responses API #9043
  • Vercel AI Gateway provider #9144
  • Hooks system #9093
  • Projects as backend sources with system prompt injection #8739
  • Linux Vulkan support for local inference #9038
  • ACP streamable HTTP spec compliance #9034
  • Group consecutive tool calls into one summarized chain card #8995
  • Quarterly option for scheduler #9076
🐛 Bug Fixes
  • Forward custom headers through OAuth connect path #9388
  • Scheduled recipe session params #9553
  • Skip OTLP signals when protocol=grpc to avoid background-thread panic #9512
  • Refresh provider list in Switch Models picker #9408
  • Start new chat in current window from recipe param modal #9422
  • Make Azure api-version query param optional #9221
  • Preserve pending env vars in Add Extension form #9285
  • Tolerate missing responses output #9449
  • Build linux x86_64 standard inside manylinux_2_28 for glibc 2.28+ compat #9415
  • Stop the main window growing taller on every launch #9409
  • Desktop chat search session limiting #9366
  • Serialize per-session agent creation to stop duplicate MCP init #9357
  • Forward ACP server context window size to clients #9455
  • Use context limit from /model/info for custom LiteLLM models #9303
  • Preserve thinking content for provider context #9314
  • Mention configurable timeout env vars in Ollama stream stall error #9246
  • Include full recipe parameter details in load/discovery output #9233
  • Remove unused fetch-metadata IPC handler (SSRF) #9340
  • Respect GOOSE_MAX_TURNS in gateway sessions #9354
  • Send empty object instead of null for Anthropic tool_use input #9355
  • Preserve selected branch across project chats #9010
  • Use current_exe() instead of PATH lookup when spawning goose #9236
  • 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
  • Prevent tool-use marker leakage in toolshim output #8310
  • Re-apply canonical limits when delegate overrides model #9183
  • Report cumulative total_tokens in stream-json/json output #8910
  • Refresh GCP metadata server token on expiration #8929
  • Convert quoted numeric config values to numbers if needed #8844
  • Keep SSE reconnect loop alive on long disconnects #8846
  • Apply request_params to outgoing OpenAI API payload #9151
  • Gemini 3.x known_location Global routing and KNOWN_MODELS entries #9142
  • Honor Retry-After on 429 responses #9161
  • Coalesce streaming Thinking deltas + list available tools on not-found #9162
  • Preserve user-set session name for recipe-based chats #9079
  • Enforce exp independently of MAX_TOKEN_AGE_SECONDS in OIDC proxy #8839
  • Improve inline code contrast in light theme #9058
  • Omit max_tokens for OpenAI-compatible requests when unset #9123
  • Set correct mcp-app host capabilities #9116
  • Normalize nullable schemas for Vertex Gemini compatibility #8930
  • Isolate GitHub recipe temp paths #8878
  • Set X-Initiator header on GitHub Copilot requests #8809
  • Honor dynamic_models: false in declarative provider configs #8795
  • Cache trailing message for stable Bedrock prefix across agent turns #8916
  • Case-insensitive model name lookup for context_limit #8906
  • Emit cumulative token usage in stream-json/json complete event #8870
  • Return 400 instead of panicking on invalid CSP header value #8810
  • Coalesce streaming chunks under one ACP message id #8788
  • Reuse goose2 vite server on port conflict #8722
  • Correct WSL2 OS detection by removing PWD-based Windows override #8869
  • Handle Bedrock ReasoningContent blocks gracefully #8843
  • Insert tool pair summaries at chronological position in conversation #9087
  • Enable SQLite foreign key enforcement in session pool #9121
  • Deleted chat session still appears in sidebar list #8674
  • Require extension_name on read_resource #8989
  • Queued message lost when clicking sending now #9074
  • Keep model picker and session config in sync #9048
  • Read prompted file parameters in recipes #8504
  • Accept null tool_call arguments in OpenAI streaming chunks #9035
  • Synchronously reap ACP child to avoid SIGCHLD race #9023
  • Elicitation fixes #8999
  • Persist accumulated cost in session DB to survive reload #9191
  • Check file fallback when keyring has no entry #9279
  • ScheduleModal error message styling #9278
  • Align sidebar hamburger in macOS fullscreen #9257
  • Emit trace_output as span attribute instead of event #9255
  • Replace Venice custom provider with declarative config #9234
  • 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
  • Ensure parallel tool image responses don't interleave tool results for Databricks #9241
  • Use plain '> ' prompt instead of goose emoji #9305
  • Stop killing goosed when a window closes #9302
  • Use appInfo instead of clientInfo in MCP Apps init handshake #9249
🔧 Improvements
  • Honor blocking Stop hook decisions #9468
  • Local inference: stricter GGUF requirements, auto detection of tool calling support, fixed thinking output parsing #9442
  • Prefer goose aliases for Databricks v2 inventory #9430
  • Simplify UI customization #9353
  • Build summon instructions per turn #9329
  • Optional api_key configuration for declarative openai-engine providers #9202
  • Flag for login shell PATH #9313
  • Remove popular chat topics from new chat screen #9307
  • Linux musl CLI builds #9240
  • Structured per-provider config block, non-destructive provider switching #8977
  • Flush OTLP traces reliably on exit with configurable timeout #9228
  • Better parsing of pasted HTML as markdown so agents understand #9190
  • Prompt injection mitigation: update pattern-based detection #9198
  • Prompt injection mitigation: update pattern-based detection to reduce FPs #9350
  • Surface resolved Databricks model metadata #9206
  • Unified thinking effort control across all providers #9242
  • Linux desktop Vulkan packages #9323
  • Preserve thinking content for providers that require it #8857
  • Dynamically refresh skill instructions each turn #9217
  • Build non-Vulkan Linux variants using Ubuntu 22.04 #9211
  • Include request URL in provider error messages #9232
  • Worktree-aware directory switcher #8450
  • Chat history search feature to navigation panel #8448
  • Provider-first onboarding #9039
  • Improvements to LM Studio declarative provider #8973
  • Location column in CLI skills table #8785
  • GOOSE_DISABLE_TOOL_CALL_SUMMARY to opt out of per-tool-call summaries #8947
  • Localize hardcoded strings in provider settings UI #8931
  • Move settings into app shell #9047
  • Parallelize provider resolution and eagerly init SQLite pool #8899
  • Deduplicate _goose/providers/list RPC call at startup #8873
  • Skills library redesign #8868
  • TUI spacing/layout improvements #9243
  • Polish sidebar and context panel #9059
  • Polish inline code snippet styling #9011
  • Polish sidebar navigation and project icons #8896
  • Extensions page redesign #8940
  • Mergeable configs + cleanup #8378
  • Consolidate logging setup into shared helper in goose crate #8817
  • Replace lazy_static with std::sync::LazyLock #8815
  • DEFAULT_PROVIDER_TIMEOUT_SECS constant for providers #8816
  • Remove vendored Windows binaries #9318
  • Use native arm64 runners for Linux artifact builds #9075
📚 Documentation
  • Scaleway provider documentation #9423
  • Guide for connecting goose Desktop to a remote goosed server #9275
  • SaladCloud AI Gateway provider documentation #9253
  • Hooks guide #9288
  • Document summon extension requirement for delegate and load tools #9231
  • Blog post for hooks feature #9227
  • Documentation reorganization #9310
  • Tunnel remote access documentation update #9077
  • Orchestrating with goose blog post #9104
  • Blog post on findings with minimax and office QA benchmark #8984
  • Blog post on goose with peekaboo #8884
  • Built-in Local Inference blog post #8808
View originalPermalink
How v1.37.0 went

v1.36.0

Added 42
  • TUI command on goose-cli
  • TUI diff viewer
  • goose review local code review command
  • /goal command for agent self-evaluation before finishing
  • Hooks system for PreToolUse denial and extensibility
  • Slash commands (built-in, skill, recipe) in ACP server
Fixed 16
  • Tolerate missing responses output
  • Stop main window growing taller on every launch
  • Desktop chat search session limiting
  • Serialize per-session agent creation to stop duplicate MCP init
  • Respect GOOSE_MAX_TURNS in gateway sessions
  • Send empty object instead of null for Anthropic tool_use input
Security 1
  • Remove unused fetch-metadata IPC handler (SSRF)
✨ Features
  • TUI command on goose-cli #9385
  • TUI diff viewer #9260
  • goose review local code review command #9114
  • /goal command for agent self-evaluation before finishing #9069
  • Hooks system for PreToolUse denial and extensibility #9093, #9304
  • Slash commands (built-in, skill, recipe) in ACP server #9238
  • Open-plugins generalization + skills #9112
  • Summon subagent instructions #9325
  • Unified thinking effort control across all providers #9242
  • NEAR AI Cloud provider #9352
  • Scaleway provider #9254
  • Vercel AI Gateway provider #9144
  • Atomic Chat declarative OpenAI-compatible provider #9210
  • Routstr declarative provider #9175
  • FuturMix provider #8840
  • oMLX declarative provider #9177
  • Harbor eval runner #9138
  • goose://resume and goose://new-session deep links #9343, #9196
  • MAX_CODE_BLOCK_LINES configurable via env vars #9301
  • Honor GOOSE_FAST_MODEL env var in ModelConfig #9296
  • GPT-5.5 in known models #9292
  • Paginate ACP session list #9199
  • Pass session cwd param to ACP providers #9229
  • Opt-in to Vercel AI gateway leaderboard #9259
  • GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri #9209
  • Proactive OAuth token refresh to avoid re-auth on every session #8386
  • Strip chain-of-thought markers from custom provider output #8635
  • Encrypted Nostr session sharing #8922
  • Simplified Chinese (zh-CN) translation #8765
  • Russian language support #9406
  • Turkish desktop locale #9392
  • Nushell terminal and completion support #8628
  • Optional --parameters flag for scheduled recipes #8741
  • Quarterly option for scheduler #9076
  • GitHub Copilot /responses API support #9043
  • Worktree-aware directory switcher #8450
  • Chat history search feature #8448
  • Projects as backend sources with system prompt injection #8739
  • Linux Vulkan support for local inference #9038
  • Linux musl CLI builds #9240
  • Windows CUDA release artifacts #8750
  • GOOSE_DISABLE_TOOL_CALL_SUMMARY env var #8947
🐛 Bug Fixes
  • Tolerate missing responses output #9449
  • Stop main window growing taller on every launch #9409
  • Desktop chat search session limiting #9366
  • 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
  • Preserve thinking content for provider context #9314
  • Mention configurable timeout env vars in Ollama stream stall error #9246
  • Include full recipe parameter details in load/discovery output #9233
  • Remove unused fetch-metadata IPC handler (SSRF) #9340
  • Use context limit from /model/info for LiteLLM custom models #9303
  • Plain > prompt instead of goose emoji in CLI #9305
  • Stop killing goosed when a window closes #9302
  • Emit trace_output as span attribute instead of event #9255
  • Check file fallback when keyring has no entry #9279
  • Align sidebar hamburger in macOS fullscreen #9257
  • Use current_exe() instead of PATH lookup when spawning goose #9236
  • Set TCP_USER_TIMEOUT on streamable HTTP clients #9207
  • Activate custom provider after adding via configure #9213
  • Flush OTLP traces reliably on exit with configurable timeout #9228
  • 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
  • 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
  • Report cumulative total_tokens in stream-json/json output #8910
  • Refresh GCP metadata server token on expiration #8929
  • Apply request_params to outgoing OpenAI API payload #9151
  • Gemini 3.x known_location Global routing entries #9142
  • Coalesce streaming Thinking deltas + list available tools on not-found #9162
  • Honor Retry-After on 429 responses #9161
  • Preserve user-set session name for recipe-based chats #9079
  • Enforce exp independently of MAX_TOKEN_AGE_SECONDS in OIDC proxy #8839
  • Improve inline code contrast in light theme #9058
  • Omit max_tokens for OpenAI-compatible requests when unset #9123
  • Set correct MCP-app host capabilities #9116
  • Normalize nullable schemas for Vertex Gemini compatibility #8930
  • Isolate GitHub recipe temp paths #8878
  • Set X-Initiator header on GitHub Copilot requests #8809
  • Honor dynamic_models: false in declarative provider configs #8795
  • Cache trailing message for stable prefix across Bedrock agent turns #8916
  • Case-insensitive model name lookup for context_limit #8906
  • Handle Bedrock ReasoningContent blocks gracefully #8843
  • Ensure parallel tool image responses don't interleave on Databricks #9241
  • Insert tool pair summaries at chronological position in conversation #9087
  • Enable SQLite foreign key enforcement in session pool #9121
  • Deleted chat session still appears in sidebar list #8674
  • Correct WSL2 OS detection by removing PWD-based Windows override #8869
  • Accept null tool_call arguments in OpenAI streaming chunks #9035
  • Use python3 in developer extension instructions for macOS/Linux #8784
  • Synchronously reap ACP child to avoid SIGCHLD race #9023
  • Elicitation fixes #8999
  • Return 400 instead of panicking on invalid CSP header value #8810
  • Keep SSE reconnect loop alive on long disconnects #8846
  • Convert quoted numeric config values to numbers if needed #8844
  • Use appInfo instead of clientInfo in MCP Apps init handshake #9249
  • Use mkdir -p for self-test workspace initialization #9247
  • Exclude preprompt from session title generation #8793
  • Prevent login-shell PATH probe from suspending goose on startup #8804
🔧 Improvements
  • Local inference: stricter GGUF requirements, auto detection of tool calling support, fixed thinking output parsing #9442
  • Simplify UI customization #9353
  • Build summon instructions per turn #9329
  • Protocol cleanup #9147
  • Dependency hygiene #9360
  • Preserve selected branch across project chats #9010
  • Prompt injection mitigation: update pattern-based detection to reduce FPs #9350
  • Surface resolved Databricks model metadata #9206
  • Include request URL in provider error messages #9232
  • Flag for login shell PATH #9313
  • Remove popular chat topics from new chat screen #9307
  • Structured per-provider config block, non-destructive provider switching #8977
  • TUI spacing/layout improvements #9243
  • Preserve thinking content for providers that require it #8857
  • Dynamically refresh skill instructions each turn #9217
  • Better parsing of pasted HTML as markdown #9190
  • Show tool name in approval prompt #9216
  • Localize hardcoded strings in provider settings UI #8931
  • Move settings into app shell #9047
  • Location column in CLI skills table #8785
  • Consolidate logging setup into shared helper #8817
  • Support optional api_key configuration for declarative openai-engine providers #9202
  • Remove vendored Windows binaries #9318
  • Polish sidebar and context panel #9059
  • Polish inline code snippet styling #9011
  • Refresh onboarding when provider catalog loads #9051
  • Recipe discovery/execution in ACP server #8925
  • Group consecutive tool calls into one summarized chain card #8995
  • Replace artifact heuristics/regexes with protocol messages #8996
  • Improvements to LM Studio declarative provider #8973
  • Parallelize provider resolution and eagerly init SQLite pool #8899
  • Deduplicate _goose/providers/list RPC call at startup #8873
  • Native arm64 runners for Linux artifact builds #9075
  • ACP streamable HTTP spec compliance #9034
  • Provider-first onboarding #9039
  • Redesign extensions page #8940
  • Redesign skills library #8868
  • Skills in chat composer #8881
  • Mergeable configs cleanup #8378
📚 Documentation
  • Stats update #9410
  • Hooks guide #9288
  • Hooks feature blog post #9227
  • Document summon extension requirement for delegate and load tools #9231
  • Guide for connecting goose Desktop to a remote goosed server #9275
  • SaladCloud AI Gateway provider documentation #9253
  • Reorganize documentation #9310
  • Fix internal documentation anchors #9094
  • Tunnel remote access documentation update #9077
  • Linux desktop Vulkan packages #9323
  • Orchestrating with goose blog #9104
  • Goose with Peekaboo blog #8884
  • Built-in local inference blog post #8808
  • MiniMax and office QA benchmark blog post #8984
  • Repology badge in README #9245
View originalPermalink
How v1.36.0 went
View all

Discussion