v1.30.0

aaif-goose/goosev1.30.0Apr 8, 2026by github-actions[bot]

AI Summary

Major release featuring comprehensive TUI overhaul with tab-expandable tool calls and improved message rendering. Introduces Gemini OAuth provider, Copilot ACP provider, and new security features like egress logging inspector.

Key Highlights

  • TUI overhaul with tab-expandable tool calls
  • Gemini OAuth provider for Google authentication
  • Copilot ACP provider for GitHub Copilot
  • goose serve subcommand for background service
  • Egress logging inspector for security
  • goose doctor command for diagnostics
  • Skills platform extension
  • i18n infrastructure for internationalization

New Features

  • Tab-expandable tool calls
  • Improved message rendering
  • Independent --text mode for headless experience
  • goose serve subcommand
  • Gemini OAuth provider
  • Copilot ACP provider
  • Zhipu declarative provider
  • Configurable fast_model for declarative providers
  • Gemma 4 local model support
  • Egress logging inspector
  • Restricted secrets file permissions
  • Show installed skills in UI
  • Skills platform extension
  • Recursively discover nested skills
  • Configurable extension timeouts
  • Reusable ACP provider controls
  • Rust ACP client for extension methods
  • Developer MCP server enhancements
  • i18n infrastructure
  • goose doctor command
  • GOOSE_SHOW_FULL_OUTPUT config option
  • GOOSE_CLI_SHOW_THINKING in config.yaml
  • GOOSE_CONTEXT_LIMIT readable from config.yaml
  • GOOSE_DISABLE_KEYRING from config.yaml
  • Per-delegate max_turns override
  • skip_canonical_filtering for declarative providers
  • Optional native-tls support
  • Feature-gated AWS provider dependencies
  • Feature-gated telemetry
  • Inference Mesh settings tab

Full Release Notes

---

# ๐Ÿชฟ Goose v1.30.0 Release Notes

**Released:** April 8, 2026

---

## โœจ New Features

### ๐Ÿ–ฅ๏ธ Terminal UI (TUI) Overhaul
- **Tab-expandable tool calls** โ€” tool call output now collapses cleanly with tab to expand ([#8136](https://github.com/aaif-goose/goose/pull/8136))
- **Improved message rendering** โ€” better ordering, streaming/scrolling, and overall visual polish for messages, tool calls, and text entry ([#8144](https://github.com/aaif-goose/goose/pull/8144), [#8156](https://github.com/aaif-goose/goose/pull/8156), [#8214](https://github.com/aaif-goose/goose/pull/8214))
- **Independent `--text` mode** โ€” text mode is now decoupled from the normal TUI for a cleaner headless experience ([#8210](https://github.com/aaif-goose/goose/pull/8210))
- **`goose serve`** โ€” new subcommand to run Goose as a background service ([#8209](https://github.com/aaif-goose/goose/pull/8209))

### ๐Ÿ”Œ Providers & Models
- **Gemini OAuth provider** โ€” first-class OAuth-based authentication for Google Gemini ([#8129](https://github.com/aaif-goose/goose/pull/8129))
- **Copilot ACP provider** โ€” new provider for GitHub Copilot via ACP ([#8154](https://github.com/aaif-goose/goose/pull/8154))
- **Zhipu declarative provider** โ€” adds Zhipu AI with configurable `ZHIPU_BASE_URL` override ([#8204](https://github.com/aaif-goose/goose/pull/8204))
- **Configurable `fast_model` for declarative providers** โ€” lets you specify a lightweight model for quick tasks ([#8194](https://github.com/aaif-goose/goose/pull/8194))
- **Gemma 4 local model support** โ€” enable Gemma 4 as a local model option ([#8366](https://github.com/aaif-goose/goose/pull/8366))
- **VMware Tanzu Platform provider improvements** โ€” bug fixes, streaming support, and UI enhancements ([#8126](https://github.com/aaif-goose/goose/pull/8126))

### ๐Ÿ›ก๏ธ Security & Observability
- **Egress logging inspector** โ€” new security feature to log and inspect outbound network calls ([#8149](https://github.com/aaif-goose/goose/pull/8149))
- **Restricted secrets file permissions** โ€” secrets files are now created with tighter OS-level permissions ([#8118](https://github.com/aaif-goose/goose/pull/8118))

### ๐Ÿงฉ Extensions & Skills
- **Show installed skills in UI** โ€” skills are now visible and browsable from the desktop app ([#7910](https://github.com/aaif-goose/goose/pull/7910))
- **Skills platform extension** โ€” skills are now managed as a dedicated platform extension ([#8377](https://github.com/aaif-goose/goose/pull/8377))
- **Recursively discover nested skills** โ€” skills under configured roots are now found at any depth ([#8082](https://github.com/aaif-goose/goose/pull/8082))
- **Configurable extension timeouts** โ€” set timeouts per-extension via ACP `_meta` or a global default ([#8295](https://github.com/aaif-goose/goose/pull/8295))
- **Reusable ACP provider controls** โ€” shared UI components for ACP provider configuration ([#8314](https://github.com/aaif-goose/goose/pull/8314))
- **Rust ACP client for extension methods** ([#8227](https://github.com/aaif-goose/goose/pull/8227))
- **Developer MCP server enhancements** ([#7770](https://github.com/aaif-goose/goose/pull/7770))

### ๐ŸŒ Internationalization
- **i18n infrastructure** โ€” added `react-intl` based internationalization framework to the desktop app ([#8105](https://github.com/aaif-goose/goose/pull/8105))

### ๐Ÿฉบ Diagnostics
- **`goose doctor`** โ€” new command to diagnose common configuration and environment issues ([#8342](https://github.com/aaif-goose/goose/pull/8342))

### โš™๏ธ Configuration
- **`GOOSE_SHOW_FULL_OUTPUT`** โ€” new config option to disable tool output truncation ([#7919](https://github.com/aaif-goose/goose/pull/7919))
- **`GOOSE_CLI_SHOW_THINKING`** โ€” can now be set in `config.yaml` (not just env vars) ([#8097](https://github.com/aaif-goose/goose/pull/8097))
- **`GOOSE_CONTEXT_LIMIT`** โ€” now readable from `config.yaml` ([#7900](https://github.com/aaif-goose/goose/pull/7900))
- **`GOOSE_DISABLE_KEYRING`** โ€” now honoured from `config.yaml` at startup ([#8219](https://github.com/aaif-goose/goose/pull/8219))
- **Per-delegate `max_turns` override** ([#8066](https://github.com/aaif-goose/goose/pull/8066))
- **`skip_canonical_filtering` for declarative providers** ([#8052](https://github.com/aaif-goose/goose/pull/8052))

### ๐Ÿ—๏ธ Build & Packaging
- **Optional `native-tls` support** โ€” alternative to rustls for environments that need system TLS ([#8037](https://github.com/aaif-goose/goose/pull/8037))
- **Feature-gated AWS provider dependencies** โ€” behind `aws-providers` feature flag for leaner builds ([#8080](https://github.com/aaif-goose/goose/pull/8080))
- **Feature-gated telemetry** โ€” telemetry is now behind Cargo feature flags ([#8119](https://github.com/aaif-goose/goose/pull/8119))
- **Inference Mesh settings tab** ([#8094](https://github.com/aaif-goose/goose/pull/8094))

---

## ๐Ÿ› Bug Fixes

### Providers
- Fix user message text silently dropped when message contains both text and image ([#8071](https://github.com/aaif-goose/goose/pull/8071))
- Send empty object instead of `null` for Bedrock tool input ([#8121](https://github.com/aaif-goose/goose/pull/8121))
- Fall back to configured models when the models endpoint fetch fails ([#7530](https://github.com/aaif-goose/goose/pull/7530))
- Prevent Ollama provider from hanging on tool-calling requests ([#7723](https://github.com/aaif-goose/goose/pull/7723))
- Increase Ollama retry config + add transient-only retry mode ([#7677](https://github.com/aaif-goose/goose/pull/7677))
- Use `safely_parse_json` for OpenAI streaming tool arguments ([#8208](https://github.com/aaif-goose/goose/pull/8208))
- Use `v1beta1` API version for Google/MaaS models on GCP Vertex AI ([#8278](https://github.com/aaif-goose/goose/pull/8278))
- Use `build_host_url` for GCP Vertex AI location fallback ([#8185](https://github.com/aaif-goose/goose/pull/8185))
- Parse nested usage payloads in LiteLLM ([#8081](https://github.com/aaif-goose/goose/pull/8081))
- Prioritize predefined model `context_limit` over canonical registry ([#7888](https://github.com/aaif-goose/goose/pull/7888))
- Always pass `--model` to cursor-agent CLI ([#8106](https://github.com/aaif-goose/goose/pull/8106))
- Fix models not shown in "Choose Model" modal after OAuth configuration completes ([#7891](https://github.com/aaif-goose/goose/pull/7891))
- Allow connecting to OAuth servers using protected-resource fallback instead of `WWW-Authenticate` header ([#8148](https://github.com/aaif-goose/goose/pull/8148))

### Desktop App
- Fix "View as Markdown" feature not working ([#8160](https://github.com/aaif-goose/goose/pull/8160))
- Fix desktop slash commands ([#8341](https://github.com/aaif-goose/goose/pull/8341))
- Fix GitHub Copilot auth fails to open browser in Desktop app ([#8019](https://github.com/aaif-goose/goose/pull/8019))
- Hide hidden extensions in UI ([#8346](https://github.com/aaif-goose/goose/pull/8346))
- Return raw text when chat parse error occurs ([#8402](https://github.com/aaif-goose/goose/pull/8402))
- Fix Gemini ACP without an unexpected terminal window ([#8101](https://github.com/aaif-goose/goose/pull/8101))
- Replace `any` with proper SVG types in icon components ([#7873](https://github.com/aaif-goose/goose/pull/7873))
- Fix extension command with quotes in CLI ([#8150](https://github.com/aaif-goose/goose/pull/8150))
- Fix `overflow: clip` to not disrupt sticky ToC ([#8158](https://github.com/aaif-goose/goose/pull/8158))
- Fix i18n compile on Windows ([#8202](https://github.com/aaif-goose/goose/pull/8202))
- Fix MultilineInput component ([#8382](https://github.com/aaif-goose/goose/pull/8382))

### CLI & Core
- Fix Goose update failing on Linux with `ETXTBSY` ([#8107](https://github.com/aaif-goose/goose/pull/8107))
- Resolve user login `PATH` for MCP extension subprocesses ([#7896](https://github.com/aaif-goose/goose/pull/7896))
- Replace panics with user-friendly errors in CLI session builder ([#7901](https://github.com/aaif-goose/goose/pull/7901))
- Strip message wrapper in CLI session title generation ([#7996](https://github.com/aaif-goose/goose/pull/7996))
- Display platform-correct secrets path in keyring config dialog ([#8328](https://github.com/aaif-goose/goose/pull/8328))
- Deliver truncation notice as separate content block ([#7899](https://github.com/aaif-goose/goose/pull/7899))
- Use platform-appropriate commands in developer extension instructions ([#7898](https://github.com/aaif-goose/goose/pull/7898))
- Reconsolidate split tool-call messages to follow OpenAI format ([#7921](https://github.com/aaif-goose/goose/pull/7921))
- Clean up MCP subprocesses after abrupt parent exit ([#8242](https://github.com/aaif-goose/goose/pull/8242))
- Fix Flatpak sandbox preventing access to host system commands ([#8109](https://github.com/aaif-goose/goose/pull/8109))
- Gate keyring platform features behind target-specific deps ([#8039](https://github.com/aaif-goose/goose/pull/8039))
- Raise default stack reserve to 8 MB ([#8234](https://github.com/aaif-goose/goose/pull/8234))

### ACP
- Separate ACP sessions from user sessions ([#7857](https://github.com/aaif-goose/goose/pull/7857))
- Avoid duplicate thought chunks around tool calls ([#8215](https://github.com/aaif-goose/goose/pull/8215))

---

## โšก Performance

- **Parallelize extension loading** in ACP server for faster startup ([#8098](https://github.com/aaif-goose/goose/pull/8098))
- **Mesh binary management** โ€” download fresh binary on every start; kill mesh when Goose exits ([#8228](https://github.com/aaif-goose/goose/pull/8228))

---

## ๐Ÿ“š Documentation

- Unified thinking documentation ([#7817](https://github.com/aaif-goose/goose/pull/7817))
- `available_tools` field in extension config docs ([#7725](https://github.com/aaif-goose/goose/pull/7725))
- Memory extension reference moved to docs, trimmed runtime prompt ([#7727](https://github.com/aaif-goose/goose/pull/7727))
- Standardize on `~/.agents/skills/` as canonical skill path ([#8239](https://github.com/aaif-goose/goose/pull/8239))
- Nested goosehints guide ([#8254](https://github.com/aaif-goose/goose/pull/8254))
- MCP Roots guide ([#8252](https://github.com/aaif-goose/goose/pull/8252))
- Streamable HTTP config for JetBrains 2026.1+ ([#8258](https://github.com/aaif-goose/goose/pull/8258))
- Autovisualiser for MCP Apps ([#8253](https://github.com/aaif-goose/goose/pull/8253))
- `GOOSE_SHELL` env var documentation ([#8233](https://github.com/aaif-goose/goose/pull/8233))
- Updated reusable recipes docs ([#8232](https://github.com/aaif-goose/goose/pull/8232))
- Social sharing setup for blog posts ([#8102](https://github.com/aaif-goose/goose/pull/8102))
- Blog: *Adversary Mode โ€” A Second Pair of Eyes on Every Tool Call* ([#8220](https://github.com/aaif-goose/goose/pull/8220))
- Blog: AAIF migration post & homepage rework ([#8356](https://github.com/aaif-goose/goose/pull/8356))

---


**Full Changelog:** [v1.29.1 โ†’ v1.30.0](https://github.com/aaif-goose/goose/compare/v1.29.1...v1.30.0) ยท **136 commits** from **40+ contributors**