Skip to content

v1.40.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 05:12

✨ 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