Releases: block/goose
Releases · block/goose
v1.23.2
v1.23.1
Lifei/cherry pick fix dep (#7020) Signed-off-by: rabi <[email protected]> Co-authored-by: Rabi Mishra <[email protected]>
v1.23.0
✨ Features
- Ask AI Discord bot #6842
- WebSocket transport for goose-acp #6895
- Streamable HTTP transport for ACP + goose-acp usage #6741
- Laminar for Observability #6514
- Platform extension migrator + code mode rename #6611
- CLI flag to skip loading profile extensions #6780
- Thinking status hook #6815
- Hourly skill fetching #6814
🐛 Bug Fixes
- Apps now work in built copies of goose #6901
- Handle thoughtSignature differently for Gemini 2.5 vs 3 #6890
- Preserve working directory when creating new chat #6789
- Case-insensitive matching for builtin extension names #6825
- Correct tool support detection in Tetrate provider model fetching #6808
- Session manager fixes #6809
- Handle quoted paths with spaces in extension commands #6430
- Hardcoded J for newline key in missed locations #6853
- UI settings prompt injection update #6830
- Release build fix #6887
🔧 Improvements
- Extract ProviderDef trait and OpenAiCompatibleProvider #6832
- Remove dependency on goose-mcp from goose crate #6637
- Sync desktop_prompt with UI #6898
- Rejig dictation #6844
- Clean up client side code for creating schedule #6805
- Upgrade React and Electron to latest #6845
- Move persisting extension to session outside of route #6685
- ACP: load configured extensions and refactor tests #6803
- Swap canonical model from openrouter to models.dev #6625
- Centralize audience filtering before providers receive messages #6728
- Don't output compaction in term mode #6799
- Clean up build canonical warnings #6880
- Remove autogenerated .gooseignore files from repo #6824
- GitHub repo configurable for auto-updater and publisher #6828
📚 Documentation
v1.22.2
fix: fixed the broken release (#6887) (#6888)
v1.22.1
upgrade react and electron to latest (#6845)
v1.22.0
Goose v1.22.0 Release Notes
Released: January 29, 2026
✨ New Features
- Session Forking - Fork existing sessions to create new branches of conversation (#5882) by @wpfleger96
- Collapsible Chat Navigation - Chat nav is now collapsible for a cleaner UI (#6649) by @zanesq
- Goose Documentation Skill - Built-in skill for referencing goose documentation (#6534) by @lifeizhou-ap
- Codex Subscription Support - Added support for Codex subscriptions (#6600) by @michaelneale
- External Editor Support - Use external editors like vim, helix, etc. (#5823) by @peterwilli
- Diagnostics Viewer - New diagnostics viewer for debugging (#6770) by @DOsinga
- OVHcloud AI Provider - Added OVHcloud AI as a new provider option (#6527) by @rbeuque74
- Recipe Max Turns - Add
max_turnssetting to recipes and subagents (#6687) by @jhult - Container Extensions - Option to run extensions in a container (#6590) by @jamadeo
- Custom Provider Auth Flag -
requires_authflag for custom providers without authentication (#6705) by @rabi - AWS Bearer Token for Bedrock - Support for
AWS_BEARER_TOKEN_BEDROCKenvironment variable (#6739) by @andreswebs - Anthropic Custom Headers - Support for custom headers with Anthropic provider (#6774) by @DOsinga
- Skills in Codemode - Skills are now available in codemode (#6763) by @michaelneale
- OSS Skills Marketplace - New open source skills marketplace (#6752) by @EbonyLouis
- Vibe MCP Apps - New MCP apps functionality (#6569) by @DOsinga
- PR Code Review - Code review functionality (#6043) by @valeriikot
🐛 Bug Fixes
- macOS Keychain Loop - Fixed infinite prompt loop for macOS keychain (#6620) by @sheikhlimon
- MCP Elicitation Deadlock - Fixed deadlock and improved UX (#6650) by @blackgirlbytes
- Manual Compaction - Fixed context window not updating after manual compaction (#6682) by @katzdave
- Gemini Context Limits - Updated Gemini context limits (#6536) by @rabi
- Empty Message Error - Return error on empty messages for OpenAI format (#6511) by @Yorisoft
- Slash/@ Keyboard Navigation - Fixed popover background color (#6550) by @zanesq
- Unsaved Changes Indicator - Fixed false "unsaved changes" showing in extensions (#6743) by @zanesq
- Chat Input Width - Fixed text going under action buttons at certain widths (#6751) by @zanesq
- Recipe Extensions Loading - Fixed recipe extensions not loading in Desktop (#6777) by @zanesq
- GitHub Copilot Error Handling - Improved error handling (#6771) by @DOsinga
- OpenRouter Custom Models - Enable custom model entry for OpenRouter (#6761) by @rabi
- Gemini Subagents - Re-enabled subagents for Gemini models (#6513) by @rabi
- Google Thought Signatures - Preserve thought signatures in streaming responses (#6708) by @rabi
- read_resource_tool Deadlock - Fixed deadlock causing test_compaction to hang (#6737) by @lifeizhou-ap
- Codex Reasoning Effort - Corrected reasoning effort conversion (#6523) by @fgsch
- GCP Vertex AI Global Endpoint - Fixed global endpoint support for Gemini 3 models (#6187) by @clouatre
- ADD_ACTIVE_SESSION Event - Dispatch event before navigating from "View All" (#6679) by @jhult
- ElevenLabs API Key - Fixed API key not persisting (#6557) by @Abhijay007
- Flatpak Release - Fixed release workflow not finding flatpak file (#6696) by @The-Best-Codes
- MCP App Width - Respect width parameter in MCP app size-changed notifications (#6376) by @Abhijay007
- Extension Name Normalization - Normalize extension names consistently in ExtensionManager (#6529) by @rabi
- Shell Streaming Output - Respect GOOSE_CLI_MIN_PRIORITY for shell streaming output (#6558) by @rabi
- Google JSON Schema - Use parametersJsonSchema for full JSON Schema support (#6555) by @rabi
- Compilation Issue - Address compilation issue in main (#6776) by @alexhancock
- Error Message Line Numbers - Removed line number in error messages (#6736) by @lifeizhou-ap
🔧 Improvements
- Native Images - Improved native image handling (#6619) by @DOsinga
- Better Image Compression - Optimized image compression (#6746) by @DOsinga
- Summarize Old Tool Calls - Tool calls are now summarized for cleaner context (#6119) by @DOsinga
- Audience Filtering - Strip audience for compacting (#6646) by @DOsinga
- Config Loading Optimization - Optimized config loading in UI (#6662) by @lifeizhou-ap
- Tool Call UI - Removed background from tool call containers, added clean labels (#5879) by @spencrmartin
- Reduced Motion Support - Added support for reduced motion preferences (#6551) by @zanesq
- Upgraded to Electron 39.3.0 (#6779) by @zanesq
- Upgraded to rmcp 0.14.0 (#6674) by @alexhancock
- Keyboard Shortcuts - New keyboard shortcuts (#6711) by @DOsinga
- Show Provider Failures - Better visibility of provider failures (#6744) by @DOsinga
- Upgraded Error Handling - Improved error handling throughout (#6747) by @DOsinga
- BERT Command Injection Detection - ML-based command injection detection in tool calls (#6599) by @dorien-koelemeijer
- Databricks Provider Speed - Faster initialization by removing fetch of supported models (#6616) by @jh-block
- Prompt Injection Confidence - Different approach to determining final confidence level of prompt injection evaluation outcomes (#6729) by @dorien-koelemeijer
- Logging Uplift - Logging uplift for model training purposes (#6330) by @dorien-koelemeijer
- Default Gooseignore - Create default gooseignore file when missing ([#6498](htt...
v1.21.2
🐛 Bug Fixes
Fix MCP Elicitation Deadlock and Improve UX (#6650)
Fixed a critical deadlock in MCP elicitation that caused requests to timeout immediately when an MCP server called elicitInput().
The Problem:
When an MCP server triggered elicitation, the form would appear in the UI but immediately timeout due to a deadlock in the agent's tool execution loop.
The Solution:
- Rust (agent.rs): Changed the tool execution loop to use
tokio::select!with a 100ms timeout, allowing the loop to periodically check for elicitation messages even when tools are blocked - UI (ElicitationRequest.tsx): Added visual feedback including:
- Countdown timer showing time remaining (5 minutes)
- Pulsing clock icon with "Waiting for your response" message
- Urgent state that turns red when under 60 seconds
- Clear expired message when time runs out
Contributed by @blackgirlbytes
Fix Chat Input Text Overlap (#6751)
Fixed an issue where long chat input text would go under the submit/action buttons at certain window widths.
Contributed by @zanesq
Full Changelog
Compare: v1.21.1...v1.21.2
v1.21.1
Revert "chore: upgrade rmcp (#6516)" (#6665)
v1.21.0
Features
- Multi-chat support - Added ability to manage multiple chat sessions (#6428) (@zanesq)
- Standalone MCP apps - Support for standalone MCP applications (#6458) (@DOsinga)
- User configurable templates - Allow users to customize templates (#6420) (@DOsinga)
- Flatpak support for Linux - Added Flatpak packaging for Linux distributions (#6387) (@The-Best-Codes)
- GCP Vertex model list with org policy filtering - Enhanced model listing with organization policy support (#6393) (@rabi)
- Parallel sessions with isolated agent state - Enable parallel sessions in goose-acp (#6392) (@codefromthecrypt)
- CLI permission prompts - Ask for permission in the CLI (#6475) (@DOsinga)
- Customizable new line keybinding in CLI - Allow customizing the new line keybinding (#5956) (@trobrock)
- Graceful fallback for keyring failures - Better handling when keyring is unavailable (#5808) (@sheikhlimon)
- Format large/small token counts for readability - Improved token count display in UI (#6449) (@aharvard)
- Support prefersBorder option for MCP Apps - UI enhancement for MCP apps (#6465) (@aharvard)
- Exclude subagent tool from code_execution filtering - Allow subagent delegation in code execution mode (#6531) (@rabi)
- Standardize agent-session-id for session correlation - Improved session tracking across providers (#6626) (@codefromthecrypt)
- MCP server for recipes - Added MCP server support for recipes (#6552) (@dianed-square)
- Optional request params and context limit from GOOSE_PREDEFINED_MODELS - Extended model configuration options (#6489) (@zanesq)
Bug Fixes
- Fix: exclude platform_schedule_tool in CLI (#6442) (@lifeizhou-ap)
- Fix: apply subrecipes when using slash commands (#6460) (@angiejones)
- Fix: handle model quirks with tool calls in code_execution (#6352) (@rabi)
- Fix: clean up result recording for code mode (#6343) (@alexhancock)
- Fix: Handle Gemini thoughtSignature for tool calls on OpenRouter (#6370) (@rabi)
- Fix: Recipe slash command doesn't work with single optional parameter (#6235)
- Fix: support global .gooseignore and negation patterns (#6157) (@leocavalcante)
- Fix: require auth when running goose on non loopback address (#6478) (@michaelneale)
- Fix: Improve error messages for invalid tool calls (#6483) (@jasoncarr0)
- Fix: make tool_call arguments optional and fix silent stream termination (OpenAI) (#6309) (@rabi)
- Fix: serialize record_result output as JSON in code_execution (#6495) (@rabi)
- Fix: 0 token in OpenRouter streaming (#6493) (@lifeizhou-ap)
- Fix: correctly parse extension name from tool call for MCP apps (#6482) (@aharvard)
- Fix: deeplink UI repeat on refresh (#6469) (@Yorisoft)
- Fix: popular topics not starting chat when clicked (#6508) (@zanesq)
- Fix: don't add escaping to the command field (#6519) (@jamadeo)
- Fix: omit structured_content when None instead of serializing as null (#6499) (@aharvard)
- Fix: update ui/message to use ContentBlock[] for content for MCP apps (#6546) (@aharvard)
- Fix: Missing instructions in goose/CONTRIBUTING.md (#6565)
- Fix: scrollbar flicker in sidebar animation (#6564) (@The-Best-Codes)
- Fix: sync all MCP prompt messages to session before agent reply (#6566) (@angiejones)
- Fix: undo regressions for extension loading (#6568) (@michaelneale)
- Fix: resolved all the extensions to load in CLI (#6464) (@lifeizhou-ap)
- Fix: path for global agent skills (#6591) (@emma-squared)
- Fix: actually set the working dir for extensions from session (#6612) (@zanesq)
- Fix: accumulated token count (#6587) (@lifeizhou-ap)
- Fix: propagate session_id across providers and MCP (#6584) (@codefromthecrypt)
- Fix: fixed line breaks (#6459) (@angiejones)
Improvements
- Performance: avoid accumulating thoughtSignatures across conversation history (Google) (#6462) (@rabi)
- UI: Goose branding on desktop (#6563) (@angiejones)
- UI: add back goose branding to home (#6617) (@zanesq)
- UI: Update session name in UI in real-time (#6533) (@arielahdoot)
- UI: Use Intl.NumberFormat for token formatting in SessionsInsights (#6466) (@aharvard)
- Don't show MCP UI/Apps until tool is approved (#6492) (@DOsinga)
- Encourage extension searching (#6582) (@michaelneale)
- Upgrade rmcp (#6516) (@alexhancock)
- Remove unused dependencies in cargo.toml (#6561) (@lsytj0413)
- Install goose-mcp crate dependencies (#6632) (@jamadeo)
Documentation
- Add Ralph Loop tutorial for multi-model iterative development (#6455) (@blackgirlbytes)
- Remove gitignore fallback from gooseignore docs (#6480) (@emma-squared)
- Fix extensions page (#6484) (@dianed-square)
- Manual config for JetBrains (#6490) (@dianed-square)
- ACP MCP support (#6491) (@dianed-square)
- Copilot instruction to flag prerelease docs (#6504) (@dianed-square)
- Clarify directory in /documentation readme (#6541) (@dianed-square)
- Temp correction for agent directory (#6544) (@dianed-square)
- Add short link for Council of Mine MCP tutorial (#6545) (@EbonyJLouis)
- Add MCP sampling blog ([...
v1.20.1
fix: trying this approach to undo regressions for extension loading (…