✨ Features
- AIgateway declarative provider #12528
- Propagate W3C trace context from ACP prompts to MCP tool calls #12697
- Surface provider x-request-id on responses and errors #12587
- Honor supports_vision declared on custom provider models #12769
- Use live model metadata for OpenAI reasoning and prefer the Responses API #12568
- Cap auto-compaction at 225k tokens by default #12790
- Improve askai bot relevance #12728
🐛 Bug Fixes
- Adaptive thinking for Claude Sonnet and Haiku 5.5 #12761
- Reject malformed GOOSE_MODE across ACP providers #12846
- Bedrock: don't retry non-context ValidationException on converse_stream #12710
- OpenRouter: do not set transforms field unconditionally #11374
- Apply long-context price tiers to cost estimates #12787
- Finish pending tools before enforcing max turns #12702
- Not offer delegate to code-mode scripts #12711
- Anthropic: forward unknown request_params to wire, mirroring openai engine #12720
- Desktop: show copy button on messages with thinking blocks #12726
🔧 Improvements
- Bind subagents by their parent's hooks, mode and approvals #12802
- Lease a session's selection and start each extension on first use #12775
- Make Stop end the run promptly and save what it produced #12765
- Make tool operations own tool call checks #12865
- Not infer or steer while a tool approval is pending #12808
- Leave the login-shell PATH to whoever launches goose #12799
- Build turns from the session record: derive recipe prompt parts, persist prompt, goal and container #12730
- Add ProviderManager and route session providers through it #12745
- Use typed structs for openai message formatting #12725
- Remove background subagents and orchestrator; make Doctor session-only #12729
- Avoid duplicate provider initialization for foreground subagents #12705
- Refresh the model catalog on the blocking pool #12727
- Remove false optionality in desktop props #12776
- Delete the legacy agent loop #12760
📚 Documentation
- Agentic State Machines #12130