v1.47.0

aaif-goose/goosev1.47.0Aug 21, 2026by github-actions[bot]

AI Summary

v1.47.0 introduces several user-facing features including a git branch indicator and OAuth support, alongside significant backend architectural updates like the new goose-agent crate and SQLite upgrade. The release also includes a comprehensive list of bug fixes addressing context handling, ACP providers, and file operations.

Key Highlights

  • Interactive git branch indicator in chat bottom bar
  • Support for pre-registered OAuth clients for streamable_http extensions
  • Introduction of goose-agent crate with a generic state machine
  • Upgrade to SQLite 3.51.3 and ACP SDK 1.3.0

New Features

  • Interactive git branch indicator in chat bottom bar
  • Support for pre-registered OAuth clients for streamable_http extensions
  • Show recently used models in chat footer model picker

Full Release Notes

## ✨ Features

- Interactive git branch indicator in chat bottom bar [#11290](https://github.com/aaif-goose/goose/pull/11290)
- Support for pre-registered OAuth clients for streamable_http extensions [#11182](https://github.com/aaif-goose/goose/pull/11182)
- Show recently used models in chat footer model picker [#11097](https://github.com/aaif-goose/goose/pull/11097)

## 🐛 Bug Fixes

- Isolate concurrent subagent notifications in summon [#10772](https://github.com/aaif-goose/goose/pull/10772)
- Validate recipe parameter values [#11234](https://github.com/aaif-goose/goose/pull/11234)
- Re-enable minijinja builtins so documented recipe filters work [#11310](https://github.com/aaif-goose/goose/pull/11310)
- Send explicit thinking disabled to adaptive Claude models [#11177](https://github.com/aaif-goose/goose/pull/11177)
- Handle error code for context length exceeded [#11283](https://github.com/aaif-goose/goose/pull/11283)
- Include required annotations field on replayed output_text items [#11263](https://github.com/aaif-goose/goose/pull/11263)
- Reject context commands for context-owning providers [#11094](https://github.com/aaif-goose/goose/pull/11094)
- Prevent recipe parameter form from reloading the app on Enter [#10522](https://github.com/aaif-goose/goose/pull/10522)
- Enforce secure token transport in OAuth [#11183](https://github.com/aaif-goose/goose/pull/11183)
- Deprecate Gemini OAuth provider [#11223](https://github.com/aaif-goose/goose/pull/11223)
- Stop paying the prompt-cache write premium on one-shot fast-model calls [#11179](https://github.com/aaif-goose/goose/pull/11179)
- Skip local Stdio/StreamableHttp extension spawn when provider manages own context [#11203](https://github.com/aaif-goose/goose/pull/11203)
- Navigation toggle showing hamburger menu icon to open navigation [#11144](https://github.com/aaif-goose/goose/pull/11144)
- Return auth error for ACP provider from goose ACP server [#11202](https://github.com/aaif-goose/goose/pull/11202)
- Ignore ACP provider generated title and use goose generated title [#11197](https://github.com/aaif-goose/goose/pull/11197)
- Render visualizer data as text [#11186](https://github.com/aaif-goose/goose/pull/11186)
- Bound XLSX range reads [#11190](https://github.com/aaif-goose/goose/pull/11190)
- Update SQLite to 3.51.3 [#11157](https://github.com/aaif-goose/goose/pull/11157)
- Classify byte-size request limit errors as context-length-exceeded [#11173](https://github.com/aaif-goose/goose/pull/11173)
- Prevent large-session disconnects in ACP [#11159](https://github.com/aaif-goose/goose/pull/11159)
- Narrow desktop file read IPC [#11149](https://github.com/aaif-goose/goose/pull/11149)
- Avoid reading file params in recipe explain [#11119](https://github.com/aaif-goose/goose/pull/11119)
- Bound local image reads [#11114](https://github.com/aaif-goose/goose/pull/11114)
- Bound action-required stream admission [#11113](https://github.com/aaif-goose/goose/pull/11113)
- Bound partial thinking tags [#11108](https://github.com/aaif-goose/goose/pull/11108)
- Avoid following untracked review symlinks [#10995](https://github.com/aaif-goose/goose/pull/10995)
- Bind deeplink recipe parameters to startup session [#11123](https://github.com/aaif-goose/goose/pull/11123)
- Rename compare_tasks skill to a spec-valid name [#11068](https://github.com/aaif-goose/goose/pull/11068)
- Suppress extension loading toast when all extensions succeed [#11016](https://github.com/aaif-goose/goose/pull/11016)

## 🔧 Improvements

- Improve ACP provider setup and unify setup metadata [#11100](https://github.com/aaif-goose/goose/pull/11100)
- Create goose-agent crate with unrolled agent loop state machine [#11216](https://github.com/aaif-goose/goose/pull/11216)
- Make the unrolled loop state machine generic [#11139](https://github.com/aaif-goose/goose/pull/11139)
- Retry ACP handoff context after failed prompts [#10660](https://github.com/aaif-goose/goose/pull/10660)
- Remove automation_script, web_scrape, and cache tools from computercontroller [#11198](https://github.com/aaif-goose/goose/pull/11198)
- Upgrade ACP SDK to 1.3.0 [#11218](https://github.com/aaif-goose/goose/pull/11218)
- Pin V1 SDK and narrow ACP crate features [#11289](https://github.com/aaif-goose/goose/pull/11289)
- Migrate session/delete to the standard ACP SDK [#11286](https://github.com/aaif-goose/goose/pull/11286)
- Use rmcp ContentBlock in goose-sdk UniFFI [#11210](https://github.com/aaif-goose/goose/pull/11210)