v1.39.0
snail007/goproxyv1.39.0Jun 25, 2026by github-actions[bot]
AI Summary
A major feature release for a desktop AI application introducing extensive ACP (Agent Control Protocol) improvements, new language support, and provider integrations.
Key Highlights
- ACP method for managing recipes and UI changes
- Korean and Spanish locale support
- Support for OpenAI GPT models via AWS Bedrock
- Image read tool for developer workflows
- Configurable Open Model Gym output directory
New Features
- ACP improvements for session management
- New language support (Korean, Spanish, Japanese, etc.)
- AWS Bedrock integration
- Image read tool
- Configurable output directory
Full Release Notes
## ✨ Features - ACP method for managing recipes and UI changes [#9951](https://github.com/aaif-goose/goose/pull/9951) - Use ACP to manage global config and session extensions [#9948](https://github.com/aaif-goose/goose/pull/9948) - Recipe handling in new_session [#9935](https://github.com/aaif-goose/goose/pull/9935) - `/status` slash command in CLI [#9845](https://github.com/aaif-goose/goose/pull/9845) - ACP new session on desktop (non-recipe sessions) [#9914](https://github.com/aaif-goose/goose/pull/9914) - Typed request/response for add, get session extensions in ACP [#9890](https://github.com/aaif-goose/goose/pull/9890) - Option to disable automatic update downloads [#9872](https://github.com/aaif-goose/goose/pull/9872) - Change cwd using ACP and refactor extension in bottom menubar [#9887](https://github.com/aaif-goose/goose/pull/9887) - Track cache tokens for accurate cost reporting [#9752](https://github.com/aaif-goose/goose/pull/9752) - Load session using ACP [#9875](https://github.com/aaif-goose/goose/pull/9875) - View model interactions [#9806](https://github.com/aaif-goose/goose/pull/9806) - Support OpenAI GPT models via AWS Bedrock mantle endpoint [#9707](https://github.com/aaif-goose/goose/pull/9707) - Peek mode for async background tasks in summon [#9519](https://github.com/aaif-goose/goose/pull/9519) - Korean localization for desktop app [#9856](https://github.com/aaif-goose/goose/pull/9856) - Chat reply UI with ACP [#9857](https://github.com/aaif-goose/goose/pull/9857) - Durable ACP chat session state for desktop UI [#9852](https://github.com/aaif-goose/goose/pull/9852) - ACP for desktop chat prompt (feature toggle off) [#9802](https://github.com/aaif-goose/goose/pull/9802) - MCP extensions support in open plugins [#9471](https://github.com/aaif-goose/goose/pull/9471) - Initial prompt with goose://new-session deep link [#9427](https://github.com/aaif-goose/goose/pull/9427) - Configurable Open Model Gym output dir [#9789](https://github.com/aaif-goose/goose/pull/9789) - Spanish (es) locale support [#9833](https://github.com/aaif-goose/goose/pull/9833) - EmpirioLabs as a declarative OpenAI-compatible provider [#9771](https://github.com/aaif-goose/goose/pull/9771) - MLX models support for local inference provider [#9154](https://github.com/aaif-goose/goose/pull/9154) - Elicitation method for ACP with improvements [#9797](https://github.com/aaif-goose/goose/pull/9797) - View JSON [#9678](https://github.com/aaif-goose/goose/pull/9678) - Load global hints from ~/.agents/AGENTS.md [#9736](https://github.com/aaif-goose/goose/pull/9736) - Configurable per-agent timeout (GYM_AGENT_TIMEOUT) [#9791](https://github.com/aaif-goose/goose/pull/9791) - Azure Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN [#9716](https://github.com/aaif-goose/goose/pull/9716) - `_meta.conversationBefore` for ACP forking session [#9821](https://github.com/aaif-goose/goose/pull/9821) - Quarterly option for scheduler [#9076](https://github.com/aaif-goose/goose/pull/9076) - Together AI declarative provider [#9545](https://github.com/aaif-goose/goose/pull/9545) - Image read tool [#9607](https://github.com/aaif-goose/goose/pull/9607) - Context parameter for summon delegate tasks [#9518](https://github.com/aaif-goose/goose/pull/9518) - Structured metadata for summon task load results [#9521](https://github.com/aaif-goose/goose/pull/9521) - Working_dir override for summon delegate tasks [#9520](https://github.com/aaif-goose/goose/pull/9520) - OrcaRouter as a declarative OpenAI-compatible provider [#9515](https://github.com/aaif-goose/goose/pull/9515) - Elicitation decline and cancel actions propagation [#9437](https://github.com/aaif-goose/goose/pull/9437) - ACP opt-in last message snippets [#9798](https://github.com/aaif-goose/goose/pull/9798) - Japanese locale support [#9768](https://github.com/aaif-goose/goose/pull/9768) - Unified OTLP logging schema for cross-tool detection [#9713](https://github.com/aaif-goose/goose/pull/9713) - Canonical thinking modes [#9743](https://github.com/aaif-goose/goose/pull/9743) - Hindi Desktop locale [#9733](https://github.com/aaif-goose/goose/pull/9733) - Custom ACP method to get session info [#9729](https://github.com/aaif-goose/goose/pull/9729) - GOOSE_SERVER__SECRET_KEY support at goose serve ACP endpoint [#9726](https://github.com/aaif-goose/goose/pull/9726) - Surface Anthropic stream refusals as visible errors [#9724](https://github.com/aaif-goose/goose/pull/9724) - ACP search session in Desktop [#9717](https://github.com/aaif-goose/goose/pull/9717) - Steering messages with ACP [#9560](https://github.com/aaif-goose/goose/pull/9560) - ACP list session with keyword and type filter [#9695](https://github.com/aaif-goose/goose/pull/9695) - ACP thinking effort config option [#9711](https://github.com/aaif-goose/goose/pull/9711) - Prompt injection mitigation enabled by default for internal users [#9612](https://github.com/aaif-goose/goose/pull/9612) - ACP list sessions and manage sessions in Desktop [#9687](https://github.com/aaif-goose/goose/pull/9687) - ACP methods for config extensions [#9581](https://github.com/aaif-goose/goose/pull/9581) - Custom notifications only when ACP client specifies capability [#9596](https://github.com/aaif-goose/goose/pull/9596) - Minimal uniffi setup for cross-language SDK [#9593](https://github.com/aaif-goose/goose/pull/9593) - Hugging Face OAuth support with auth tab in settings [#9552](https://github.com/aaif-goose/goose/pull/9552) - Import sessions [#9474](https://github.com/aaif-goose/goose/pull/9474) - xAI SuperGrok OAuth subscription provider [#9420](https://github.com/aaif-goose/goose/pull/9420) - Replay ACP images on session load [#9496](https://github.com/aaif-goose/goose/pull/9496) - Raw provider supported models over ACP [#9475](https://github.com/aaif-goose/goose/pull/9475) - ACP session system prompt setter [#9478](https://github.com/aaif-goose/goose/pull/9478) - Scholar Sidekick MCP extension [#9433](https://github.com/aaif-goose/goose/pull/9433) - `tui` feature flag to gate the tui command [#9428](https://github.com/aaif-goose/goose/pull/9428) - CLI to list skills with token counts [#9326](https://github.com/aaif-goose/goose/pull/9326) - Perplexity as a declarative OpenAI-compatible provider [#9324](https://github.com/aaif-goose/goose/pull/9324) - Alibaba (Qwen via DashScope) declarative provider [#9443](https://github.com/aaif-goose/goose/pull/9443) - Configurable tool output size limit via GOOSE_MAX_TOOL_RESPONSE_SIZE [#9256](https://github.com/aaif-goose/goose/pull/9256) - `/model` slash command to CLI for session model switching [#8747](https://github.com/aaif-goose/goose/pull/8747) - Databricks AI Gateway provider [#9274](https://github.com/aaif-goose/goose/pull/9274) - Russian language support [#9406](https://github.com/aaif-goose/goose/pull/9406) - Turkish desktop locale [#9392](https://github.com/aaif-goose/goose/pull/9392) - Language selection feature [#9405](https://github.com/aaif-goose/goose/pull/9405) - Handle resume deep links [#9298](https://github.com/aaif-goose/goose/pull/9298) ## 🐛 Bug Fixes - Publish mac updater metadata [#9945](https://github.com/aaif-goose/goose/pull/9945) - Activate hermit on macOS so STDIO extensions resolve node [#9482](https://github.com/aaif-goose/goose/pull/9482) - Accept JSON-encoded string for autovisualiser data parameter [#9838](https://github.com/aaif-goose/goose/pull/9838) - Send User-Agent on URL image fetches in developer/read_image [#9927](https://github.com/aaif-goose/goose/pull/9927) - Allow unlisted models in search [#9933](https://github.com/aaif-goose/goose/pull/9933) - Do not pass temperature to ChatGPT Codex provider [#9931](https://github.com/aaif-goose/goose/pull/9931) - Sanitize extension environment maps [#9884](https://github.com/aaif-goose/goose/pull/9884) - Desktop updater to target aaif-goose releases [#9868](https://github.com/aaif-goose/goose/pull/9868) - Refresh provider when session working directory changes [#9883](https://github.com/aaif-goose/goose/pull/9883) - Use refreshed gcloud token after reauth (retry Vertex AI on 401/403) [#9849](https://github.com/aaif-goose/goose/pull/9849) - Start a turn when /goal or /grind is set [#9801](https://github.com/aaif-goose/goose/pull/9801) - Remove hard-coded React alias that breaks dev render [#9842](https://github.com/aaif-goose/goose/pull/9842) - Pass thinking config to Bedrock Anthropic models [#9794](https://github.com/aaif-goose/goose/pull/9794) - Check for responses API support in Databricks [#9347](https://github.com/aaif-goose/goose/pull/9347) - Use media marker parts for vision prompts in local-inference [#9452](https://github.com/aaif-goose/goose/pull/9452) - Keep extensions icon visible after switching sessions [#9787](https://github.com/aaif-goose/goose/pull/9787) - Skip non-recipe project config files in summon [#9808](https://github.com/aaif-goose/goose/pull/9808) - Dedupe duplicate tool-call ids within a turn [#9792](https://github.com/aaif-goose/goose/pull/9792) - Resolve bundled extensions from discovery [#9759](https://github.com/aaif-goose/goose/pull/9759) - Include agentInfo in ACP initialize response [#9765](https://github.com/aaif-goose/goose/pull/9765) - Custom OpenAI provider dropping port when URL scheme is omitted [#9730](https://github.com/aaif-goose/goose/pull/9730) - Preserve Windows backslash paths in custom extension command [#9741](https://github.com/aaif-goose/goose/pull/9741) - ACP cancel race condition [#9804](https://github.com/aaif-goose/goose/pull/9804) - Removed window goosed when closing window [#9818](https://github.com/aaif-goose/goose/pull/9818) - Inherit login-shell PATH in spawned subagents [#9737](https://github.com/aaif-goose/goose/pull/9737) - Accept string values for GOOSE_CONTEXT_LIMIT [#9738](https://github.com/aaif-goose/goose/pull/9738) - Clear rejected OAuth credentials after refresh [#9694](https://github.com/aaif-goose/goose/pull/9694) - Keep extended thinking within the Anthropic output cap [#9814](https://github.com/aaif-goose/goose/pull/9814) - Disable RPM build-id links [#9671](https://github.com/aaif-goose/goose/pull/9671) - Preserve custom API path in OpenAI base_url derivation [#9649](https://github.com/aaif-goose/goose/pull/9649) - Repair PATH for plugin hook commands [#9615](https://github.com/aaif-goose/goose/pull/9615) - Restore Cmd/Ctrl+T new chat shortcut [#9614](https://github.com/aaif-goose/goose/pull/9614) - Lead with extension description, shorten HTTP/SSE transport label [#9653](https://github.com/aaif-goose/goose/pull/9653) - Mention menu icon to open the sidebar [#9643](https://github.com/aaif-goose/goose/pull/9643) - Dedupe React to prevent multiple instances in renderer [#9631](https://github.com/aaif-goose/goose/pull/9631) - Add hermit cleanup to uvx and jbang scripts [#9616](https://github.com/aaif-goose/goose/pull/9616) - Use blocking OTLP HTTP exporter [#9599](https://github.com/aaif-goose/goose/pull/9599) - Fall back to default provider when resuming session with unavailable provider [#9547](https://github.com/aaif-goose/goose/pull/9547) - Provide Tokio runtime for OTLP HTTP exporter batch thread [#9541](https://github.com/aaif-goose/goose/pull/9541) - Read meta.n_ctx from /v1/models to fix context limit for local OpenAI servers [#9530](https://github.com/aaif-goose/goose/pull/9530) - Align session history scrollbar with window edge [#9601](https://github.com/aaif-goose/goose/pull/9601) - Refresh session name in sidebar after rename [#9543](https://github.com/aaif-goose/goose/pull/9543) - Show resolved skill supporting file paths [#9584](https://github.com/aaif-goose/goose/pull/9584) - Implement real streaming via ConverseStream API for Bedrock [#9579](https://github.com/aaif-goose/goose/pull/9579) - Record OpenAI-native cached_tokens in usage metering [#9829](https://github.com/aaif-goose/goose/pull/9829) - Add option for overriding API URL for Moonshot provider [#9819](https://github.com/aaif-goose/goose/pull/9819) - Detect image paths with spaces [#9387](https://github.com/aaif-goose/goose/pull/9387) - Restore new chat shortcut navigation [#9528](https://github.com/aaif-goose/goose/pull/9528) - Evict stale completed tasks to prevent unbounded memory growth in summon [#9514](https://github.com/aaif-goose/goose/pull/9514) - OAuth timeout instead of hanging in WSL [#9536](https://github.com/aaif-goose/goose/pull/9536) - Warn on unmatched extension names in summon delegate [#9513](https://github.com/aaif-goose/goose/pull/9513) - Deleting a recently created session then creating new session shows deleted session's content [#9351](https://github.com/aaif-goose/goose/pull/9351) - Close modal when canceling recipe parameter form [#9195](https://github.com/aaif-goose/goose/pull/9195) - Ensure tool request timestamp precedes tool response timestamp [#9462](https://github.com/aaif-goose/goose/pull/9462) - Correctly map ollama_cloud to canonical provider and update max tokens [#9639](https://github.com/aaif-goose/goose/pull/9639) - Incorrect max tokens values for groq provider [#9790](https://github.com/aaif-goose/goose/pull/9790) - Mark stream decode errors retryable [#9723](https://github.com/aaif-goose/goose/pull/9723) - Classify Bedrock ValidationException as ExecutionError [#9735](https://github.com/aaif-goose/goose/pull/9735) - Page through all Databricks AI Gateway v2 endpoints when listing models [#9753](https://github.com/aaif-goose/goose/pull/9753) - Preserve unparseable extension entries during config refresh [#9439](https://github.com/aaif-goose/goose/pull/9439) - Goose-sdk release compat check with new schema [#9697](https://github.com/aaif-goose/goose/pull/9697) - Compatibility of config extension ACP call in TUI [#9683](https://github.com/aaif-goose/goose/pull/9683) ## 🔧 Improvements - Move OpenAI provider into goose-providers [#9880](https://github.com/aaif-goose/goose/pull/9880) - Move ApiClient to goose-providers, lifting out TlsConfig [#9869](https://github.com/aaif-goose/goose/pull/9869) - Refactor request logger out of providers [#9847](https://github.com/aaif-goose/goose/pull/9847) - Delete embeddings support [#9865](https://github.com/aaif-goose/goose/pull/9865) - Move provider trait into goose-providers [#9860](https://github.com/aaif-goose/goose/pull/9860) - Move global config access out of ModelConfig, move ModelConfig into goose_providers [#9769](https://github.com/aaif-goose/goose/pull/9769) - Add Ophis MCP server to the extensions registry [#9861](https://github.com/aaif-goose/goose/pull/9861) - Make session.name the source of truth for displayed session titles [#9841](https://github.com/aaif-goose/goose/pull/9841) - Split provider inventory out of providers [#9826](https://github.com/aaif-goose/goose/pull/9826) - Drop debug info for dependencies in dev profile [#9843](https://github.com/aaif-goose/goose/pull/9843) - Make context exceeded checker more precise [#9831](https://github.com/aaif-goose/goose/pull/9831) - Update analyze extension instructions [#9585](https://github.com/aaif-goose/goose/pull/9585) - Validate desktop i18n catalogs [#9776](https://github.com/aaif-goose/goose/pull/9776) - Refresh canonical model registry [#9709](https://github.com/aaif-goose/goose/pull/9709) - Move formats/openai.rs into goose-providers crate [#9633](https://github.com/aaif-goose/goose/pull/9633) - Create goose-providers crate with canonical models, conversation and other types [#9588](https://github.com/aaif-goose/goose/pull/9588) - Remove dead component and useNavigationSessions cleanup [#9603](https://github.com/aaif-goose/goose/pull/9603) - ACP session setup refactor [#9488](https://github.com/aaif-goose/goose/pull/9488) - Use LRU cache for token counting [#9586](https://github.com/aaif-goose/goose/pull/9586) - Replace review subprocess timeout with turn limits [#9571](https://github.com/aaif-goose/goose/pull/9571) - Improve benchmarking [#9637](https://github.com/aaif-goose/goose/pull/9637) - Pattern-based detection adjustments for prompt injection confidence scores [#9690](https://github.com/aaif-goose/goose/pull/9690) - Removed create recipe from session modal and REST API [#9916](https://github.com/aaif-goose/goose/pull/9916) ## 📚 Documentation - Correct custom agents guide [#9947](https://github.com/aaif-goose/goose/pull/9947) - Custom agents documentation [#9293](https://github.com/aaif-goose/goose/pull/9293) - AAIF migration blog post [#9866](https://github.com/aaif-goose/goose/pull/9866) - Remove DCO references [#9864](https://github.com/aaif-goose/goose/pull/9864) - Self-improving agents blog post [#9846](https://github.com/aaif-goose/goose/pull/9846) - Correct whitespace in installation fenced code block [#9867](https://github.com/aaif-goose/goose/pull/9867) - Update docs for ACP clients [#9772](https://github.com/aaif-goose/goose/pull/9772) - Fix stale session navigation/delete docs [#9727](https://github.com/aaif-goose/goose/pull/9727) - Fix typo in MCP blog post [#9641](https://github.com/aaif-goose/goose/pull/9641) - Add Scaleway provider docs [#9423](https://github.com/aaif-goose/goose/pull/9423) - Scholar Sidekick tutorial page [#9477](https://github.com/aaif-goose/goose/pull/9477)