Skip to content

feat: add iFlytek Spark and Astron MaaS providers - #9837

Merged
DOsinga merged 5 commits into
aaif-goose:mainfrom
FenjuFu:feat/iflytek-spark-astron-providers
Jun 30, 2026
Merged

DOsinga merged 5 commits into
aaif-goose:mainfrom
FenjuFu:feat/iflytek-spark-astron-providers

Conversation

@FenjuFu

@FenjuFu FenjuFu commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

What

Adds two declarative OpenAI-compatible providers for iFlytek:

  • iFlytek Spark (iflytek.json) — 讯飞星火 via the Spark HTTP API
    (https://spark-api-open.xf-yun.com/v1). Ships 4.0Ultra, generalv3.5,
    max-32k, generalv3, pro-128k and lite. Auth uses the Spark HTTP API
    password (SPARK_API_PASSWORD).
  • iFlytek Astron MaaS (iflytek_astron.json) — 讯飞星辰 MaaS. Defaults to the
    Token Plan endpoint (https://maas-token-api.cn-huabei-1.xf-yun.com/v2) and
    exposes ASTRON_BASE_URL so users can switch to the Coding Plan
    (https://maas-coding-api.cn-huabei-1.xf-yun.com/v2, e.g. astron-code-latest).
    Ships Spark X2, DeepSeek, GLM, Kimi, MiniMax, Qwen and the Astron coding model.
    Auth uses ASTRON_API_KEY.

Both follow the existing declarative-provider pattern (cf. zhipu.json,
moonshot.json, alibaba.json).

Why

iFlytek Spark and Astron MaaS are widely used in China and both expose
OpenAI-compatible endpoints, so shipping them as built-in declarative providers
lets users select them directly from the provider list instead of hand-rolling a
custom provider.

Notes

  • base_url uses only the /vN path segment; derive_base_path resolves it to
    …/vN/chat/completions, which both endpoints expect.
  • skip_canonical_filtering: true is set because the model ids are
    provider-specific (4.0Ultra, xsparkx2, …) and are not in the canonical
    catalog; without it the inventory filter would drop every model. Each model
    ships an explicit context_limit instead.
  • dynamic_models: false keeps the static lists authoritative and avoids a
    runtime dependency on a /models endpoint.

Testing

  • Added test_iflytek_json_deserializes and test_iflytek_astron_json_deserializes
    alongside the existing per-provider deserialization tests.
  • Validated both JSON files parse.

References

Add declarative OpenAI-compatible providers for iFlytek Spark (讯飞星火)
and iFlytek Astron MaaS (讯飞星辰):

- iflytek.json: Spark HTTP API (spark-api-open.xf-yun.com/v1) with
  4.0Ultra, generalv3.5, max-32k, generalv3, pro-128k and lite, using
  SPARK_API_PASSWORD for auth.
- iflytek_astron.json: Astron MaaS, defaulting to the Token Plan
  endpoint with ASTRON_BASE_URL to switch to the Coding Plan; ships
  Spark X2, DeepSeek, GLM, Kimi, MiniMax, Qwen and astron-code-latest.

Both use static model lists and skip canonical filtering since the model
ids are provider-specific. Adds deserialization tests and documents the
providers in the supported providers table.

Signed-off-by: FenjuFu <fufenjupku@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5d3f4940da

ℹ️ 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".

Comment on lines +14 to +16
{"name": "generalv3", "context_limit": 8192},
{"name": "pro-128k", "context_limit": 131072},
{"name": "lite", "context_limit": 4096}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove Spark models without system/tool support

The official Spark HTTP docs note that only Spark 4.0Ultra and Max support system messages and Function Call (https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html). When a goose session selects these Pro/Pro-128K/Lite entries, the OpenAI provider can send the normal system prompt and tools, so those requests are liable to be rejected even though the models are advertised as supported; please omit these entries or otherwise prevent tool/system-using sessions from selecting them.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in d03354d — dropped the Pro/Pro-128K/Lite entries and kept only 4.0Ultra and the Max family (generalv3.5, max-32k), which the Spark HTTP docs list as supporting system messages and Function Call.

@DOsinga

DOsinga commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the contribution! A couple of things before this can land:

  1. Please address the Codex review comment. It points out that per the Spark HTTP docs only 4.0Ultra and max support system messages and function calling, while pro/pro-128k/lite may reject goose's normal system-prompt + tools requests. Either drop those models or explain why they're fine — a one-line reply is enough if you think it's a non-issue.

  2. Please remove the two new test_iflytek_*_deserializes unit tests. These don't really add value: the canonical/fixed providers are embedded in the binary and parsed by load_fixed_providers() on startup, so any JSON that doesn't deserialize would surface immediately. Asserting individual field values per provider just duplicates the JSON in Rust and rots over time. If we want coverage here, it belongs at a higher level (a single test that asserts all bundled providers parse — currently load_fixed_providers silently skips invalid ones with a warn!, which is the real gap), not as a per-file deserialization test.

(Also for context: the earlier "closing, external repo" comment doesn't apply to this PR — it looks like it was posted in error.)

I'll snooze this for a few days to give you a chance to respond.

…t all bundled providers parse

Per the Spark HTTP docs only the 4.0Ultra and Max families accept system
messages and Function Call, so drop the Pro/Pro-128K/Lite entries that would
reject goose's system-prompt + tools requests.

Replace the per-file iflytek deserialization tests with a single test that
asserts every bundled declarative provider parses through the same path
load_fixed_providers uses, which otherwise silently skips invalid files.
@FenjuFu

FenjuFu commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review — both addressed in d03354d:

  1. Spark models — dropped generalv3 (Pro), pro-128k (Pro-128K) and lite (Lite), keeping only the families the Spark HTTP docs list as accepting system messages + Function Call: 4.0Ultra and Max (generalv3.5, max-32k). goose always sends a system prompt and tools, so the dropped entries would have been liable to rejection. Noted the rationale in the provider description too.

  2. Tests — removed the two per-file test_iflytek_*_deserializes tests and replaced them with a single test_all_bundled_providers_deserialize that iterates every bundled JSON through the same deserialize_provider_config path load_fixed_providers uses. That closes the real gap you flagged: previously an invalid bundled provider would be silently skipped with a warn! rather than failing the suite.

(And understood re: the earlier "closing, external repo" comment — thanks for clarifying.)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d03354d81b

ℹ️ 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".

"name": "iflytek",
"engine": "openai",
"display_name": "iFlytek Spark",
"description": "iFlytek Spark (讯飞星火) models via the OpenAI-compatible HTTP API. Authenticate with your Spark HTTP API password (APIPassword). Only the 4.0Ultra and Max model families are listed, since per the Spark HTTP docs they are the versions that accept system messages and Function Call (tools) — which goose always sends.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Set Spark's tool_calls switch before enabling tools

For sessions with tools, selecting only Max/Ultra is not enough for Spark to behave like OpenAI: the Spark HTTP docs say tool_calls_switch defaults off and must be true to return function calls in the tool_calls array, while goose's OpenAI formatter only drives tool execution from tool_calls. This declarative config has no provider-level request param to add that switch, so Spark function calls can come back as JSON content and goose will not execute the requested tools; please add support for sending tool_calls_switch: true (or don't advertise Spark as tool-capable until it can be sent).

Useful? React with 👍 / 👎.

@DOsinga

DOsinga commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the quick turnaround on the model list and the consolidated test — that's a nice improvement.

Two things still open before this can land:

  1. The second codex comment is still unaddressed: Spark's HTTP API needs tool_calls_switch: true in the request body to return function calls in the tool_calls array, and the declarative provider config currently has no way to inject that. So tool calls from Spark may come back as plain JSON content that goose won't execute. Could you either confirm tool-calling actually works as-is with these models, or note that Spark is chat-only here (and not advertise tools)? A one-line reply either way is fine.

  2. Minor: the providers.md table still lists lite for Spark ("including 4.0Ultra, generalv3.5, and lite") but lite was dropped from iflytek.json in the fix commit. Please update the docs line to match.

Snoozing for a few days to give you a chance to reply.

Spark only returns OpenAI-style tool_calls when the request body sets
tool_calls_switch=true, which the declarative config cannot inject, so the
iflytek provider is best used for chat. Note this in the provider
description and the providers table, and drop the stale 'lite' mention
(lite was removed from iflytek.json earlier).

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
@FenjuFu

FenjuFu commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Thanks — you're right, and the codex point checks out against the Spark HTTP docs.

On tool calling (1): Spark's chat-completions endpoint gates OpenAI-style tool calls behind a request-body flag: tool_calls_switch defaults to false, in which case function calls come back as JSON inside the message content rather than in a tool_calls array (设置为true时,触发function call结果中tool_calls以数组格式返回,默认为 false,则以json格式返回). The declarative/OpenAI provider only lets me set custom headers, not extra body params, so I can't inject tool_calls_switch: true here — meaning tool calls won't surface in a form goose executes.

So I've framed this provider as chat-oriented rather than claiming tool support:

  • Updated the iflytek.json description to note the tool_calls_switch limitation.
  • Updated the providers table accordingly.

On the docs (2): good catch — dropped the stale lite mention; the table now lists 4.0Ultra, generalv3.5, max-32k to match iflytek.json.

Both in 8b0b02e.

If you'd be open to it, I'm happy to follow up with a separate PR adding an optional request-body-params field to declarative providers (e.g. extra_body), which would let Spark return real tool_calls and benefit other OpenAI-compatible providers with vendor-specific switches too.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8b0b02e5a7

ℹ️ 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".

{"name": "xopdeepseekv4flash", "context_limit": 131072},
{"name": "xopdeepseekv32", "context_limit": 131072},
{"name": "xopkimik26", "context_limit": 262144},
{"name": "xminimaxm25", "context_limit": 204800},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Lower MiniMax context limit to the Token Plan cap

When xminimaxm25 is used with the default Astron Token Plan endpoint, this advertises a 204800-token window, but the official Token Plan table lists MiniMax-M2.5 as 128K (https://www.xfyun.cn/doc/spark/TokenPlan.html). The registry copies this value into ModelConfig and context management uses it for compaction decisions, so goose can keep sending more than the provider accepts and hit 10907/10910 token-limit errors instead of compacting earlier; please cap this entry to the documented 128K limit.

Useful? React with 👍 / 👎.

Douwe M Osinga added 2 commits June 30, 2026 15:35
The xminimaxm25 model was listed with a 204800 context limit, but the
Astron Token Plan documents a 128K (131072) cap for this model. Lower it
to match.
@DOsinga

DOsinga commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Pushed a fix for the last codex comment: lowered xminimaxm25 from 204800 to the documented 128K (131072) Token Plan cap. Also merged main into the branch to keep it current.

Thanks for the iterations here — the consolidated test_all_bundled_providers_deserialize test and the tool-calling clarification all look good.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c80f20f81d

ℹ️ 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".

"dynamic_models": false,
"skip_canonical_filtering": true,
"models": [
{"name": "4.0Ultra", "context_limit": 8192},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Raise Spark Ultra's context limit

For 4.0Ultra, the Spark HTTP docs list Ultra's maximum input length as 32K (https://www.xfyun.cn/doc/spark/HTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html), but this config advertises only 8192. ProviderEntry::normalize_model_config backfills ModelConfig.context_limit from these JSON ModelInfo entries, so 4.0Ultra sessions will compact and drop context around 8K even though the provider accepts much more; please set this entry to the documented window.

Useful? React with 👍 / 👎.

Comment on lines +24 to +25
{"name": "xopdeepseekv4pro", "context_limit": 131072},
{"name": "xopdeepseekv4flash", "context_limit": 131072},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Raise Astron V4 context limits

The Astron Token Plan model table documents DeepSeek-V4-Pro and DeepSeek-V4-Flash with 1M context windows (https://www.xfyun.cn/doc/spark/TokenPlan.html), but both entries here are capped at 131072. Because these static limits are copied into the session model config before compaction decisions, users of either V4 model will unnecessarily lose most of the usable context instead of running near the provider's advertised 1M window.

Useful? React with 👍 / 👎.

@DOsinga DOsinga left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Two clean OpenAI-compatible declarative providers, the test consolidation is a real improvement, and the last codex comment on the MiniMax context limit is now addressed. Thanks for the thoughtful iterations!

@DOsinga
DOsinga added this pull request to the merge queue Jun 30, 2026
Merged via the queue into aaif-goose:main with commit 04da8e8 Jun 30, 2026
25 checks passed
lifeizhou-ap added a commit that referenced this pull request Jul 1, 2026
* main: (26 commits)
  Fix MCP app sandbox bridge lifecycle (#10064)
  fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889)
  feat(providers): support OpenRouter request parameters (#9276)
  Migrate local inference model management to ACP (#10124)
  (attempt to) fix disk space errors in linux release builds (#10024)
  feat: add --edit session flag to edit conversation before forking (#9799)
  feat: add iFlytek Spark and Astron MaaS providers (#9837)
  fix(desktop): dedupe Nostr session deep link imports (#9918)
  [codex] Add SessionStart hook parity outside CLI (#9970)
  feat(providers): add Fireworks AI declarative provider (#9990)
  fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005)
  fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119)
  chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051)
  Make OpenAI Responses API store param configurable (#10040)
  remove unsupported model (#10121)
  chore(release): bump version to 1.40.0 (minor) (#10099)
  move ollama provider into goose-providers (#9986)
  UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (#10109)
  fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (#10100)
  feat (acp): exposed available tools in acp schema (#10097)
  ...
lifeizhou-ap added a commit that referenced this pull request Jul 1, 2026
* main: (42 commits)
  Fix MCP app sandbox bridge lifecycle (#10064)
  fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889)
  feat(providers): support OpenRouter request parameters (#9276)
  Migrate local inference model management to ACP (#10124)
  (attempt to) fix disk space errors in linux release builds (#10024)
  feat: add --edit session flag to edit conversation before forking (#9799)
  feat: add iFlytek Spark and Astron MaaS providers (#9837)
  fix(desktop): dedupe Nostr session deep link imports (#9918)
  [codex] Add SessionStart hook parity outside CLI (#9970)
  feat(providers): add Fireworks AI declarative provider (#9990)
  fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005)
  fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119)
  chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051)
  Make OpenAI Responses API store param configurable (#10040)
  remove unsupported model (#10121)
  chore(release): bump version to 1.40.0 (minor) (#10099)
  move ollama provider into goose-providers (#9986)
  UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (#10109)
  fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (#10100)
  feat (acp): exposed available tools in acp schema (#10097)
  ...
lifeizhou-ap added a commit that referenced this pull request Jul 1, 2026
* main: (31 commits)
  test: generic validator for declarative providers (#10010)
  UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (Part 2) (#10149)
  Remove MCP sampling support (#10087)
  Support TLS for ACP serve (#10088)
  feat (ui): Migrate dictation local model manager to ACP (#10131)
  Fix MCP app sandbox bridge lifecycle (#10064)
  fix(bedrock): send inference config (max_tokens, temperature) on Converse (#9889)
  feat(providers): support OpenRouter request parameters (#9276)
  Migrate local inference model management to ACP (#10124)
  (attempt to) fix disk space errors in linux release builds (#10024)
  feat: add --edit session flag to edit conversation before forking (#9799)
  feat: add iFlytek Spark and Astron MaaS providers (#9837)
  fix(desktop): dedupe Nostr session deep link imports (#9918)
  [codex] Add SessionStart hook parity outside CLI (#9970)
  feat(providers): add Fireworks AI declarative provider (#9990)
  fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (#10005)
  fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (#10119)
  chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (#10051)
  Make OpenAI Responses API store param configurable (#10040)
  remove unsupported model (#10121)
  ...
earayu added a commit to apecloud/apemind-agent that referenced this pull request Oct 6, 2026
* 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>

* fix(providers): reject non-object tool-call arguments instead of panicking (aaif-goose#9832)

Signed-off-by: Lunchbox <lunchboxfortwo@gmail.com>
Signed-off-by: Douwe M Osinga <douwe@sidewalklabs.com>
Signed-off-by: Goose <goose@aaif.dev>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
Co-authored-by: Goose <goose@aaif.dev>
Co-authored-by: Michael Neale <michael.neale@gmail.com>

* task(acp): upgrade SDK and use new HTTP/WS crate (aaif-goose#10082)

* fix(cli): update help text for --session-id (aaif-goose#10077)

Signed-off-by: Vikram Vaswani <2571660+vvaswani@users.noreply.github.com>

* Remove session_id from provider streaming trait methods (aaif-goose#9984)

* chore: Remove legacy MCP-UI proxy support (aaif-goose#10086)

* fix(test): stop flaky unparseable-tool-call test by disabling session naming (aaif-goose#10091)

* feat (acp+): Remove REST onboarding setup paths (aaif-goose#10061)

* perf(providers): keep turn-context out of the Anthropic prefix cache (aaif-goose#10030)

* feat (acp): exposed available tools in acp schema (aaif-goose#10097)

* fix(otel): use async reqwest client so OTLP export works in `goose serve` mode (aaif-goose#10100)

* UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (aaif-goose#10109)

* move ollama provider into goose-providers (aaif-goose#9986)

* chore(release): bump version to 1.40.0 (minor) (aaif-goose#10099)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jack Amadeo <jackamadeo@squareup.com>

* remove unsupported model (aaif-goose#10121)

* Make OpenAI Responses API store param configurable (aaif-goose#10040)

Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>

* chore(deps): bump actions/cache from 5.0.2 to 6.0.0 (aaif-goose#10051)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps): downgrade pkcs8 to v0.10 to match sec1/pkcs1 v0.7 (aaif-goose#10119)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(providers): don't retry deterministically-permanent 400s (thinking-block immutability) (aaif-goose#10005)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* feat(providers): add Fireworks AI declarative provider (aaif-goose#9990)

Signed-off-by: Leo Walker <leowalker89@gmail.com>

* [codex] Add SessionStart hook parity outside CLI (aaif-goose#9970)

Co-authored-by: Max Novich <mnovich@Maxs-MacBook-Pro.local>

* fix(desktop): dedupe Nostr session deep link imports (aaif-goose#9918)

Signed-off-by: harrykamboj1 <singhharnoor116@gmail.com>

* feat: add iFlytek Spark and Astron MaaS providers (aaif-goose#9837)

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* feat: add --edit session flag to edit conversation before forking (aaif-goose#9799)

Signed-off-by: Sean Murphy <murphysean84@gmail.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* (attempt to) fix disk space errors in linux release builds (aaif-goose#10024)

* Migrate local inference model management to ACP (aaif-goose#10124)

* feat(providers): support OpenRouter request parameters (aaif-goose#9276)

Signed-off-by: sunilkumarvalmiki <g.sunilkumarvalmiki@gmail.com>
Signed-off-by: Douwe Osinga <douwe@sidewalklabs.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* fix(bedrock): send inference config (max_tokens, temperature) on Converse (aaif-goose#9889)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* Fix MCP app sandbox bridge lifecycle (aaif-goose#10064)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* feat (ui): Migrate dictation local model manager to ACP (aaif-goose#10131)

* Support TLS for ACP serve (aaif-goose#10088)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
Co-authored-by: Lifei Zhou <lifei@squareup.com>

* Remove MCP sampling support (aaif-goose#10087)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
Co-authored-by: Lifei Zhou <lifei@squareup.com>

* UI acp migratoin: Decouple desktop UI types from generated OpenAPI types (Part 2) (aaif-goose#10149)

* test: generic validator for declarative providers (aaif-goose#10010)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* Update release testing instructions (aaif-goose#10122)

* fix(desktop): seed mac auto-update config (aaif-goose#10132)

Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>

* add declarative provider support to goose-providers crate (aaif-goose#9992)

* Update EmpirioLabs provider display name to EmpirioLabs AI (aaif-goose#10126)

* chore(deps): bump pnpm/action-setup from 6.0.8 to 6.0.9 (aaif-goose#9892)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Douwe Osinga <douwe@block.xyz>

* chore(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1 (aaif-goose#10049)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump actions/stale from 10.1.1 to 10.3.0 (aaif-goose#10050)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* regenerate schema (aaif-goose#10166)

* chore(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 in /documentation (aaif-goose#10107)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(providers): unescape shell-escaped image paths (aaif-goose#10098)

* fix(databricks): always use OpenAI-compatible "parameters" for tools (aaif-goose#10101)

* fix: tolerate partial Responses output items (aaif-goose#10108)

* chore(deps): bump actions-rust-lang/setup-rust-toolchain from 1.16.1 to 1.17.0 (aaif-goose#10052)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bedrock model discovery and validation (aaif-goose#9997)

* Improve ACP auth and origin defaults (aaif-goose#9886)

* Revert "Bedrock model discovery and validation" (aaif-goose#10176)

* acp migration (ui) : ui connect to acp directly instead of goosed (aaif-goose#10081)

* Remove open-model-gym eval suite (aaif-goose#10174)

---------

Signed-off-by: Sean Murphy <murphysean84@gmail.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: dependabot[bot] <support@github.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: Douwe Osinga <douwe@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: Michael Neale <michael.neale@gmail.com>
Signed-off-by: Kyle De Freitas <kdefreitas@squareup.com>
Signed-off-by: Roman Ponomarev <maksugr@gmail.com>
Signed-off-by: jh-block <jhugo@block.xyz>
Signed-off-by: Adam Dalloul <47503782+Adam-Dalloul@users.noreply.github.com>
Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com>
Signed-off-by: Angie Jones <jones.angie@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: Abhijay Jain <Abhijay007j@gmail.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>
Signed-off-by: Lunchbox <lunchboxfortwo@gmail.com>
Signed-off-by: Goose <goose@aaif.dev>
Signed-off-by: Vikram Vaswani <2571660+vvaswani@users.noreply.github.com>
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Signed-off-by: Leo Walker <leowalker89@gmail.com>
Signed-off-by: harrykamboj1 <singhharnoor116@gmail.com>
Signed-off-by: FenjuFu <fufenjupku@gmail.com>
Signed-off-by: sunilkumarvalmiki <g.sunilkumarvalmiki@gmail.com>
Co-authored-by: Sean Murphy <murphysean84@gmail.com>
Co-authored-by: Matt Toohey <contact@matttoohey.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.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: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Erik Nilsen <enilsen16@live.com>
Co-authored-by: Douwe M Osinga <douwe@sidewalklabs.com>
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.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: Cursor <cursoragent@cursor.com>
Co-authored-by: Lance Colton <lance.colton@gmail.com>
Co-authored-by: BestCodes <106822363+The-Best-Codes@users.noreply.github.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: Douwe Osinga <douwe@block.xyz>
Co-authored-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Lifei Zhou <lifei@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: Jack Amadeo <jackamadeo@block.xyz>
Co-authored-by: qybaihe <137127051+qybaihe@users.noreply.github.com>
Co-authored-by: Hammad Khan <hammadkhanxcm@gmail.com>
Co-authored-by: Michael Neale <michael.neale@gmail.com>
Co-authored-by: Kyle E DeFreitas <kdefreitas@squareup.com>
Co-authored-by: Roman Ponomarev <maksugr@gmail.com>
Co-authored-by: jh-block <jhugo@block.xyz>
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: Angie Jones <jones.angie@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: Abhijay Jain <abhijay007j@gmail.com>
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: Bradley Axen <baxen@squareup.com>
Co-authored-by: Alex Hancock <alexhancock@block.xyz>
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>
Co-authored-by: lunchboxfortwo <lunchboxfortwo@gmail.com>
Co-authored-by: Goose <goose@aaif.dev>
Co-authored-by: vvaswani <2571660+vvaswani@users.noreply.github.com>
Co-authored-by: dorien-koelemeijer <62866702+dorien-koelemeijer@users.noreply.github.com>
Co-authored-by: Jack Amadeo <jackamadeo@squareup.com>
Co-authored-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Co-authored-by: Rodolfo Olivieri <rolivier@redhat.com>
Co-authored-by: Leo Walker <leowalker89@gmail.com>
Co-authored-by: Max Novich <mnovich@Maxs-MacBook-Pro.local>
Co-authored-by: Harnoor Singh <49549662+harrykamboj1@users.noreply.github.com>
Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
Co-authored-by: Sunil Kumar <g.sunilkumarvalmiki@gmail.com>
Co-authored-by: Lucas Kim <41357160+kimnamu@users.noreply.github.com>
Co-authored-by: Osraka <98612432+Osraka@users.noreply.github.com>
Co-authored-by: yyy33 <51548147+yyy33@users.noreply.github.com>
Co-authored-by: Gellért Stadler <gellert.stadler@tc2.hu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants