Release notes
Goose v1.35.0
✨ Features
- Hooks system for extensible pre/post tool execution #9093
- PreToolUse denial hook support #9304
/goalcommand for agent self-evaluation before finishing #9069goose reviewlocal code review command #9114- Diff viewer in TUI #9260
- Slash commands (built-in, skill, recipe) in ACP server #9238
- Unified thinking effort control across all providers #9242
- Open-plugins generalization + skills #9112
- Summon subagent instructions #9325
- Proactive OAuth token refresh to avoid re-auth on every session #8386
goose://new-sessiondeep link to open fresh chat #9196- GOOSE_OAUTH_CALLBACK_PORT for stable OAuth redirect_uri #9209
- Paginated session list in ACP #9199
- Pass session cwd param to ACP providers #9229
- Opt-in to Vercel AI Gateway leaderboard #9259
- Optional
--parametersfor scheduled recipes #8741 - Quarterly scheduling option #9076
- Recipe discovery/execution in ACP server #8925
- Projects as backend sources with system prompt injection #8739
- Worktree-aware directory switcher #8450
- Chat history search in navigation panel #8448
- Encrypted Nostr session sharing #8922
- Nushell terminal and completion support #8628
- Simplified Chinese (zh-CN) translation #8765
- Strip chain-of-thought markers from custom provider output #8635
- GOOSE_DISABLE_TOOL_CALL_SUMMARY to opt out of per-tool-call summaries #8947
- Group consecutive tool calls into one summarized chain card #8995
- Vercel AI Gateway provider #9144
- GitHub Copilot /responses API #9043
- Agents CRUD operations #9084
- ACP streamable HTTP spec compliance #9034
- GPT-5.5 added to known models #9292
- Linux musl CLI builds #9240
- Linux Vulkan support for local inference #9038
- Windows CUDA release artifacts #8750
New Providers
🐛 Bug Fixes
- Databricks parallel tool image responses don't interleave tool results #9241
- Stop killing goosed when a window closes #9302
- Eliminate cross-window deep link contamination #9273
- Check file fallback when keyring has no entry #9279
- Activate custom provider after adding via configure #9213
- Use current_exe() instead of PATH lookup when spawning goose #9236
- Set TCP_USER_TIMEOUT on streamable HTTP clients #9207
- Reduce excessive MISSING_TRANSLATION warnings for fallback locales #9294
- Zero out cost for local providers (ollama, local) #9219
- Persist accumulated cost in session DB to survive reload #9191
- Prevent tool-use marker leakage in toolshim output #8310
- Re-apply canonical limits when delegate overrides model #9183
- Use plain '> ' prompt instead of goose emoji in CLI #9305
- Flag for login shell PATH #9313
- Enable VT processing on Windows Console Host #9248
- Resolve Azure CLI on Windows by using az.cmd #9215
- Handle non-interactive terminal in goose configure on Windows #9214
- Emit trace_output as span attribute instead of event #9255
- Flush OTLP traces reliably on exit with configurable timeout #9228
- Telegram gateway error reporting and connection reliability #9223
- ScheduleModal error message styling #9278
- Align sidebar hamburger in macOS fullscreen #9257
- Coalesce streaming Thinking deltas + list available tools on not-found #9162
- Honor Retry-After on 429 responses #9161
- Replace Venice custom provider with declarative config #9234
- Use mkdir -p for self-test workspace initialization #9247
- Preserve user-set session name for recipe-based chats #9079
- Enforce exp independently of MAX_TOKEN_AGE_SECONDS in OIDC proxy #8839
- Improve inline code contrast in light theme #9058
- Omit max_tokens for OpenAI-compatible requests when unset #9123
- Set correct mcp-app host capabilities #9116
- Normalize nullable schemas for Vertex Gemini compatibility #8930
- Isolate GitHub recipe temp paths #8878
- Set X-Initiator header on GitHub Copilot requests #8809
…