Route MCP elicitations through tool streams - #9943
Conversation
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f3b05899e8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let mut queued_requests = self.queued_requests.lock().await; | ||
| let queue = queued_requests.entry(session_id.to_string()).or_default(); | ||
| for message in messages.into_iter().rev() { | ||
| queue.push_front(message); |
There was a problem hiding this comment.
Skip requeueing timed-out elicitations
When add_message stalls and then fails after the elicitation timeout, this unconditionally pushes the drained message back even though request_and_wait has already removed the pending entry. remove_queued_request cannot clean it up because the message was out of queued_requests while the session write was awaited, so the next drain can surface a stale prompt whose response fails with Request not found; requeue should filter out elicitation ids that are no longer pending.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8f6b272a4b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if let Err(e) = session_manager.add_message(&session_config.id, &msg).await { | ||
| warn!("Failed to save elicitation message to session: {}", e); | ||
| } else { | ||
| yield AgentEvent::Message(msg); |
There was a problem hiding this comment.
Emit the elicitation after save failures
When session storage returns an error here (for example a transient DB/file write failure), this branch consumes the only ActionRequired item from the tool stream but never yields it to the client. The MCP server is still blocked in request_and_wait, so the user has no prompt to answer and the tool call just waits until the 300s elicitation timeout; the previous drain path still emitted the prompt after logging the save error.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4ab25a7619
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let tool_call_request_id = Self::tool_call_request_id_from_extensions(&context.extensions) | ||
| .ok_or_else(|| { | ||
| ErrorData::new( | ||
| ErrorCode::INTERNAL_ERROR, | ||
| "Could not resolve tool call request id for elicitation request", |
There was a problem hiding this comment.
Do not require servers to echo the tool-call id
For MCP servers that send elicitation/create without copying Goose's private agent-tool-call-request-id from the preceding tools/call _meta, this now returns INTERNAL_ERROR before calling request_and_wait. elicitation/create is a separate server-to-client request, and common SDK helpers such as rmcp's Peer::create_elicitation construct it with fresh/default extensions, so those tools will never surface the prompt and the tool call fails instead of waiting for the user's answer. Keep the request id in client-side call context or provide a fallback rather than requiring the server to echo it.
Useful? React with 👍 / 👎.
| self.action_required_senders | ||
| .lock() | ||
| .await | ||
| .insert(tool_call_request_id, tx); |
There was a problem hiding this comment.
Include the session in the stream key
Because ActionRequiredManager is global, keying this map only by the LLM-supplied tool call id lets two concurrent sessions with the same id overwrite each other's sender. In that case session A's elicitation is delivered to session B's stream and saved under B, while the pending request still belongs to A so B's response is rejected and A times out. Key the sender by (session_id, tool_call_request_id) or otherwise namespace it to preserve session isolation.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 87241c9626
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let action_required_receiver = | ||
| if let Some(tool_call_request_id) = ctx.tool_call_request_id.clone() { |
There was a problem hiding this comment.
Preserve elicitation streams for nested tool calls
When an MCP tool is invoked through code-execution callbacks, create_tool_callback builds ToolCallContext::new(session_id, None, None) (crates/goose/src/agents/platform_extensions/code_execution.rs:292). With this new ctx.tool_call_request_id guard no action-required stream is registered for that nested dispatch, and the MCP client also sends no tool-call id or active-call registration, so any elicitation/create from the nested server fails with “Could not resolve tool call request id” instead of being surfaced to the user; before this change elicitations were queued by session and the outer tool loop could drain them.
Useful? React with 👍 / 👎.
| _ => Err(ErrorData::new( | ||
| ErrorCode::INTERNAL_ERROR, | ||
| "Could not resolve tool call request id for elicitation request because multiple tool calls are active", | ||
| None, |
There was a problem hiding this comment.
Route no-echo elicitations while tools overlap
Fresh evidence: this revision still rejects the fallback whenever session_tool_calls has more than one active entry. The agent runs approved tool calls concurrently via select_all (crates/goose/src/agents/agent.rs:2093), and send_request_with_context keeps each call active until its response, so two parallel calls to the same MCP server make common SDK elicitations that do not echo _meta.agent-tool-call-request-id fail with INTERNAL_ERROR even when one of those calls is prompting the user.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 92c5dabd2e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| match session_tool_calls.first() { | ||
| Some(tool_call_request_id) => Ok(tool_call_request_id.clone()), |
There was a problem hiding this comment.
Avoid routing fallback elicitations to the oldest call
Fresh evidence: this version now resolves no-echo elicitations with session_tool_calls.first(), but the agent drives approved tool calls concurrently via stream::select_all in crates/goose/src/agents/agent.rs:2093. When two calls to the same MCP server overlap and the second one sends elicitation/create without echoing Goose's private _meta, this sends that prompt through the first call's action-required stream; if the unrelated first stream yields its result before the queued prompt is drained, the user never sees the prompt and the prompting call waits until the elicitation timeout. Resolve the request from per-call context instead of choosing an arbitrary active call.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 78d0656a82
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| arguments: Option<JsonObject>, | ||
| cancel_token: CancellationToken, | ||
| ) -> Result<CallToolResult, Error> { | ||
| let _tool_call_guard = self.tool_call_lock.lock().await; |
There was a problem hiding this comment.
Do not hold the tool-call lock across the response
When a model emits multiple approved calls to the same MCP extension, the agent still schedules them concurrently with stream::select_all in crates/goose/src/agents/agent.rs, but this guard is held until send_request_with_context(...).await finishes waiting for the full tool response. A long-running or user-eliciting first call now prevents later independent calls to that server from even being sent, turning parallel tool batches into serial execution and increasing the chance of user-visible delays/timeouts; keep the lock out of the full response wait or use a request-scoped correlation mechanism instead.
Useful? React with 👍 / 👎.
Replace the tool-call serialization lock with per-session tracking of all active tool calls. Fallback elicitation correlation resolves when exactly one call is active and reports an explicit error when multiple overlap, restoring parallel tool execution to the same MCP server.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d2ec02e87a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if let Some(tool_call_request_id) = active_tool_call { | ||
| let client = self.client.lock().await; | ||
| client | ||
| .service() | ||
| .unregister_active_tool_call(session_id, tool_call_request_id) |
There was a problem hiding this comment.
Clear active tool calls if the wait is dropped
When a tool turn is cancelled or the reply stream is dropped, the agent can stop polling the tool stream before await_response returns (for example after the cancellation check in agent.rs breaks the loop). In that case this unregister block is never reached, leaving the tool-call id in active_tool_calls; later elicitations for the same session on this MCP client can be treated as ambiguous or routed against stale state. Use a drop-safe guard or otherwise unregister on cancellation/drop as well as on normal completion.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Addressed in 118c60e: register_active_tool_call now returns a drop-safe RAII guard that unregisters the id on Drop, so cancelled tool turns or dropped reply streams no longer leak stale entries (the tracking map moved to a std::sync::Mutex so cleanup can run synchronously in Drop). Added a test covering the drop path.
register_active_tool_call now returns a guard that removes the id on drop, so cancelled tool turns or dropped reply streams no longer leak stale entries into active_tool_calls (which would have made later elicitations resolve as ambiguous). The tracking map moves to a std Mutex so the guard can clean up synchronously in Drop.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 118c60e9e9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| })?; | ||
| }); | ||
|
|
||
| if unregister_action_required_stream { |
There was a problem hiding this comment.
Make action-required stream cleanup drop-safe
When the tool stream is dropped before client.call_tool(...).await completes, for example after the reply loop breaks on cancellation, this in-future cleanup is never reached. The receiver returned in action_required_stream is dropped but the sender remains registered in the global manager, so cancelled tool calls leave stale closed entries for the life of the process and echoed late elicitations for that id fail with Tool call action-required stream closed; use a drop guard/unregister on stream drop instead.
Useful? React with 👍 / 👎.
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
* main: Migrate diagnostics to JSON report (#9964) Route MCP elicitations through tool streams (#9943) provider refactor: don't require a model config to create a provider (#9953) fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (#9925) feat: add streamable HTTP support to deeplink generator (#9954) fix: remove unused SubagentStart/SubagentStop hook events (#9960) feat(ui): use acp method to load skills (#9959) chore(release): bump version to 1.39.0 (minor) (#9810)
* main: (31 commits) Migrate diagnostics to JSON report (#9964) Route MCP elicitations through tool streams (#9943) provider refactor: don't require a model config to create a provider (#9953) fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (#9925) feat: add streamable HTTP support to deeplink generator (#9954) fix: remove unused SubagentStart/SubagentStop hook events (#9960) feat(ui): use acp method to load skills (#9959) chore(release): bump version to 1.39.0 (minor) (#9810) feat: created acp method for managing recipes and UI changes (#9951) fix(desktop): publish mac updater metadata (#9945) feat (ui) - use acp to manage global config and session extensions (#9948) added recipe handling in new_session (#9935) docs: correct custom agents guide (#9947) fix(desktop): activate hermit on macOS so STDIO extensions resolve node (#9482) docs: custom agents (#9293) fix(autovisualiser): accept JSON-encoded string for the data parameter (#9838) move OpenAI provider into goose-providers (#9880) fix(developer/read_image): send a User-Agent on URL image fetches (#9927) mcp(win): full Windows Job Object cleanup wiring (patch draft) (#9835) feat(cli): add /status slash command (#9845) ...
* fix(desktop): publish mac updater metadata (aaif-goose#9945) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: created acp method for managing recipes and UI changes (aaif-goose#9951) * chore(release): bump version to 1.39.0 (minor) (aaif-goose#9810) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat(ui): use acp method to load skills (aaif-goose#9959) * fix: remove unused SubagentStart/SubagentStop hook events (aaif-goose#9960) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> * feat: add streamable HTTP support to deeplink generator (aaif-goose#9954) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Co-authored-by: goose <goose@block.xyz> * fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (aaif-goose#9925) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * provider refactor: don't require a model config to create a provider (aaif-goose#9953) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Route MCP elicitations through tool streams (aaif-goose#9943) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Migrate diagnostics to JSON report (aaif-goose#9964) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * chore: preserve ApeMind branding after upstream sync * fix: keep recipe signal type lint-safe --------- Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe Osinga <douwe@block.xyz> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Lifei Zhou <lifei@squareup.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: nuthalapativarun <nuthalapativarun@gmail.com> Co-authored-by: Abhijay Jain <abhijay007j@gmail.com> Co-authored-by: goose <goose@block.xyz> Co-authored-by: Jude Edwards <judeedwards@squareup.com> Co-authored-by: Jack Amadeo <jackamadeo@block.xyz> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore(release): bump version to 1.37.0 (minor) (aaif-goose#9557) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Pick the last canonical model (aaif-goose#9568) Co-authored-by: Douwe Osinga <douwe@squareup.com> * feat(security): Add directionality to egress logging (aaif-goose#9546) * chore(release): release version 1.37.0 (aaif-goose#9565) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Bench marking (aaif-goose#9465) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Import sesssions (aaif-goose#9474) Co-authored-by: Douwe Osinga <douwe@squareup.com> * Replace review subprocess timeout with turn limits (aaif-goose#9571) Co-authored-by: Cursor <cursoragent@cursor.com> * Add Hugging Face OAuth support, add auth tab to settings (aaif-goose#9552) Signed-off-by: jh-block <jhugo@block.xyz> * Fixed intermittent missing extension override on ui and cleanup (aaif-goose#9575) Signed-off-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> * Use LRU cache for token counting (aaif-goose#9586) Signed-off-by: jh-block <jhugo@block.xyz> * fix: quote release PR search phrase in pre-release.sh (aaif-goose#9573) * chore(deps): bump the cargo-minor-and-patch group across 1 directory with 10 updates (aaif-goose#9587) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump mockall from 0.13.1 to 0.14.0 (aaif-goose#9511) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (aaif-goose#9510) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump strum from 0.27.2 to 0.28.0 (aaif-goose#9509) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump clap_mangen from 0.2.33 to 0.3.0 (aaif-goose#9508) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tokenizers from 0.21.4 to 0.22.2 (aaif-goose#9503) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.19 to 2.0.20 (aaif-goose#9498) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.3 (aaif-goose#9501) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pnpm/action-setup from 6.0.5 to 6.0.8 (aaif-goose#9500) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Lifei/acp session setup refactor (aaif-goose#9488) * feat(sdk): minimal uniffi setup for cross language sdk (aaif-goose#9593) * feat: Only send custom notifications when ACP client specifies this capability in the initialization request (aaif-goose#9596) * refactor: remove dead component and useNavigationSessions cleanup (aaif-goose#9603) * feat: acp methods for config extensions (aaif-goose#9581) * create goose-providers crate with canonical models, conversation and other types (aaif-goose#9588) * Image read tool (aaif-goose#9607) Co-authored-by: Douwe Osinga <douwe@squareup.com> * move formats/openai.rs into goose-providers crate, along with several dependencies (aaif-goose#9633) * fix: compatibility of config extension acp call in TUI (aaif-goose#9683) * chore: pause tui release (aaif-goose#9685) * fix: goose-sdk release compat check with new schema (aaif-goose#9697) * feat: use acp list sessions and manage sessions in Desktop (aaif-goose#9687) * chore: refresh canonical model registry (aaif-goose#9709) Signed-off-by: Bradley Axen <baxen@squareup.com> * feat(security): enable prompt injection mitigation by default for internal users via non-overridable env vars (aaif-goose#9612) * feat(security): Re-adjust pattern-based detection for prompt injection detection confidence scores (aaif-goose#9690) * expose ACP thinking effort config option (aaif-goose#9711) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Lifei Zhou <lifei@squareup.com> * feat: acp list session with keyword and type filter (aaif-goose#9695) * docs: fix typo in MCP blog post (aaif-goose#9641) Signed-off-by: shenzhengyang <shenzhengyang@soundws.com> Co-authored-by: shenzhengyang <shenzhengyang@soundws.com> * Update analyze extension instructions (aaif-goose#9585) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * feat: steering messages with ACP (aaif-goose#9560) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat: use acp search session in Desktop (aaif-goose#9717) * pin goose-sdk package in tui (aaif-goose#9712) * feat: surface Anthropic stream refusals as visible errors (aaif-goose#9724) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat(acp): support GOOSE_SERVER__SECRET_KEY at goose serve acp endpoint (aaif-goose#9726) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat: custom acp method to get session info (aaif-goose#9729) * docs: fix stale session navigation/delete docs (Session History) (aaif-goose#9727) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(lang): add Hindi Desktop locale (aaif-goose#9733) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> * fix: preserve unparseable extension entries during config refresh (aaif-goose#9439) Co-authored-by: Michael Neale <michael.neale@gmail.com> * Add canonical thinking modes (aaif-goose#9743) Signed-off-by: jh-block <jhugo@block.xyz> * fix: page through all Databricks AI Gateway v2 endpoints when listing models (aaif-goose#9753) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat(security): unified OTLP logging schema for cross-tool detection (aaif-goose#9713) * docs: update docs for ACP clients (aaif-goose#9772) Signed-off-by: Kunall Banerjee <hey@kimchiii.space> * i18n: add Japanese locale support (aaif-goose#9768) * fix: classify Bedrock ValidationException as ExecutionError (aaif-goose#9735) Signed-off-by: Michael Neale <michael.neale@gmail.com> * Validate desktop i18n catalogs (aaif-goose#9776) Signed-off-by: Angie Jones <jones.angie@gmail.com> * Mark stream decode errors retryable (aaif-goose#9723) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * fix incorrect max tokens values for groq provider (aaif-goose#9790) * fix: correctly map ollama_cloud to canonical provider and update max_… (aaif-goose#9639) Signed-off-by: Sean Murphy <murphysean84@gmail.com> * feat(session): add opt-in ACP last message snippets (aaif-goose#9798) Signed-off-by: Matt Toohey <contact@matttoohey.com> * chore(deps): bump dirs from 5.0.1 to 6.0.0 (aaif-goose#9630) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/setup-node from 4 to 6 (aaif-goose#9623) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump astral-sh/setup-uv from 7.2.0 to 8.2.0 (aaif-goose#9622) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (aaif-goose#9621) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /scripts/provider-error-proxy (aaif-goose#9594) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump esbuild and tsx in /evals/open-model-gym/suite (aaif-goose#9775) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump the cargo-minor-and-patch group with 9 updates (aaif-goose#9764) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lopdf from 0.40.0 to 0.41.0 (aaif-goose#9629) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump uniffi from 0.29.5 to 0.31.1 (aaif-goose#9628) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lru from 0.16.4 to 0.18.0 (aaif-goose#9627) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump hono from 4.12.18 to 4.12.23 in /evals/open-model-gym/mcp-harness (aaif-goose#9609) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * desktop: fix new chat shortcut (aaif-goose#9659) * chore(release): bump version to 1.38.0 (minor) (aaif-goose#9684) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(agent): ensure tool request timestamp precedes tool response timestamp (aaif-goose#9462) Signed-off-by: Steve Marshall <steve.marshall@fasthosts.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(recipe): close modal when canceling parameter form (aaif-goose#9195) Signed-off-by: Erik Nilsen <enilsen16@live.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: propagate elicitation decline and cancel actions end-to-end (aaif-goose#9437) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Fix: deleting a recently created session and then creating a new session shows the deleted session's content (aaif-goose#9351) Signed-off-by: Monroe Williams <monroe@pobox.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Add Scholar Sidekick tutorial page + anonymous-default auth (v0.8.0) (aaif-goose#9477) * fix(summon): warn on unmatched extension names in delegate (aaif-goose#9513) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(providers): add OrcaRouter as a declarative OpenAI-compatible provider (aaif-goose#9515) Signed-off-by: maxile <xile.ma@myflashcloud.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * oauth: time out the MCP callback wait instead of hanging in WSL (aaif-goose#9536) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> * feat(summon): add working_dir override for delegate tasks (aaif-goose#9520) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(summon): evict stale completed tasks to prevent unbounded memory growth (aaif-goose#9514) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): restore new chat shortcut navigation (aaif-goose#9528) * fix(providers): detect image paths with spaces (aaif-goose#9387) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(summon): add structured metadata to task load results (aaif-goose#9521) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(summon): add context parameter for delegate tasks (aaif-goose#9518) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: add option for overriding API Url for Moonshot provider (aaif-goose#9819) * fix: record OpenAI-native cached_tokens in usage metering (aaif-goose#9829) Signed-off-by: Yi LIU <yi@quantstamp.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(bedrock): implement real streaming via ConverseStream API (aaif-goose#9579) Signed-off-by: Simon Ho <simon@holabs.dev> * fix: show resolved skill supporting file paths (aaif-goose#9584) * fix: refresh session name in sidebar after rename (aaif-goose#9543) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(desktop): align session history scrollbar with window edge (aaif-goose#9601) Signed-off-by: Denis <i@deenyy.ru> Co-authored-by: Denis <i@deenyy.ru> Co-authored-by: Cursor <cursoragent@cursor.com> * openai: read meta.n_ctx from /v1/models to fix context limit for local servers (aaif-goose#9530) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(otel): provide Tokio runtime for OTLP HTTP exporter batch thread (aaif-goose#9541) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: fall back to default provider when resuming session with unavailable provider (aaif-goose#9547) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use blocking OTLP HTTP exporter (aaif-goose#9599) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: add hermit cleanup to uvx and jbang scripts (aaif-goose#9616) * fix(ui): dedupe React to prevent multiple instances in renderer (aaif-goose#9631) * fix: Mention menu icon to open the sidebar (aaif-goose#9643) * fix(ui): lead with extension description, shorten HTTP/SSE transport label (aaif-goose#9653) Signed-off-by: Jeremy Dawes <jeremy@jezweb.net> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: add Together AI declarative provider (aaif-goose#9545) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): restore Cmd/Ctrl+T new chat shortcut (aaif-goose#9614) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * bug(hooks): repair PATH for plugin hook commands (aaif-goose#9615) Signed-off-by: John Tennant <jtennant@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Improve benchmarking (aaif-goose#9637) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * chore(deps): bump actions/deploy-pages from 4.0.5 to 5.0.0 (aaif-goose#9499) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump shlex from 1.3.0 to 2.0.1 (aaif-goose#9505) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump thiserror from 1.0.69 to 2.0.18 (aaif-goose#9506) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (aaif-goose#9497) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: added _meta.conversationBefore for ACP forking session (aaif-goose#9821) * fix(desktop): handle resume deep links (aaif-goose#9298) Co-authored-by: McGluut <189849001+McGluut@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * feat(i18n): language selection feature (aaif-goose#9405) Signed-off-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> * fix(providers/openai): preserve custom API path in base_url derivation (aaif-goose#9649) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(packaging): disable RPM build-id links (aaif-goose#9671) Signed-off-by: weihua <xiaowh52@gmail.com> * fix: keep extended thinking within the Anthropic output cap (aaif-goose#9814) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> * use windows-2022 image for CUDA builds (aaif-goose#9834) * fix: clear rejected OAuth credentials after refresh (aaif-goose#9694) Signed-off-by: qybaihe <qybaihe@gmail.com> * feat(azure): support Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN (aaif-goose#9716) Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: accept string values for GOOSE_CONTEXT_LIMIT (aaif-goose#9738) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(gym): make per-agent timeout configurable (GYM_AGENT_TIMEOUT) (aaif-goose#9791) Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: inherit login-shell PATH in spawned subagents (aaif-goose#9737) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat: load global hints from ~/.agents/AGENTS.md (aaif-goose#9736) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Make the context exceeded checker more precise (aaif-goose#9831) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * View json (aaif-goose#9678) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: removed window goosed when closing window (aaif-goose#9818) * feat: implement acp method for elicitation and elicitation improvement (aaif-goose#9797) * fixed acp cancel race condition (aaif-goose#9804) * fix(desktop): preserve Windows backslash paths in custom extension command (aaif-goose#9741) Signed-off-by: Michael Neale <michael.neale@gmail.com> * Fix custom OpenAI provider dropping port when URL scheme is omitted (aaif-goose#9730) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(acp): include agentInfo in initialize response (aaif-goose#9765) Signed-off-by: Roman Ponomarev <maksugr@gmail.com> * Add support for MLX models to the local inference provider (aaif-goose#9154) Signed-off-by: jh-block <jhugo@block.xyz> * feat(providers): add EmpirioLabs as a declarative OpenAI-compatible provider (aaif-goose#9771) Signed-off-by: Adam Dalloul <47503782+Adam-Dalloul@users.noreply.github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Keep the version-bump PR up to date by re-running on merge conflicts (aaif-goose#9761) * fix: resolve bundled extensions from discovery (aaif-goose#9759) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Dedup duplicate tool-call ids within a turn (aaif-goose#9792) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(summon): skip non-recipe project config files (aaif-goose#9808) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * i18n: add Spanish (es) locale support (aaif-goose#9833) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(desktop): keep extensions icon visible after switching sessions (aaif-goose#9787) Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> Signed-off-by: Angie Jones <jones.angie@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(gym): make Open Model Gym output dir configurable (aaif-goose#9789) Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(local-inference): use media marker parts for vision prompts (aaif-goose#9452) Signed-off-by: jh-block <jhugo@block.xyz> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Initial prompt with goose://new-session (aaif-goose#9427) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * check for responses API support in databricks (aaif-goose#9347) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * perf(build): drop debug info for dependencies in the dev profile (aaif-goose#9843) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> * Add self-improving agents blog post (aaif-goose#9846) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Support MCP extensions in open plugins (aaif-goose#9471) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Split provider inventory out of providers (aaif-goose#9826) * fix: pass thinking config to Bedrock Anthropic models (aaif-goose#9794) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: remove hard-coded React alias that points to the wrong location and break the dev render (aaif-goose#9842) * refactor: make session.name the source of truth for displayed session titles (aaif-goose#9841) * feat: use acp for desktop chat prompt (feature toggle off) (aaif-goose#9802) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): Add durable ACP chat session state for desktop UI (aaif-goose#9852) * feat (ui): chat reply UI with ACP (last part) (aaif-goose#9857) * Add Korean localization to desktop app (aaif-goose#9856) Signed-off-by: lhs <lhs@lhsui-Macmini.local> Signed-off-by: soolmuk <72430756+soolmuk@users.noreply.github.com> Co-authored-by: lhs <lhs@lhsui-Macmini.local> * feat(summon): add peek mode for async background tasks (aaif-goose#9519) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(goal): start a turn when /goal or /grind is set (aaif-goose#9801) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(aws_bedrock): support OpenAI GPT models via Bedrock mantle endpoint (aaif-goose#9707) Signed-off-by: Hugues Clouâtre <hugues@linux.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Add Ophis MCP server to the extensions registry (aaif-goose#9861) * move global config access out of ModelConfig, and move ModelConfig into goose_providers (aaif-goose#9769) * docs: remove DCO references (aaif-goose#9864) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * move the provider trait into goose-providers (aaif-goose#9860) * Feature AAIF migration blog post (aaif-goose#9866) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(gcp): use refreshed gcloud token after reauth (retry Vertex AI on 401/403) (aaif-goose#9849) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * docs(installation): correct whitespace in fenced code block (aaif-goose#9867) * delete embeddings support (aaif-goose#9865) * Update Moim (aaif-goose#9636) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * View model interactions (aaif-goose#9806) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Michael Neale <michael.neale@gmail.com> * refactor the request logger out of providers (aaif-goose#9847) * move ApiClient to goose-providers, lifting out TlsConfig (aaif-goose#9869) * fix (acp): Refresh provider when session working directory changes (aaif-goose#9883) * feat (ui): load session using acp (aaif-goose#9875) * fix (desktop): updater to target aaif-goose releases (aaif-goose#9868) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> * Sanitize extension environment maps (aaif-goose#9884) Signed-off-by: Jasper Hugo <jasper@spiral.xyz> * feat: track cache tokens for accurate cost reporting (aaif-goose#9752) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): change cwd using acp and refactor extension in bottom menubar (aaif-goose#9887) * feat: add option to disable automatic update downloads (aaif-goose#9872) Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Co-authored-by: Crazyop757 <83007860+Crazyop757@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@sidewalklabs.com> * feat (acp): used typed request and response for add, get session extensions (aaif-goose#9890) * chore: removed create recipe from session modal and rest api (aaif-goose#9916) * feat(ui): use acp new session on desktop (only for non recipe session) (aaif-goose#9914) * fix: do not pass temperature to ChatGPT Codex provider (aaif-goose#9931) * Allow unlisted models in search (aaif-goose#9933) * chore(deps): bump tokenizers from 0.22.2 to 0.23.1 (aaif-goose#9904) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (aaif-goose#9903) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tiktoken-rs from 0.11.0 to 0.12.0 (aaif-goose#9901) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump sigstore-verify from 0.8.0 to 0.9.0 (aaif-goose#9900) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tower-http from 0.6.11 to 0.7.0 (aaif-goose#9899) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/login-action from 4.1.0 to 4.2.0 (aaif-goose#9896) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 (aaif-goose#9893) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump rand from 0.8.6 to 0.10.1 (aaif-goose#9504) Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * chore(deps): bump actions/checkout from 6 to 7 (aaif-goose#9894) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(cli): add /status slash command (aaif-goose#9845) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * mcp(win): full Windows Job Object cleanup wiring (patch draft) (aaif-goose#9835) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(developer/read_image): send a User-Agent on URL image fetches (aaif-goose#9927) * move OpenAI provider into goose-providers (aaif-goose#9880) * fix(autovisualiser): accept JSON-encoded string for the data parameter (aaif-goose#9838) Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> * docs: custom agents (aaif-goose#9293) * fix(desktop): activate hermit on macOS so STDIO extensions resolve node (aaif-goose#9482) Signed-off-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Co-authored-by: Pluviobyte <Pluviobyte@users.noreply.github.com> * docs: correct custom agents guide (aaif-goose#9947) * added recipe handling in new_session (aaif-goose#9935) * feat (ui) - use acp to manage global config and session extensions (aaif-goose#9948) * fix(desktop): publish mac updater metadata (aaif-goose#9945) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: created acp method for managing recipes and UI changes (aaif-goose#9951) * chore(release): bump version to 1.39.0 (minor) (aaif-goose#9810) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat(ui): use acp method to load skills (aaif-goose#9959) * fix: remove unused SubagentStart/SubagentStop hook events (aaif-goose#9960) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> * feat: add streamable HTTP support to deeplink generator (aaif-goose#9954) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Co-authored-by: goose <goose@block.xyz> * fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (aaif-goose#9925) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * provider refactor: don't require a model config to create a provider (aaif-goose#9953) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Route MCP elicitations through tool streams (aaif-goose#9943) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Migrate diagnostics to JSON report (aaif-goose#9964) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): Use ACP steer to send the message in queue in ACP path (aaif-goose#9957) * removed tunnel rest api and ui (aaif-goose#9932) * Expose last message timestamp on sessions (aaif-goose#9961) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * [codex] Emit assistant reply text in Stop hooks (aaif-goose#9968) * created custom methods for agent mention and slash command (aaif-goose#9980) * chore(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /documentation (aaif-goose#9863) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): show optimistic toggle state when disabling an extension (aaif-goose#9882) Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> * Fix: surface actionable errors for truncated tool-call arguments (aaif-goose#9946) Co-authored-by: goose <noreply@aaif.ai> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(providers): Buffer thinking across stream chunks for DeepSeek/Kimi tool calls (aaif-goose#9704) Signed-off-by: thepetk <thepetk@gmail.com> * perf: disable extended thinking for fast-model operations (aaif-goose#9815) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * chore: removed mesh on ui (aaif-goose#9982) * chore: clean up ui as we don't have session based permission setting on ui (aaif-goose#9975) * chore: removed the too many tools warning (aaif-goose#9974) * feat (acp): custom methods for managing scheduler (aaif-goose#9972) * chore: remove gateway REST API and UI (aaif-goose#9989) Co-authored-by: Lifei Zhou <lifei@squareup.com> * suppress telemetry event on ui (aaif-goose#9991) * chore: Remove share session via base url (aaif-goose#9994) * chore(deps): bump docker/setup-buildx-action from 3.12.0 to 4.1.0 (aaif-goose#9895) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ACP Migration: MCP/Goose Apps (aaif-goose#9988) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * removed unnecessary call setRecipeParams for acp enabled path (aaif-goose#10003) * Revert "mcp(win): full Windows Job Object cleanup wiring (patch draft… (aaif-goose#10013) * ignore unused on windows (aaif-goose#10009) * Add GLM-5.2 support (aaif-goose#9967) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * run all builds on the release branch, before tagging (aaif-goose#10017) * Migrate Nostr session sharing to ACP (aaif-goose#10022) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * move anthropic provider into goose-providers (aaif-goose#9985) * feat: used acp agent capabilities for local Inference support check (aaif-goose#9996) * Apply ACP recipe state during session load and fork (aaif-goose#9998) * feat(acp): migrate upsertPermissions to setToolPermissions ACP method (aaif-goose#9999) * fix: removed fallback rest api call in ACP mode for edit in place (aaif-goose#10034) * chore: ignore Zed settings (aaif-goose#10043) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * refactor: replace getTunnelStatus with GOOSE_DISABLE_NOSTR_SHARING config flag (aaif-goose#10044) * add ACP+ handlers for prompt editing (aaif-goose#10031) * Support streamed tool calls without indexes (aaif-goose#10023) * feat(acp+): models/providers in desktop on ACP+ (aaif-goose#9987) * feat(acp+): config in desktop on ACP+ (aaif-goose#10057) * feat: handling platform event mcp notification for acp (aaif-goose#10038) * fix: sync the sesion store after session provider and model update and also update thinking effort (aaif-goose#10060) * feat(acp): migrate getDictationConfig and transcribeDictation to ACP (aaif-goose#10048) * fix(schedule): use session.message_count for schedule sessions listing (aaif-goose#10026) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * feat (ui): Remove ACP chat feature flag and turn on chat using ACP (aaif-goose#10062) --------- Signed-off-by: Douwe Osinga <douwe@squareup.com> Signed-off-by: jh-block <jhugo@block.xyz> Signed-off-by: Angie Jones <jones.angie@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Bradley Axen <baxen@squareup.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Signed-off-by: shenzhengyang <shenzhengyang@soundws.com> Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Signed-off-by: Kunall Banerjee <hey@kimchiii.space> Signed-off-by: Sean Murphy <murphysean84@gmail.com> Signed-off-by: Matt Toohey <contact@matttoohey.com> Signed-off-by: Steve Marshall <steve.marshall@fasthosts.com> Signed-off-by: Erik Nilsen <enilsen16@live.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Signed-off-by: Monroe Williams <monroe@pobox.com> Signed-off-by: maxile <xile.ma@myflashcloud.com> Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Signed-off-by: Yi LIU <yi@quantstamp.com> Signed-off-by: Simon Ho <simon@holabs.dev> Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Denis <i@deenyy.ru> Signed-off-by: Jeremy Dawes <jeremy@jezweb.net> Signed-off-by: John Tennant <jtennant@squareup.com> Signed-off-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> Signed-off-by: weihua <xiaowh52@gmail.com> Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Signed-off-by: qybaihe <qybaihe@gmail.com> Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Signed-off-by: Roman Ponomarev <maksugr@gmail.com> Signed-off-by: Adam Dalloul <47503782+Adam-Dalloul@users.noreply.github.com> Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> Signed-off-by: lhs <lhs@lhsui-Macmini.local> Signed-off-by: soolmuk <72430756+soolmuk@users.noreply.github.com> Signed-off-by: Hugues Clouâtre <hugues@linux.com> Signed-off-by: Jasper Hugo <jasper@spiral.xyz> Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Signed-off-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Signed-off-by: thepetk <thepetk@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@block.xyz> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: dorien-koelemeijer <62866702+dorien-koelemeijer@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Lucas Conti <154360314+lucasconti-dev@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: jh-block <jhugo@block.xyz> Co-authored-by: Lifei Zhou <lifei@squareup.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Alex Hancock <alexhancock@block.xyz> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jack Amadeo <jackamadeo@block.xyz> Co-authored-by: Bradley Axen <baxen@squareup.com> Co-authored-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Nukually <87253120+Nukually@users.noreply.github.com> Co-authored-by: shenzhengyang <shenzhengyang@soundws.com> Co-authored-by: Michael Neale <michael.neale@gmail.com> Co-authored-by: Kalvin C <kalvinnchau@users.noreply.github.com> Co-authored-by: Abhijay Jain <abhijay007j@gmail.com> Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com> Co-authored-by: Kunall Banerjee <hey@kimchiii.space> Co-authored-by: N <123137351+tami1A84@users.noreply.github.com> Co-authored-by: BestCodes <106822363+The-Best-Codes@users.noreply.github.com> Co-authored-by: Sean Murphy <murphysean84@gmail.com> Co-authored-by: Matt Toohey <contact@matttoohey.com> Co-authored-by: Darren Xu <littleshuai.bot@gmail.com> Co-authored-by: Steve Marshall <steve.marshall@fasthosts.com> Co-authored-by: Erik Nilsen <enilsen16@live.com> Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Monroe Williams <monroe@pobox.com> Co-authored-by: Mark Lavercombe <mlava@users.noreply.github.com> Co-authored-by: jeffa-block <233853744+jeffa-block@users.noreply.github.com> Co-authored-by: xilema2 <xile.ma@myflashcloud.com> Co-authored-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com> Co-authored-by: jlmalone <jlmalone@users.noreply.github.com> Co-authored-by: Trang Le <lethutrang101@gmail.com> Co-authored-by: Yi Liu <yi@quantstamp.com> Co-authored-by: Simon Ho <simon@holabs.dev> Co-authored-by: nuthalapativarun <nuthalapativarun@gmail.com> Co-authored-by: bdeenyy <109365710+bdeenyy@users.noreply.github.com> Co-authored-by: Denis <i@deenyy.ru> Co-authored-by: Lance Colton <lance.colton@gmail.com> Co-authored-by: Chih-Tao Lee <jason101011113@gmail.com> Co-authored-by: Jeremy Dawes <jeremy@jezweb.net> Co-authored-by: Sanidhya Singh <91531068+sanidhyasin@users.noreply.github.com> Co-authored-by: John Matthew Tennant <jtennant@squareup.com> Co-authored-by: Koen van de Glind <glindje@gmail.com> Co-authored-by: McGluut <189849001+McGluut@users.noreply.github.com> Co-authored-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> Co-authored-by: Steve Beaulac <steve.beaulac@gmail.com> Co-authored-by: yibo365 <xiaowh52@gmail.com> Co-authored-by: filip <44206832+filipkujawa@users.noreply.github.com> Co-authored-by: qybaihe <137127051+qybaihe@users.noreply.github.com> Co-authored-by: Hammad Khan <hammadkhanxcm@gmail.com> Co-authored-by: Kyle E DeFreitas <kdefreitas@squareup.com> Co-authored-by: Roman Ponomarev <maksugr@gmail.com> Co-authored-by: Adam Dalloul <adam_dalloul@icloud.com> Co-authored-by: Thump604 <thump@cosmiccooler.org> Co-authored-by: Jose Manuel Perez <130416715+jmpdsevilla@users.noreply.github.com> Co-authored-by: Seydi Charyyev <seydi.charyev@gmail.com> Co-authored-by: Hosoeng Lee <72430756+soolmuk@users.noreply.github.com> Co-authored-by: lhs <lhs@lhsui-Macmini.local> Co-authored-by: Hugues Clouâtre <15008125+clouatre@users.noreply.github.com> Co-authored-by: San Clemente <40546417+san-npm@users.noreply.github.com> Co-authored-by: Nicholas-Westby <nick@minify.org> Co-authored-by: Crazyop757 <83007860+Crazyop757@users.noreply.github.com> Co-authored-by: Jude Edwards <jedwardsjunior@gmail.com> Co-authored-by: Rain <1050807841@qq.com> Co-authored-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Co-authored-by: goose <goose@block.xyz> Co-authored-by: Jude Edwards <judeedwards@squareup.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Max Novich <maksymstepanenko1990@gmail.com> Co-authored-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com> Co-authored-by: goose <noreply@aaif.ai> Co-authored-by: Theofanis Petkos <thepetk@gmail.com> Co-authored-by: SynthLuvr <131367121+SynthLuvr@users.noreply.github.com> Co-authored-by: 石岳峰 <132282304+syf2211@users.noreply.github.com>
* Bench marking (aaif-goose#9465) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Import sesssions (aaif-goose#9474) Co-authored-by: Douwe Osinga <douwe@squareup.com> * Replace review subprocess timeout with turn limits (aaif-goose#9571) Co-authored-by: Cursor <cursoragent@cursor.com> * Add Hugging Face OAuth support, add auth tab to settings (aaif-goose#9552) Signed-off-by: jh-block <jhugo@block.xyz> * Fixed intermittent missing extension override on ui and cleanup (aaif-goose#9575) Signed-off-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> * Use LRU cache for token counting (aaif-goose#9586) Signed-off-by: jh-block <jhugo@block.xyz> * fix: quote release PR search phrase in pre-release.sh (aaif-goose#9573) * chore(deps): bump the cargo-minor-and-patch group across 1 directory with 10 updates (aaif-goose#9587) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump mockall from 0.13.1 to 0.14.0 (aaif-goose#9511) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (aaif-goose#9510) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump strum from 0.27.2 to 0.28.0 (aaif-goose#9509) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump clap_mangen from 0.2.33 to 0.3.0 (aaif-goose#9508) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tokenizers from 0.21.4 to 0.22.2 (aaif-goose#9503) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.19 to 2.0.20 (aaif-goose#9498) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.3 (aaif-goose#9501) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pnpm/action-setup from 6.0.5 to 6.0.8 (aaif-goose#9500) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Lifei/acp session setup refactor (aaif-goose#9488) * feat(sdk): minimal uniffi setup for cross language sdk (aaif-goose#9593) * feat: Only send custom notifications when ACP client specifies this capability in the initialization request (aaif-goose#9596) * refactor: remove dead component and useNavigationSessions cleanup (aaif-goose#9603) * feat: acp methods for config extensions (aaif-goose#9581) * create goose-providers crate with canonical models, conversation and other types (aaif-goose#9588) * Image read tool (aaif-goose#9607) Co-authored-by: Douwe Osinga <douwe@squareup.com> * move formats/openai.rs into goose-providers crate, along with several dependencies (aaif-goose#9633) * fix: compatibility of config extension acp call in TUI (aaif-goose#9683) * chore: pause tui release (aaif-goose#9685) * fix: goose-sdk release compat check with new schema (aaif-goose#9697) * feat: use acp list sessions and manage sessions in Desktop (aaif-goose#9687) * chore: refresh canonical model registry (aaif-goose#9709) Signed-off-by: Bradley Axen <baxen@squareup.com> * feat(security): enable prompt injection mitigation by default for internal users via non-overridable env vars (aaif-goose#9612) * feat(security): Re-adjust pattern-based detection for prompt injection detection confidence scores (aaif-goose#9690) * expose ACP thinking effort config option (aaif-goose#9711) Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Lifei Zhou <lifei@squareup.com> * feat: acp list session with keyword and type filter (aaif-goose#9695) * docs: fix typo in MCP blog post (aaif-goose#9641) Signed-off-by: shenzhengyang <shenzhengyang@soundws.com> Co-authored-by: shenzhengyang <shenzhengyang@soundws.com> * Update analyze extension instructions (aaif-goose#9585) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * feat: steering messages with ACP (aaif-goose#9560) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat: use acp search session in Desktop (aaif-goose#9717) * pin goose-sdk package in tui (aaif-goose#9712) * feat: surface Anthropic stream refusals as visible errors (aaif-goose#9724) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat(acp): support GOOSE_SERVER__SECRET_KEY at goose serve acp endpoint (aaif-goose#9726) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat: custom acp method to get session info (aaif-goose#9729) * docs: fix stale session navigation/delete docs (Session History) (aaif-goose#9727) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(lang): add Hindi Desktop locale (aaif-goose#9733) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> * fix: preserve unparseable extension entries during config refresh (aaif-goose#9439) Co-authored-by: Michael Neale <michael.neale@gmail.com> * Add canonical thinking modes (aaif-goose#9743) Signed-off-by: jh-block <jhugo@block.xyz> * fix: page through all Databricks AI Gateway v2 endpoints when listing models (aaif-goose#9753) Signed-off-by: Kalvin Chau <kalvin@block.xyz> * feat(security): unified OTLP logging schema for cross-tool detection (aaif-goose#9713) * docs: update docs for ACP clients (aaif-goose#9772) Signed-off-by: Kunall Banerjee <hey@kimchiii.space> * i18n: add Japanese locale support (aaif-goose#9768) * fix: classify Bedrock ValidationException as ExecutionError (aaif-goose#9735) Signed-off-by: Michael Neale <michael.neale@gmail.com> * Validate desktop i18n catalogs (aaif-goose#9776) Signed-off-by: Angie Jones <jones.angie@gmail.com> * Mark stream decode errors retryable (aaif-goose#9723) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * fix incorrect max tokens values for groq provider (aaif-goose#9790) * fix: correctly map ollama_cloud to canonical provider and update max_… (aaif-goose#9639) Signed-off-by: Sean Murphy <murphysean84@gmail.com> * feat(session): add opt-in ACP last message snippets (aaif-goose#9798) Signed-off-by: Matt Toohey <contact@matttoohey.com> * chore(deps): bump dirs from 5.0.1 to 6.0.0 (aaif-goose#9630) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/setup-node from 4 to 6 (aaif-goose#9623) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump astral-sh/setup-uv from 7.2.0 to 8.2.0 (aaif-goose#9622) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (aaif-goose#9621) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /scripts/provider-error-proxy (aaif-goose#9594) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump esbuild and tsx in /evals/open-model-gym/suite (aaif-goose#9775) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump the cargo-minor-and-patch group with 9 updates (aaif-goose#9764) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lopdf from 0.40.0 to 0.41.0 (aaif-goose#9629) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump uniffi from 0.29.5 to 0.31.1 (aaif-goose#9628) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump lru from 0.16.4 to 0.18.0 (aaif-goose#9627) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump hono from 4.12.18 to 4.12.23 in /evals/open-model-gym/mcp-harness (aaif-goose#9609) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * desktop: fix new chat shortcut (aaif-goose#9659) * chore(release): bump version to 1.38.0 (minor) (aaif-goose#9684) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(agent): ensure tool request timestamp precedes tool response timestamp (aaif-goose#9462) Signed-off-by: Steve Marshall <steve.marshall@fasthosts.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(recipe): close modal when canceling parameter form (aaif-goose#9195) Signed-off-by: Erik Nilsen <enilsen16@live.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: propagate elicitation decline and cancel actions end-to-end (aaif-goose#9437) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Fix: deleting a recently created session and then creating a new session shows the deleted session's content (aaif-goose#9351) Signed-off-by: Monroe Williams <monroe@pobox.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Add Scholar Sidekick tutorial page + anonymous-default auth (v0.8.0) (aaif-goose#9477) * fix(summon): warn on unmatched extension names in delegate (aaif-goose#9513) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(providers): add OrcaRouter as a declarative OpenAI-compatible provider (aaif-goose#9515) Signed-off-by: maxile <xile.ma@myflashcloud.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * oauth: time out the MCP callback wait instead of hanging in WSL (aaif-goose#9536) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> * feat(summon): add working_dir override for delegate tasks (aaif-goose#9520) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(summon): evict stale completed tasks to prevent unbounded memory growth (aaif-goose#9514) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): restore new chat shortcut navigation (aaif-goose#9528) * fix(providers): detect image paths with spaces (aaif-goose#9387) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(summon): add structured metadata to task load results (aaif-goose#9521) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(summon): add context parameter for delegate tasks (aaif-goose#9518) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: add option for overriding API Url for Moonshot provider (aaif-goose#9819) * fix: record OpenAI-native cached_tokens in usage metering (aaif-goose#9829) Signed-off-by: Yi LIU <yi@quantstamp.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(bedrock): implement real streaming via ConverseStream API (aaif-goose#9579) Signed-off-by: Simon Ho <simon@holabs.dev> * fix: show resolved skill supporting file paths (aaif-goose#9584) * fix: refresh session name in sidebar after rename (aaif-goose#9543) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(desktop): align session history scrollbar with window edge (aaif-goose#9601) Signed-off-by: Denis <i@deenyy.ru> Co-authored-by: Denis <i@deenyy.ru> Co-authored-by: Cursor <cursoragent@cursor.com> * openai: read meta.n_ctx from /v1/models to fix context limit for local servers (aaif-goose#9530) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(otel): provide Tokio runtime for OTLP HTTP exporter batch thread (aaif-goose#9541) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: fall back to default provider when resuming session with unavailable provider (aaif-goose#9547) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use blocking OTLP HTTP exporter (aaif-goose#9599) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: add hermit cleanup to uvx and jbang scripts (aaif-goose#9616) * fix(ui): dedupe React to prevent multiple instances in renderer (aaif-goose#9631) * fix: Mention menu icon to open the sidebar (aaif-goose#9643) * fix(ui): lead with extension description, shorten HTTP/SSE transport label (aaif-goose#9653) Signed-off-by: Jeremy Dawes <jeremy@jezweb.net> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: add Together AI declarative provider (aaif-goose#9545) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): restore Cmd/Ctrl+T new chat shortcut (aaif-goose#9614) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * bug(hooks): repair PATH for plugin hook commands (aaif-goose#9615) Signed-off-by: John Tennant <jtennant@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Improve benchmarking (aaif-goose#9637) Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * chore(deps): bump actions/deploy-pages from 4.0.5 to 5.0.0 (aaif-goose#9499) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump shlex from 1.3.0 to 2.0.1 (aaif-goose#9505) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump thiserror from 1.0.69 to 2.0.18 (aaif-goose#9506) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (aaif-goose#9497) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: added _meta.conversationBefore for ACP forking session (aaif-goose#9821) * fix(desktop): handle resume deep links (aaif-goose#9298) Co-authored-by: McGluut <189849001+McGluut@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> * feat(i18n): language selection feature (aaif-goose#9405) Signed-off-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> * fix(providers/openai): preserve custom API path in base_url derivation (aaif-goose#9649) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(packaging): disable RPM build-id links (aaif-goose#9671) Signed-off-by: weihua <xiaowh52@gmail.com> * fix: keep extended thinking within the Anthropic output cap (aaif-goose#9814) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> * use windows-2022 image for CUDA builds (aaif-goose#9834) * fix: clear rejected OAuth credentials after refresh (aaif-goose#9694) Signed-off-by: qybaihe <qybaihe@gmail.com> * feat(azure): support Entra ID bearer token auth via AZURE_OPENAI_AD_TOKEN (aaif-goose#9716) Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: accept string values for GOOSE_CONTEXT_LIMIT (aaif-goose#9738) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(gym): make per-agent timeout configurable (GYM_AGENT_TIMEOUT) (aaif-goose#9791) Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: inherit login-shell PATH in spawned subagents (aaif-goose#9737) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat: load global hints from ~/.agents/AGENTS.md (aaif-goose#9736) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Make the context exceeded checker more precise (aaif-goose#9831) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * View json (aaif-goose#9678) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: removed window goosed when closing window (aaif-goose#9818) * feat: implement acp method for elicitation and elicitation improvement (aaif-goose#9797) * fixed acp cancel race condition (aaif-goose#9804) * fix(desktop): preserve Windows backslash paths in custom extension command (aaif-goose#9741) Signed-off-by: Michael Neale <michael.neale@gmail.com> * Fix custom OpenAI provider dropping port when URL scheme is omitted (aaif-goose#9730) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(acp): include agentInfo in initialize response (aaif-goose#9765) Signed-off-by: Roman Ponomarev <maksugr@gmail.com> * Add support for MLX models to the local inference provider (aaif-goose#9154) Signed-off-by: jh-block <jhugo@block.xyz> * feat(providers): add EmpirioLabs as a declarative OpenAI-compatible provider (aaif-goose#9771) Signed-off-by: Adam Dalloul <47503782+Adam-Dalloul@users.noreply.github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Keep the version-bump PR up to date by re-running on merge conflicts (aaif-goose#9761) * fix: resolve bundled extensions from discovery (aaif-goose#9759) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Dedup duplicate tool-call ids within a turn (aaif-goose#9792) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(summon): skip non-recipe project config files (aaif-goose#9808) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * i18n: add Spanish (es) locale support (aaif-goose#9833) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(desktop): keep extensions icon visible after switching sessions (aaif-goose#9787) Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> Signed-off-by: Angie Jones <jones.angie@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat(gym): make Open Model Gym output dir configurable (aaif-goose#9789) Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(local-inference): use media marker parts for vision prompts (aaif-goose#9452) Signed-off-by: jh-block <jhugo@block.xyz> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Initial prompt with goose://new-session (aaif-goose#9427) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * check for responses API support in databricks (aaif-goose#9347) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * perf(build): drop debug info for dependencies in the dev profile (aaif-goose#9843) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> * Add self-improving agents blog post (aaif-goose#9846) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Support MCP extensions in open plugins (aaif-goose#9471) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Split provider inventory out of providers (aaif-goose#9826) * fix: pass thinking config to Bedrock Anthropic models (aaif-goose#9794) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix: remove hard-coded React alias that points to the wrong location and break the dev render (aaif-goose#9842) * refactor: make session.name the source of truth for displayed session titles (aaif-goose#9841) * feat: use acp for desktop chat prompt (feature toggle off) (aaif-goose#9802) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): Add durable ACP chat session state for desktop UI (aaif-goose#9852) * feat (ui): chat reply UI with ACP (last part) (aaif-goose#9857) * Add Korean localization to desktop app (aaif-goose#9856) Signed-off-by: lhs <lhs@lhsui-Macmini.local> Signed-off-by: soolmuk <72430756+soolmuk@users.noreply.github.com> Co-authored-by: lhs <lhs@lhsui-Macmini.local> * feat(summon): add peek mode for async background tasks (aaif-goose#9519) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(goal): start a turn when /goal or /grind is set (aaif-goose#9801) Signed-off-by: Michael Neale <michael.neale@gmail.com> * feat(aws_bedrock): support OpenAI GPT models via Bedrock mantle endpoint (aaif-goose#9707) Signed-off-by: Hugues Clouâtre <hugues@linux.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Add Ophis MCP server to the extensions registry (aaif-goose#9861) * move global config access out of ModelConfig, and move ModelConfig into goose_providers (aaif-goose#9769) * docs: remove DCO references (aaif-goose#9864) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * move the provider trait into goose-providers (aaif-goose#9860) * Feature AAIF migration blog post (aaif-goose#9866) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(gcp): use refreshed gcloud token after reauth (retry Vertex AI on 401/403) (aaif-goose#9849) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * docs(installation): correct whitespace in fenced code block (aaif-goose#9867) * delete embeddings support (aaif-goose#9865) * Update Moim (aaif-goose#9636) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * View model interactions (aaif-goose#9806) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Michael Neale <michael.neale@gmail.com> * refactor the request logger out of providers (aaif-goose#9847) * move ApiClient to goose-providers, lifting out TlsConfig (aaif-goose#9869) * fix (acp): Refresh provider when session working directory changes (aaif-goose#9883) * feat (ui): load session using acp (aaif-goose#9875) * fix (desktop): updater to target aaif-goose releases (aaif-goose#9868) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> * Sanitize extension environment maps (aaif-goose#9884) Signed-off-by: Jasper Hugo <jasper@spiral.xyz> * feat: track cache tokens for accurate cost reporting (aaif-goose#9752) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): change cwd using acp and refactor extension in bottom menubar (aaif-goose#9887) * feat: add option to disable automatic update downloads (aaif-goose#9872) Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Co-authored-by: Crazyop757 <83007860+Crazyop757@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@sidewalklabs.com> * feat (acp): used typed request and response for add, get session extensions (aaif-goose#9890) * chore: removed create recipe from session modal and rest api (aaif-goose#9916) * feat(ui): use acp new session on desktop (only for non recipe session) (aaif-goose#9914) * fix: do not pass temperature to ChatGPT Codex provider (aaif-goose#9931) * Allow unlisted models in search (aaif-goose#9933) * chore(deps): bump tokenizers from 0.22.2 to 0.23.1 (aaif-goose#9904) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (aaif-goose#9903) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tiktoken-rs from 0.11.0 to 0.12.0 (aaif-goose#9901) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump sigstore-verify from 0.8.0 to 0.9.0 (aaif-goose#9900) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump tower-http from 0.6.11 to 0.7.0 (aaif-goose#9899) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/login-action from 4.1.0 to 4.2.0 (aaif-goose#9896) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 (aaif-goose#9893) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump rand from 0.8.6 to 0.10.1 (aaif-goose#9504) Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * chore(deps): bump actions/checkout from 6 to 7 (aaif-goose#9894) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(cli): add /status slash command (aaif-goose#9845) Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * mcp(win): full Windows Job Object cleanup wiring (patch draft) (aaif-goose#9835) Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(developer/read_image): send a User-Agent on URL image fetches (aaif-goose#9927) * move OpenAI provider into goose-providers (aaif-goose#9880) * fix(autovisualiser): accept JSON-encoded string for the data parameter (aaif-goose#9838) Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> * docs: custom agents (aaif-goose#9293) * fix(desktop): activate hermit on macOS so STDIO extensions resolve node (aaif-goose#9482) Signed-off-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Co-authored-by: Pluviobyte <Pluviobyte@users.noreply.github.com> * docs: correct custom agents guide (aaif-goose#9947) * added recipe handling in new_session (aaif-goose#9935) * feat (ui) - use acp to manage global config and session extensions (aaif-goose#9948) * fix(desktop): publish mac updater metadata (aaif-goose#9945) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat: created acp method for managing recipes and UI changes (aaif-goose#9951) * chore(release): bump version to 1.39.0 (minor) (aaif-goose#9810) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat(ui): use acp method to load skills (aaif-goose#9959) * fix: remove unused SubagentStart/SubagentStop hook events (aaif-goose#9960) Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> * feat: add streamable HTTP support to deeplink generator (aaif-goose#9954) Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Co-authored-by: goose <goose@block.xyz> * fix(cost): resolve databricks_v2 pricing and surface cost in standard usage update (aaif-goose#9925) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * provider refactor: don't require a model config to create a provider (aaif-goose#9953) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Route MCP elicitations through tool streams (aaif-goose#9943) Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * Migrate diagnostics to JSON report (aaif-goose#9964) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * feat (ui): Use ACP steer to send the message in queue in ACP path (aaif-goose#9957) * removed tunnel rest api and ui (aaif-goose#9932) * Expose last message timestamp on sessions (aaif-goose#9961) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * [codex] Emit assistant reply text in Stop hooks (aaif-goose#9968) * created custom methods for agent mention and slash command (aaif-goose#9980) * chore(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /documentation (aaif-goose#9863) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(desktop): show optimistic toggle state when disabling an extension (aaif-goose#9882) Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> * Fix: surface actionable errors for truncated tool-call arguments (aaif-goose#9946) Co-authored-by: goose <noreply@aaif.ai> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * fix(providers): Buffer thinking across stream chunks for DeepSeek/Kimi tool calls (aaif-goose#9704) Signed-off-by: thepetk <thepetk@gmail.com> * perf: disable extended thinking for fast-model operations (aaif-goose#9815) Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * chore: removed mesh on ui (aaif-goose#9982) * chore: clean up ui as we don't have session based permission setting on ui (aaif-goose#9975) * chore: removed the too many tools warning (aaif-goose#9974) * feat (acp): custom methods for managing scheduler (aaif-goose#9972) * chore: remove gateway REST API and UI (aaif-goose#9989) Co-authored-by: Lifei Zhou <lifei@squareup.com> * suppress telemetry event on ui (aaif-goose#9991) * chore: Remove share session via base url (aaif-goose#9994) * chore(deps): bump docker/setup-buildx-action from 3.12.0 to 4.1.0 (aaif-goose#9895) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ACP Migration: MCP/Goose Apps (aaif-goose#9988) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * removed unnecessary call setRecipeParams for acp enabled path (aaif-goose#10003) * Revert "mcp(win): full Windows Job Object cleanup wiring (patch draft… (aaif-goose#10013) * ignore unused on windows (aaif-goose#10009) * Add GLM-5.2 support (aaif-goose#9967) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * run all builds on the release branch, before tagging (aaif-goose#10017) * Migrate Nostr session sharing to ACP (aaif-goose#10022) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * move anthropic provider into goose-providers (aaif-goose#9985) * feat: used acp agent capabilities for local Inference support check (aaif-goose#9996) * Apply ACP recipe state during session load and fork (aaif-goose#9998) * feat(acp): migrate upsertPermissions to setToolPermissions ACP method (aaif-goose#9999) * fix: removed fallback rest api call in ACP mode for edit in place (aaif-goose#10034) * chore: ignore Zed settings (aaif-goose#10043) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * refactor: replace getTunnelStatus with GOOSE_DISABLE_NOSTR_SHARING config flag (aaif-goose#10044) * add ACP+ handlers for prompt editing (aaif-goose#10031) * Support streamed tool calls without indexes (aaif-goose#10023) * feat(acp+): models/providers in desktop on ACP+ (aaif-goose#9987) * feat(acp+): config in desktop on ACP+ (aaif-goose#10057) * feat: handling platform event mcp notification for acp (aaif-goose#10038) * fix: sync the sesion store after session provider and model update and also update thinking effort (aaif-goose#10060) * feat(acp): migrate getDictationConfig and transcribeDictation to ACP (aaif-goose#10048) * fix(schedule): use session.message_count for schedule sessions listing (aaif-goose#10026) Co-authored-by: Cursor Agent <cursoragent@cursor.com> * feat (ui): Remove ACP chat feature flag and turn on chat using ACP (aaif-goose#10062) * feat (acp+): Use ACP permission manager for tool permissions (aaif-goose#10066) * feat(i18n): add fr, de, it, pt, id, ms, vi, zh-TW desktop locales (aaif-goose#10072) Co-authored-by: Yixuan Zhong <Yixuan.Zhong@aecom.com> * fix(cli): save /edit prompts to history (aaif-goose#10011) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> * docs: name the message field in the hooks payload guide (aaif-goose#9913) Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> --------- Signed-off-by: Douwe Osinga <douwe@squareup.com> Signed-off-by: jh-block <jhugo@block.xyz> Signed-off-by: Angie Jones <jones.angie@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Bradley Axen <baxen@squareup.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Signed-off-by: shenzhengyang <shenzhengyang@soundws.com> Signed-off-by: Michael Neale <michael.neale@gmail.com> Signed-off-by: Kalvin Chau <kalvin@block.xyz> Signed-off-by: Abhijay Jain <Abhijay007j@gmail.com> Signed-off-by: Kunall Banerjee <hey@kimchiii.space> Signed-off-by: Sean Murphy <murphysean84@gmail.com> Signed-off-by: Matt Toohey <contact@matttoohey.com> Signed-off-by: Steve Marshall <steve.marshall@fasthosts.com> Signed-off-by: Erik Nilsen <enilsen16@live.com> Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com> Signed-off-by: Monroe Williams <monroe@pobox.com> Signed-off-by: maxile <xile.ma@myflashcloud.com> Signed-off-by: Joseph Malone <jlmalone@users.noreply.github.com> Signed-off-by: Yi LIU <yi@quantstamp.com> Signed-off-by: Simon Ho <simon@holabs.dev> Signed-off-by: Varun Nuthalapati <nuthalapativarun@gmail.com> Signed-off-by: Denis <i@deenyy.ru> Signed-off-by: Jeremy Dawes <jeremy@jezweb.net> Signed-off-by: John Tennant <jtennant@squareup.com> Signed-off-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> Signed-off-by: weihua <xiaowh52@gmail.com> Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com> Signed-off-by: qybaihe <qybaihe@gmail.com> Signed-off-by: hammadxcm <hammadkhanxcm@gmail.com> Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com> Signed-off-by: Roman Ponomarev <maksugr@gmail.com> Signed-off-by: Adam Dalloul <47503782+Adam-Dalloul@users.noreply.github.com> Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com> Signed-off-by: lhs <lhs@lhsui-Macmini.local> Signed-off-by: soolmuk <72430756+soolmuk@users.noreply.github.com> Signed-off-by: Hugues Clouâtre <hugues@linux.com> Signed-off-by: Jasper Hugo <jasper@spiral.xyz> Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com> Signed-off-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Signed-off-by: thepetk <thepetk@gmail.com> Co-authored-by: Douwe Osinga <douwe@block.xyz> Co-authored-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Lucas Conti <154360314+lucasconti-dev@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: jh-block <jhugo@block.xyz> Co-authored-by: Lifei Zhou <lifei@squareup.com> Co-authored-by: Angie Jones <jones.angie@gmail.com> Co-authored-by: Alex Hancock <alexhancock@block.xyz> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jack Amadeo <jackamadeo@block.xyz> Co-authored-by: Bradley Axen <baxen@squareup.com> Co-authored-by: dorien-koelemeijer <62866702+dorien-koelemeijer@users.noreply.github.com> Co-authored-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: Nukually <87253120+Nukually@users.noreply.github.com> Co-authored-by: shenzhengyang <shenzhengyang@soundws.com> Co-authored-by: Michael Neale <michael.neale@gmail.com> Co-authored-by: Kalvin C <kalvinnchau@users.noreply.github.com> Co-authored-by: Abhijay Jain <abhijay007j@gmail.com> Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com> Co-authored-by: Kunall Banerjee <hey@kimchiii.space> Co-authored-by: N <123137351+tami1A84@users.noreply.github.com> Co-authored-by: BestCodes <106822363+The-Best-Codes@users.noreply.github.com> Co-authored-by: Sean Murphy <murphysean84@gmail.com> Co-authored-by: Matt Toohey <contact@matttoohey.com> Co-authored-by: Darren Xu <littleshuai.bot@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Steve Marshall <steve.marshall@fasthosts.com> Co-authored-by: Erik Nilsen <enilsen16@live.com> Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Monroe Williams <monroe@pobox.com> Co-authored-by: Mark Lavercombe <mlava@users.noreply.github.com> Co-authored-by: jeffa-block <233853744+jeffa-block@users.noreply.github.com> Co-authored-by: xilema2 <xile.ma@myflashcloud.com> Co-authored-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com> Co-authored-by: jlmalone <jlmalone@users.noreply.github.com> Co-authored-by: Trang Le <lethutrang101@gmail.com> Co-authored-by: Yi Liu <yi@quantstamp.com> Co-authored-by: Simon Ho <simon@holabs.dev> Co-authored-by: nuthalapativarun <nuthalapativarun@gmail.com> Co-authored-by: bdeenyy <109365710+bdeenyy@users.noreply.github.com> Co-authored-by: Denis <i@deenyy.ru> Co-authored-by: Lance Colton <lance.colton@gmail.com> Co-authored-by: Chih-Tao Lee <jason101011113@gmail.com> Co-authored-by: Jeremy Dawes <jeremy@jezweb.net> Co-authored-by: Sanidhya Singh <91531068+sanidhyasin@users.noreply.github.com> Co-authored-by: John Matthew Tennant <jtennant@squareup.com> Co-authored-by: Koen van de Glind <glindje@gmail.com> Co-authored-by: McGluut <189849001+McGluut@users.noreply.github.com> Co-authored-by: Dmitry Beskov <43372966+besdar@users.noreply.github.com> Co-authored-by: Steve Beaulac <steve.beaulac@gmail.com> Co-authored-by: yibo365 <xiaowh52@gmail.com> Co-authored-by: filip <44206832+filipkujawa@users.noreply.github.com> Co-authored-by: qybaihe <137127051+qybaihe@users.noreply.github.com> Co-authored-by: Hammad Khan <hammadkhanxcm@gmail.com> Co-authored-by: Kyle E DeFreitas <kdefreitas@squareup.com> Co-authored-by: Roman Ponomarev <maksugr@gmail.com> Co-authored-by: Adam Dalloul <adam_dalloul@icloud.com> Co-authored-by: Thump604 <thump@cosmiccooler.org> Co-authored-by: Jose Manuel Perez <130416715+jmpdsevilla@users.noreply.github.com> Co-authored-by: Seydi Charyyev <seydi.charyev@gmail.com> Co-authored-by: Hosoeng Lee <72430756+soolmuk@users.noreply.github.com> Co-authored-by: lhs <lhs@lhsui-Macmini.local> Co-authored-by: Hugues Clouâtre <15008125+clouatre@users.noreply.github.com> Co-authored-by: San Clemente <40546417+san-npm@users.noreply.github.com> Co-authored-by: Nicholas-Westby <nick@minify.org> Co-authored-by: Crazyop757 <83007860+Crazyop757@users.noreply.github.com> Co-authored-by: Jude Edwards <jedwardsjunior@gmail.com> Co-authored-by: Rain <1050807841@qq.com> Co-authored-by: Pluviobyte <Pluviobyte@users.noreply.github.com> Co-authored-by: goose <goose@block.xyz> Co-authored-by: Jude Edwards <judeedwards@squareup.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Max Novich <maksymstepanenko1990@gmail.com> Co-authored-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com> Co-authored-by: goose <noreply@aaif.ai> Co-authored-by: Theofanis Petkos <thepetk@gmail.com> Co-authored-by: SynthLuvr <131367121+SynthLuvr@users.noreply.github.com> Co-authored-by: 石岳峰 <132282304+syf2211@users.noreply.github.com> Co-authored-by: Yixuan Zhong <yixuan.zhong.public@gmail.com> Co-authored-by: Yixuan Zhong <Yixuan.Zhong@aecom.com> Co-authored-by: Adam Miller <admiller@redhat.com> Co-authored-by: Ken Jo <jo.dreame@gmail.com>
Summary
Closes #9870
Testing