✨ Features
- Exa AI-powered search tool #8487
- Desktop notification when goose finishes a task #8647
- @agent mention support in chat #8571
/skillscommand #8600- Associate threads with projects #8745
- Auto-compaction for goose2 context window UX #8721
- Message bubble + action tray in goose2 #8720
- Voice dictation via direct-ACP pattern in goose2 #8609
- Context window usage in goose2 chat input #8613
- Unix domain socket transport for StreamableHttp MCP #7860
- Cash App extension in Extensions Library #8622
/editcommand for on-demand prompt editing #8566- Novita AI as declarative provider #8432
- Kimi Code provider with OAuth device flow authentication #8466
- Extension management screen in TUI #8536
- Extensions settings page and context panel widget #8540
- Client ID Metadata Document (CIMD) support for OAuth #8550
- Context window usage inline in status bar #7607
- Chat attachments in goose2 #8534
- Husky git hooks for ui/goose2 #8577
🐛 Bug Fixes
- Cache TLS cert to disk to avoid slow startup on first launch #8174
- Preprompt would show after loading session #8744
- Handle missing delta field in streaming chunks #8700
- Accept streaming chunks with both reasoning fields in OpenAI provider #8715
strict:falsefor Responses API tools and gpt-5.4 to known models #8636- Correct grammar in apps view description #8679
- Links in chat could not be opened #8544
- Run shell tool under bash/sh regardless of login shell #8659
- Append /chat/completions for prefixed v1 base URLs #8521
- Align Kimicode model metadata with live Kimi Code API #8588
- Stop idle 300ms re-render loop that could OOM the TUI #8616
- Chat loading-state model placeholder #8431
- Expand tool calls by default when Response Style is Detailed #8478
- Create logs dir before writing LLM request log #8522
- Enable token usage tracking and configurable stream timeout for Ollama provider #8493
- Use sqlx chrono decode for thread timestamps instead of manual parsing #8575
- Remove double border on content in chat #8545
- Accept self-signed certs from configured external goosed host #8400
- Sync sidebar sessions after chat history deletion #7707
- Prevent session hang when tool approval required in headless mode #7915
- Eliminate ~5s delay when opening Switch Models panel with local provider #8626
- Removed hardcoded dependency of goose-acp-macro #8753
- Stop load openai fast model for openapi compatible custom endpoint #8644
🔧 Improvements
- Split agent setup into staged phases to reduce startup blocking #8746
- Extensions management migrated to ACP+ #8733
- Harden code review skill for async state and default-resolution bugs #8740
- Persist and reliably apply chat model selection #8734
- Overhaul provider inventory and agent/model selection #8652
- Consolidate provider ACP methods onto inventory #8710
- Manage skills as sources over ACP #8675
- Extract shared OAuth device-flow helper #8619
- Full width assistant message in goose2 #8760
- TUI improvements #8736
- Goose2 agent management flows #8737
- Sidebar polish: search copy, dividers, project reorder, DnD fixes #8568
- Sidebar activity indicators, placeholder token, and search field refinements #8606
- Warm shell PATH lookup during session init #8631
- Gate perf logs and dedup build_config_update on first message #8627
- Use default fallback provider and model if default are set #8650
- Show individual untracked files in git changes widget #8574
- Goose2 session working dir #8624
- Update rmcp to 1.5.0 #8618
- Merge goose-acp crate into goose #8726
- Upgrade goose SDK and TUI to be compatible with the latest agentclientprotocol/sdk package #8667
- Declare and enforce MSRV of 1.91.1 #8670
- Pass globally unique conversation identifier as sessionId in Databricks API call #8576
- Move agent skills to repo root for tool discoverability #8535
- Reset ChatGPT Codex auth during OAuth setup #8569
- Isolate gym scenario Cargo projects from parent workspace #8640