github aaif-goose/goose v1.49.0

3 hours ago

✨ Features

  • Auto-updater for desktop application #10614
  • Linux ARM64 desktop release packages #11518
  • Load extensions in the background so the CLI prompt is immediately usable #10403
  • Title sessions by subject, not workflow step #11135
  • Interactive git branch indicator in chat bottom bar #11290
  • on_failure block for PreToolUse hooks #11449
  • Web-search and browser-use built-in skills #11233
  • Model-native audio transcription provider #10589
  • --with-extension can now name its extension #11127
  • Auto-focus chat input when user starts typing #11184
  • Collapse scheduled job sessions into accordion in chat history #11265
  • Select saved recipes when creating a schedule #10892
  • Show recent used models in chat footer model picker #11097
  • PreToolUseResult event and stable tool_call_id across tool lifecycle #11120
  • Sort configured providers to the top of the provider list #11409
  • OpenRouter session_id forwarding and app category header #10868
  • ACP thinking effort derivation and forwarding #10949
  • GPT-5.6 follow-up support for Codex and Responses API #10460
  • Pre-registered OAuth clients for streamable_http extensions #11182
  • OTEL request params, response metadata, tool call parity, and agent identification #11261

New Providers

  • Opper as a declarative OpenAI-compatible provider #11589
  • Databricks Unity Catalog model services discovery #11575
  • TrustedRouter declarative provider #11422
  • OpenCode Zen gateway as a declarative provider #10939
  • Gondola as declarative OpenAI-compatible provider #11421
  • SayGM as declarative OpenAI-compatible provider #11267
  • Lynkr as declarative OpenAI-compatible provider #11372
  • PleumRouter declarative provider #10479
  • Z.ai GLM-5.3 (replacing GLM-5.2) #11226
  • OpenAI GPT-5.6 (sol/terra/luna) via Bedrock #10502
  • Custom provider cost fields for cost tracking #11220

🐛 Bug Fixes

  • Unify context limit resolution behind provider API #11213
  • Keep using valid MCP access tokens without a refresh token #11324
  • Provider save no longer overwrites stored config with defaults #11517
  • Deduplicate parallel tool-pair summaries #11195
  • Exclude Git metadata from project hints #11148
  • Honor remote working directory for new chats and allow typed paths #11322
  • Sanitize hidden Unicode in Bedrock tools #11121
  • Avoid sending images to non-vision capable models #11496
  • Reject cmd.exe commands containing newlines #11537
  • Honest compaction failure message and fast-fail when no tool responses exist #10500
  • Chat input freeze after opening model picker #11525
  • Bound non-streaming JSON responses #11109
  • Reject non-object response schemas in recipes #11478
  • Coalesce consecutive Thinking blocks in collect_stream #11317
  • Decouple source file and tool response limits #11391
  • Discover GGUF repos with non-standard filenames #11005
  • Flip select menus up when the window clips them #11495
  • Bedrock prefer HTTP bearer auth when configured #11562
  • MCP sampling for reasoning-first responses #11092
  • Keep recalled history agent-visible #11490
  • Fail closed on invalid default GCP credentials #11363
  • Bound handoff memo so long sessions stay resumable #11204
  • Goose unable to work with DeepSeek and Alibaba using OpenAI responses API #11298
  • Show tool inputs before approval #10932
  • Deduplicate enabled builtins #11340
  • Send explicit thinking disabled to adaptive Claude models #11177
  • Handle error code for context length exceeded #11283
  • Include required annotations field on replayed output_text items #11263
  • Isolate concurrent subagent notifications #10772
  • Validate recipe parameter values #11234
  • Re-enable minijinja builtins so documented recipe filters work #11310

Security Fixes

  • Enforce per-turn model tool allowlists #11426
  • Stop exposing provider secret suffixes #11476
  • Restrict code mode callback output #11471
  • Restrict app management tools #11470
  • Preserve local inference message text #11452
  • Preserve session extension identities #11420
  • Bound local image reads in developer extension #11419
  • Confine agent listing to source roots #11444
  • Recognize Windows package runners #11466
  • Fail closed on malformed tool visibility #11474
  • Give permission denies precedence #11477
  • Confine recipe library writes #11482
  • Scope app events by extension #11486
  • Restrict project updates to visible sessions #11487
  • Reject symlinked check sources #11489
  • Honor plugin enablement for skills #11439
  • Protect system prompt transport in claude-code #11441
  • Bind ACP permissions to request generations #11415
  • Honor MCP tool model visibility in Code Mode #11425
  • Refuse symlink diagnostics outputs #11398
  • Serialize secret mutations #11388
  • Suppress sensitive OTLP traces #11381
  • Bound call graph traversal #11193
  • Fail closed on invalid Codex ACP mode #11362
  • Bind Foundry API keys to request origin #11347
  • Validate memory categories #11191
  • Bound recursive mention scans #11228
  • Fail closed on malformed app visibility #11341
  • Redact Telegram tokens from request errors #11343
  • Encode session navigation parameters #11232
  • Redact URLs in provider errors #11230
  • Confine temporary extraction cleanup #11125
  • Clear custom provider transition secrets #11467
  • Pin renderer ACP certificates #11485
  • Require fresh file parameter input #11455
  • Escape OAuth callback content #11479
  • Sanitize Unicode tags in MCP prompts #11453

🔧 Improvements

  • Improve long chat rendering performance #11583
  • Limit sessions before counting messages for performance #11521
  • Enforce locked Cargo dependencies in CI #11560
  • Move inference operation into goose-agent crate #11294
  • Make roaming an opt-in goose-cli feature (default-off) #11516
  • Improve ACP provider setup and unify setup metadata #11100
  • Create goose-agent crate with unrolled agent loop state machine #11216
  • Make unrolled loop state machine generic #11139
  • Compact with main session model, not fast model #11255
  • Add MCP conformance tests to goose CI #10940
  • Aura dark theme for Goose #10283
  • Bedrock routing table with Gemma 4 Mantle support #10297
  • Gate clear_thinking behind opt-in flag (Z.AI-only) #10439
  • Include working directory in stop hook context #11112
  • Keep stdio extensions alive across worker exits #10364
  • Include thinking tokens in Google usage output_tokens #10354
  • Give GOOSE_SUBAGENT_PROVIDER/MODEL priority over LLM-injected params #9650
  • Preserve extensions when adding MCP servers #11339
  • Preserve platform tool allowlists #11369
  • Make Gemini plugin installs transactional #11303

📚 Documentation

  • GDK language param in doc links #11592
  • Retire Recipe Cookbook security scanner #11597
  • Require issues before pull requests #11565
  • GDK API Reference nav item + deep-link anchors #11564
  • SDK API reference for Rust, Python, and Kotlin #11251
  • Correct Telegram gateway setup #11527
  • Keep GitHub comments concise #11447

Don't miss a new goose release

NewReleases is sending notifications on new releases.