✨ Features
-
Adversarial agent for preventing leaking of info and more #7948
-
Claude adaptive thinking support #7944
-
New onboarding flow #7266
-
Persist GooseMode per-session via session DB #7854
-
Propagate session.id to OpenTelemetry spans and log records #7490
-
Migrate autovisualiser extension to MCP Apps #7852
-
ACP session/set_mode handler #7801
-
MCP Roots support #7790
-
Load hints in nested subdirectories #7772
-
ACP read tool for delegating filesystem I/O to ACP clients #7668
-
Summarize tool for deterministic reads #7054
-
ACP providers for Claude Code and Codex #6605
-
Capture reasoning summaries from OpenAI Responses API #7375
-
MiniMax provider with Anthropic-compatible API #7640
-
Tensorix as a declarative provider #7712
-
Skill supporting files individually loadable via load() in summon #7583
-
Avian as an LLM provider #7561
-
Combine TUI UX with publishing config #7683
-
Base path field for custom provider configuration #7614
-
Better private channel detection for Slack bot #7680
-
Preferred microphone selection #7805
-
Secret interpolation in streamable HTTP extension URLs #7782
🐛 Bug Fixes
-
Remove incorrect agent_visible filter on user message in claude-code #7931
-
Retry on authentication failure with credential refresh #7812
-
Bump pctx_code_mode to 0.3.0 for iterator type checking fix #7892
-
Pass session_id when loading extensions so skills are discovered #7868
-
Tool choice and parallel_tool_calls support for chatgpt_codex provider #7867
-
Tool confirmation handling for multiple requests #7856
-
Resolve tokio::sync::Mutex deadlock in recipe retry path #7832
-
Stop writing without error when hitting broken pipe for goose session list #7858
-
Skip upgrade-insecure-requests CSP for external HTTP backends #7714
-
Prevent hang when command backgrounds a child process #7689
-
Exit agent loop when tool call JSON fails to parse #7840
-
Prevent SSE connection drops from silently truncating responses #7831
-
Prevent SageMaker TGI from being marked configured when only Bedrock keys are set #7284
-
Disable computercontroller functionality when no $DISPLAY detected #7824
-
Register MCP extensions when resuming a session #7806
-
Load .gitignore in prompt_manager for hint file filtering #7795
-
Remap max_completion_tokens to max_tokens for OpenAI-compatible providers #7765
-
Preserve OpenAI Responses API tool call/output linkage #7759
-
Return ContextLengthExceeded when prompt exceeds effective KV cache size #7815
-
Use
includeThoughts/part.thoughtfor Google thinking handling #7593 -
Model selector showing wrong model in tabs #7784
-
Avoid word splitting by space for Windows shell commands #7810
-
Unify path resolution around GOOSE_PATH_ROOT #7335
-
Pass OAuth scopes to DCR and extract granted_scopes from token response #7571
-
Write to real file if config.yaml is symlink #7669
-
Preserve pairings when stopping gateway #7733
-
Sanitize streamable HTTP extension names derived from URLs #7740
-
Improve keyring availability error detection #7766
-
Remove insecure default secret from GOOSE_EXTERNAL_BACKEND #7783
-
Add #[serde(default)] to description field on ExtensionConfig variants #7708
-
Restore smart-approve mode #7690
-
Make TLS configurable in goosed agent via GOOSE_TLS env var #7686
-
Max turns configuration #7612
-
Compare extension configs before skipping add_extension #7650
-
Only add viewable channels to Slack bot context #7678