github aaif-goose/goose v1.38.0

14 hours ago

✨ 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

Don't miss a new goose release

NewReleases is sending notifications on new releases.