Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
288 commits
Select commit Hold shift + click to select a range
5e160e5
Honor blocking Stop hook decisions (#9468)
johnmatthewtennant Jun 1, 2026
f69a178
fix(otel): skip OTLP signals when protocol=grpc to avoid background-t…
joahg Jun 1, 2026
cd8f718
Fix scheduled recipe session params (#9553)
angiejones Jun 1, 2026
586bb15
fix(extension-manager): forward custom headers through OAuth connect …
hydrosquall Jun 2, 2026
942a456
Revert "refactor: convert desktop v1 and goose-server extensions to A…
alexhancock Jun 2, 2026
fdc1994
chore(release): bump version to 1.37.0 (minor) (#9557)
github-actions[bot] Jun 2, 2026
7982086
Pick the last canonical model (#9568)
DOsinga Jun 2, 2026
030dbb0
feat(security): Add directionality to egress logging (#9546)
dorien-koelemeijer Jun 2, 2026
502ee50
chore(release): release version 1.37.0 (#9565)
github-actions[bot] Jun 2, 2026
cd12199
Bench marking (#9465)
DOsinga Jun 2, 2026
003252f
Import sesssions (#9474)
DOsinga Jun 2, 2026
9626b4c
Replace review subprocess timeout with turn limits (#9571)
lucasconti-dev Jun 2, 2026
30034b9
Add Hugging Face OAuth support, add auth tab to settings (#9552)
jh-block Jun 3, 2026
f6caaa0
Fixed intermittent missing extension override on ui and cleanup (#9575)
lifeizhou-ap Jun 3, 2026
08e7480
Use LRU cache for token counting (#9586)
jh-block Jun 3, 2026
83a4abf
fix: quote release PR search phrase in pre-release.sh (#9573)
alexhancock Jun 3, 2026
0e4a367
chore(deps): bump the cargo-minor-and-patch group across 1 directory …
dependabot[bot] Jun 3, 2026
302dafc
chore(deps): bump mockall from 0.13.1 to 0.14.0 (#9511)
dependabot[bot] Jun 3, 2026
1ab48f5
chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (#9510)
dependabot[bot] Jun 3, 2026
dc3a63a
chore(deps): bump strum from 0.27.2 to 0.28.0 (#9509)
dependabot[bot] Jun 3, 2026
1205a4a
chore(deps): bump clap_mangen from 0.2.33 to 0.3.0 (#9508)
dependabot[bot] Jun 3, 2026
1a52f21
chore(deps): bump tokenizers from 0.21.4 to 0.22.2 (#9503)
dependabot[bot] Jun 3, 2026
34f33fc
chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.19 to 2.0.…
dependabot[bot] Jun 3, 2026
9646f70
chore(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.3 (#9501)
dependabot[bot] Jun 3, 2026
1cc5aa6
chore(deps): bump pnpm/action-setup from 6.0.5 to 6.0.8 (#9500)
dependabot[bot] Jun 3, 2026
dc59e41
Lifei/acp session setup refactor (#9488)
lifeizhou-ap Jun 4, 2026
6251e56
feat(sdk): minimal uniffi setup for cross language sdk (#9593)
alexhancock Jun 4, 2026
ec519ee
feat: Only send custom notifications when ACP client specifies this c…
lifeizhou-ap Jun 4, 2026
65b72b2
refactor: remove dead component and useNavigationSessions cleanup (#9…
lifeizhou-ap Jun 5, 2026
2f99664
feat: acp methods for config extensions (#9581)
lifeizhou-ap Jun 5, 2026
826f13f
create goose-providers crate with canonical models, conversation and …
jamadeo Jun 5, 2026
4904e3c
Image read tool (#9607)
DOsinga Jun 5, 2026
e5fd568
move formats/openai.rs into goose-providers crate, along with several…
jamadeo Jun 8, 2026
8eb6cd6
fix: compatibility of config extension acp call in TUI (#9683)
lifeizhou-ap Jun 9, 2026
0ab4b84
chore: pause tui release (#9685)
lifeizhou-ap Jun 9, 2026
e309083
fix: goose-sdk release compat check with new schema (#9697)
lifeizhou-ap Jun 9, 2026
f4ecdae
feat: use acp list sessions and manage sessions in Desktop (#9687)
lifeizhou-ap Jun 9, 2026
d396767
chore: refresh canonical model registry (#9709)
baxen Jun 9, 2026
f52d717
feat(security): enable prompt injection mitigation by default for int…
dorien-koelemeijer Jun 10, 2026
390dfb8
feat(security): Re-adjust pattern-based detection for prompt injectio…
dorien-koelemeijer Jun 10, 2026
10e665a
expose ACP thinking effort config option (#9711)
morgmart Jun 10, 2026
d2ab786
feat: acp list session with keyword and type filter (#9695)
lifeizhou-ap Jun 10, 2026
9455f8a
docs: fix typo in MCP blog post (#9641)
Nukually Jun 10, 2026
fde407c
Update analyze extension instructions (#9585)
DOsinga Jun 10, 2026
40315b5
feat: steering messages with ACP (#9560)
michaelneale Jun 10, 2026
be91189
feat: use acp search session in Desktop (#9717)
lifeizhou-ap Jun 10, 2026
58185fe
pin goose-sdk package in tui (#9712)
lifeizhou-ap Jun 10, 2026
32722e6
feat: surface Anthropic stream refusals as visible errors (#9724)
kalvinnchau Jun 10, 2026
e8d5622
feat(acp): support GOOSE_SERVER__SECRET_KEY at goose serve acp endpoi…
kalvinnchau Jun 10, 2026
523aaee
feat: custom acp method to get session info (#9729)
lifeizhou-ap Jun 11, 2026
4207b7e
docs: fix stale session navigation/delete docs (Session History) (#9727)
michaelneale Jun 11, 2026
db1f0fc
feat(lang): add Hindi Desktop locale (#9733)
Abhijay007 Jun 11, 2026
c6a3b5b
fix: preserve unparseable extension entries during config refresh (#9…
mvanhorn Jun 11, 2026
86e2f04
Add canonical thinking modes (#9743)
jh-block Jun 11, 2026
f23347f
fix: page through all Databricks AI Gateway v2 endpoints when listing…
kalvinnchau Jun 11, 2026
8b5a7b8
feat(security): unified OTLP logging schema for cross-tool detection …
dorien-koelemeijer Jun 12, 2026
f40d56f
docs: update docs for ACP clients (#9772)
yeskunall Jun 13, 2026
d6d99f5
i18n: add Japanese locale support (#9768)
tami1A84 Jun 13, 2026
0629f99
fix: classify Bedrock ValidationException as ExecutionError (#9735)
michaelneale Jun 13, 2026
6b9360c
Validate desktop i18n catalogs (#9776)
angiejones Jun 13, 2026
9d166ec
Mark stream decode errors retryable (#9723)
DOsinga Jun 13, 2026
e612d81
fix incorrect max tokens values for groq provider (#9790)
The-Best-Codes Jun 15, 2026
3063de7
fix: correctly map ollama_cloud to canonical provider and update max_…
murphysean Jun 15, 2026
b3aa4c2
feat(session): add opt-in ACP last message snippets (#9798)
matt2e Jun 15, 2026
fe1475c
chore(deps): bump dirs from 5.0.1 to 6.0.0 (#9630)
dependabot[bot] Jun 15, 2026
3dd881a
chore(deps): bump actions/setup-node from 4 to 6 (#9623)
dependabot[bot] Jun 15, 2026
1e9cad7
chore(deps): bump astral-sh/setup-uv from 7.2.0 to 8.2.0 (#9622)
dependabot[bot] Jun 15, 2026
6ab1831
chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#9621)
dependabot[bot] Jun 15, 2026
2712dd8
chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /scripts/provider-…
dependabot[bot] Jun 15, 2026
64f9d61
chore(deps): bump esbuild and tsx in /evals/open-model-gym/suite (#9775)
dependabot[bot] Jun 15, 2026
8494fc9
chore(deps): bump the cargo-minor-and-patch group with 9 updates (#9764)
dependabot[bot] Jun 15, 2026
d6fa46c
chore(deps): bump lopdf from 0.40.0 to 0.41.0 (#9629)
dependabot[bot] Jun 15, 2026
114ae52
chore(deps): bump uniffi from 0.29.5 to 0.31.1 (#9628)
dependabot[bot] Jun 15, 2026
dc94aa6
chore(deps): bump lru from 0.16.4 to 0.18.0 (#9627)
dependabot[bot] Jun 15, 2026
1472e7e
chore(deps): bump hono from 4.12.18 to 4.12.23 in /evals/open-model-g…
dependabot[bot] Jun 15, 2026
cbff60c
desktop: fix new chat shortcut (#9659)
extrasmall0 Jun 15, 2026
ca24900
chore(release): bump version to 1.38.0 (minor) (#9684)
github-actions[bot] Jun 15, 2026
c4d2d84
fix(agent): ensure tool request timestamp precedes tool response time…
msteve123 Jun 15, 2026
0f8a202
fix(recipe): close modal when canceling parameter form (#9195)
enilsen16 Jun 15, 2026
ee1a2e4
feat: propagate elicitation decline and cancel actions end-to-end (#9…
mvanhorn Jun 15, 2026
3ab8ba1
Fix: deleting a recently created session and then creating a new sess…
monroewilliams Jun 15, 2026
f4700ef
Add Scholar Sidekick tutorial page + anonymous-default auth (v0.8.0) …
mlava Jun 15, 2026
0ed51a5
fix(summon): warn on unmatched extension names in delegate (#9513)
jeffa-block Jun 15, 2026
cb6ece7
feat(providers): add OrcaRouter as a declarative OpenAI-compatible pr…
xilema2 Jun 15, 2026
6364087
oauth: time out the MCP callback wait instead of hanging in WSL (#9536)
mvanhorn Jun 15, 2026
bbcbb8b
feat(summon): add working_dir override for delegate tasks (#9520)
jeffa-block Jun 15, 2026
5d5986f
fix(summon): evict stale completed tasks to prevent unbounded memory …
jeffa-block Jun 15, 2026
e4329c7
fix(desktop): restore new chat shortcut navigation (#9528)
he-yufeng Jun 15, 2026
93285db
fix(providers): detect image paths with spaces (#9387)
jlmalone Jun 16, 2026
4602a88
feat(summon): add structured metadata to task load results (#9521)
jeffa-block Jun 16, 2026
8659c14
feat(summon): add context parameter for delegate tasks (#9518)
jeffa-block Jun 16, 2026
02f27b9
fix: add option for overriding API Url for Moonshot provider (#9819)
bytrangle Jun 16, 2026
4327dee
fix: record OpenAI-native cached_tokens in usage metering (#9829)
sumleo Jun 16, 2026
76c8028
fix(bedrock): implement real streaming via ConverseStream API (#9579)
bawongfai Jun 16, 2026
e56c749
fix: show resolved skill supporting file paths (#9584)
he-yufeng Jun 16, 2026
722b3c4
fix: refresh session name in sidebar after rename (#9543)
nuthalapativarun Jun 16, 2026
b9af83b
fix(desktop): align session history scrollbar with window edge (#9601)
bdeenyy Jun 16, 2026
11c607c
openai: read meta.n_ctx from /v1/models to fix context limit for loca…
CreamyG31337 Jun 16, 2026
3ee795a
fix(otel): provide Tokio runtime for OTLP HTTP exporter batch thread …
nuthalapativarun Jun 16, 2026
1512934
fix: fall back to default provider when resuming session with unavail…
nuthalapativarun Jun 16, 2026
9278953
fix: use blocking OTLP HTTP exporter (#9599)
he-yufeng Jun 16, 2026
fd7a0fe
fix: add hermit cleanup to uvx and jbang scripts (#9616)
The-Best-Codes Jun 16, 2026
ff91f0c
fix(ui): dedupe React to prevent multiple instances in renderer (#9631)
Jazzcort Jun 16, 2026
ec453a3
fix: Mention menu icon to open the sidebar (#9643)
bytrangle Jun 16, 2026
e0492d1
fix(ui): lead with extension description, shorten HTTP/SSE transport …
jezweb Jun 16, 2026
764a33f
feat: add Together AI declarative provider (#9545)
nuthalapativarun Jun 16, 2026
0b67498
fix(desktop): restore Cmd/Ctrl+T new chat shortcut (#9614)
sanidhyasin Jun 16, 2026
81a8b87
bug(hooks): repair PATH for plugin hook commands (#9615)
johnmatthewtennant Jun 16, 2026
59521f4
Improve benchmarking (#9637)
DOsinga Jun 16, 2026
2e2b7e6
chore(deps): bump actions/deploy-pages from 4.0.5 to 5.0.0 (#9499)
dependabot[bot] Jun 16, 2026
b3d64bb
chore(deps): bump shlex from 1.3.0 to 2.0.1 (#9505)
dependabot[bot] Jun 16, 2026
943f3e9
chore(deps): bump thiserror from 1.0.69 to 2.0.18 (#9506)
dependabot[bot] Jun 16, 2026
59f0bdb
chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (…
dependabot[bot] Jun 16, 2026
e783d2a
feat: added _meta.conversationBefore for ACP forking session (#9821)
lifeizhou-ap Jun 17, 2026
ddd9d3f
fix(desktop): handle resume deep links (#9298)
McGluut Jun 17, 2026
c9a82f3
feat(i18n): language selection feature (#9405)
besdar Jun 17, 2026
34b20e3
fix(providers/openai): preserve custom API path in base_url derivatio…
SjB Jun 17, 2026
e990ab7
fix(packaging): disable RPM build-id links (#9671)
yibo365 Jun 17, 2026
75f7d08
fix: keep extended thinking within the Anthropic output cap (#9814)
filipkujawa Jun 17, 2026
02d56dc
use windows-2022 image for CUDA builds (#9834)
jamadeo Jun 17, 2026
9ca81e7
fix: clear rejected OAuth credentials after refresh (#9694)
qybaihe Jun 17, 2026
b3d3a8b
feat(azure): support Entra ID bearer token auth via AZURE_OPENAI_AD_T…
hammadxcm Jun 17, 2026
7f02c1e
fix: accept string values for GOOSE_CONTEXT_LIMIT (#9738)
michaelneale Jun 17, 2026
d95df17
feat(gym): make per-agent timeout configurable (GYM_AGENT_TIMEOUT) (#…
kyledef Jun 17, 2026
0b95199
fix: inherit login-shell PATH in spawned subagents (#9737)
michaelneale Jun 17, 2026
b0d8ea0
feat: load global hints from ~/.agents/AGENTS.md (#9736)
michaelneale Jun 17, 2026
5adaebb
Make the context exceeded checker more precise (#9831)
DOsinga Jun 17, 2026
9804a8c
View json (#9678)
DOsinga Jun 17, 2026
1f0f5d9
fix: removed window goosed when closing window (#9818)
lifeizhou-ap Jun 17, 2026
72da972
feat: implement acp method for elicitation and elicitation improvemen…
lifeizhou-ap Jun 17, 2026
55dd847
fixed acp cancel race condition (#9804)
lifeizhou-ap Jun 17, 2026
f7b32da
fix(desktop): preserve Windows backslash paths in custom extension co…
michaelneale Jun 17, 2026
739d9cb
Fix custom OpenAI provider dropping port when URL scheme is omitted (…
michaelneale Jun 17, 2026
86846ec
fix(acp): include agentInfo in initialize response (#9765)
maksugr Jun 17, 2026
4aa5de1
Add support for MLX models to the local inference provider (#9154)
jh-block Jun 17, 2026
402afa5
feat(providers): add EmpirioLabs as a declarative OpenAI-compatible p…
Adam-Dalloul Jun 17, 2026
184f9ef
Keep the version-bump PR up to date by re-running on merge conflicts …
jamadeo Jun 17, 2026
9f6eb65
fix: resolve bundled extensions from discovery (#9759)
extrasmall0 Jun 17, 2026
e3dbb86
Dedup duplicate tool-call ids within a turn (#9792)
michaelneale Jun 17, 2026
80a286d
fix(summon): skip non-recipe project config files (#9808)
Thump604 Jun 17, 2026
56812f4
i18n: add Spanish (es) locale support (#9833)
jmpdsevilla Jun 17, 2026
1a500d8
fix(desktop): keep extensions icon visible after switching sessions (…
TheSeydiCharyyev Jun 17, 2026
d2090b1
feat(gym): make Open Model Gym output dir configurable (#9789)
kyledef Jun 17, 2026
3d40524
fix(local-inference): use media marker parts for vision prompts (#9452)
jh-block Jun 17, 2026
177cf3d
Initial prompt with goose://new-session (#9427)
jamadeo Jun 17, 2026
f0cc765
check for responses API support in databricks (#9347)
jamadeo Jun 17, 2026
633df01
perf(build): drop debug info for dependencies in the dev profile (#9843)
jlmalone Jun 17, 2026
1701f52
Add self-improving agents blog post (#9846)
DOsinga Jun 17, 2026
b0f5db2
Support MCP extensions in open plugins (#9471)
jamadeo Jun 17, 2026
c239ae0
Split provider inventory out of providers (#9826)
jamadeo Jun 17, 2026
bd7f492
fix: pass thinking config to Bedrock Anthropic models (#9794)
michaelneale Jun 17, 2026
69b4d36
fix: remove hard-coded React alias that points to the wrong location …
lifeizhou-ap Jun 17, 2026
109bda3
refactor: make session.name the source of truth for displayed session…
lifeizhou-ap Jun 17, 2026
802dd39
feat: use acp for desktop chat prompt (feature toggle off) (#9802)
lifeizhou-ap Jun 18, 2026
ddf23a0
feat (ui): Add durable ACP chat session state for desktop UI (#9852)
lifeizhou-ap Jun 18, 2026
7130cbf
feat (ui): chat reply UI with ACP (last part) (#9857)
lifeizhou-ap Jun 18, 2026
f108282
Add Korean localization to desktop app (#9856)
soolmuk Jun 18, 2026
6d3620d
feat(summon): add peek mode for async background tasks (#9519)
jeffa-block Jun 18, 2026
c524c27
fix(goal): start a turn when /goal or /grind is set (#9801)
michaelneale Jun 18, 2026
d6393d7
feat(aws_bedrock): support OpenAI GPT models via Bedrock mantle endpo…
clouatre Jun 18, 2026
4c64375
Add Ophis MCP server to the extensions registry (#9861)
san-npm Jun 18, 2026
80eaf8f
move global config access out of ModelConfig, and move ModelConfig in…
jamadeo Jun 18, 2026
c72c653
docs: remove DCO references (#9864)
DOsinga Jun 18, 2026
73fd41d
move the provider trait into goose-providers (#9860)
jamadeo Jun 18, 2026
fb59045
Feature AAIF migration blog post (#9866)
DOsinga Jun 18, 2026
9264427
fix(gcp): use refreshed gcloud token after reauth (retry Vertex AI on…
michaelneale Jun 18, 2026
a8b11e3
docs(installation): correct whitespace in fenced code block (#9867)
Nicholas-Westby Jun 18, 2026
b3cf3cb
delete embeddings support (#9865)
jamadeo Jun 18, 2026
09c8d2b
Update Moim (#9636)
DOsinga Jun 18, 2026
08fb6d4
View model interactions (#9806)
DOsinga Jun 19, 2026
0f1846a
refactor the request logger out of providers (#9847)
jamadeo Jun 19, 2026
5dcd3ff
move ApiClient to goose-providers, lifting out TlsConfig (#9869)
jamadeo Jun 19, 2026
e223de2
fix (acp): Refresh provider when session working directory changes (#…
lifeizhou-ap Jun 19, 2026
9785d06
feat (ui): load session using acp (#9875)
lifeizhou-ap Jun 19, 2026
ad64980
fix (desktop): updater to target aaif-goose releases (#9868)
Abhijay007 Jun 19, 2026
e6da0c6
Sanitize extension environment maps (#9884)
jh-block Jun 19, 2026
093d134
feat: track cache tokens for accurate cost reporting (#9752)
filipkujawa Jun 19, 2026
6c2ec55
feat (ui): change cwd using acp and refactor extension in bottom menu…
lifeizhou-ap Jun 19, 2026
d2a921a
feat: add option to disable automatic update downloads (#9872)
michaelneale Jun 20, 2026
2712c06
feat (acp): used typed request and response for add, get session exte…
lifeizhou-ap Jun 22, 2026
b893b5f
chore: removed create recipe from session modal and rest api (#9916)
lifeizhou-ap Jun 22, 2026
6592573
feat(ui): use acp new session on desktop (only for non recipe session…
lifeizhou-ap Jun 22, 2026
22b7437
fix: do not pass temperature to ChatGPT Codex provider (#9931)
angiejones Jun 22, 2026
d29aa52
Allow unlisted models in search (#9933)
angiejones Jun 22, 2026
155a3cd
chore(deps): bump tokenizers from 0.22.2 to 0.23.1 (#9904)
dependabot[bot] Jun 22, 2026
ada27af
chore(deps): bump pkcs8 from 0.10.2 to 0.11.0 (#9903)
dependabot[bot] Jun 22, 2026
27f5c8e
chore(deps): bump tiktoken-rs from 0.11.0 to 0.12.0 (#9901)
dependabot[bot] Jun 22, 2026
c847153
chore(deps): bump sigstore-verify from 0.8.0 to 0.9.0 (#9900)
dependabot[bot] Jun 22, 2026
a829e0e
chore(deps): bump tower-http from 0.6.11 to 0.7.0 (#9899)
dependabot[bot] Jun 22, 2026
69496e1
chore(deps): bump docker/login-action from 4.1.0 to 4.2.0 (#9896)
dependabot[bot] Jun 22, 2026
a8f1dd0
chore(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 (#9893)
dependabot[bot] Jun 22, 2026
102ff05
chore(deps): bump rand from 0.8.6 to 0.10.1 (#9504)
dependabot[bot] Jun 22, 2026
23c535a
chore(deps): bump actions/checkout from 6 to 7 (#9894)
dependabot[bot] Jun 22, 2026
867267a
feat(cli): add /status slash command (#9845)
jlmalone Jun 22, 2026
e944dcc
mcp(win): full Windows Job Object cleanup wiring (patch draft) (#9835)
michaelneale Jun 22, 2026
0b9ef09
fix(developer/read_image): send a User-Agent on URL image fetches (#9…
jedwards27 Jun 22, 2026
c346d00
move OpenAI provider into goose-providers (#9880)
jamadeo Jun 22, 2026
62beebe
fix(autovisualiser): accept JSON-encoded string for the data paramete…
hammadxcm Jun 22, 2026
b94b5f3
docs: custom agents (#9293)
angiejones Jun 22, 2026
2023153
fix(desktop): activate hermit on macOS so STDIO extensions resolve no…
Pluviobyte Jun 22, 2026
bc86094
docs: correct custom agents guide (#9947)
angiejones Jun 22, 2026
ca8938c
added recipe handling in new_session (#9935)
lifeizhou-ap Jun 22, 2026
d58f841
feat (ui) - use acp to manage global config and session extensions (#…
lifeizhou-ap Jun 23, 2026
156445e
fix(desktop): publish mac updater metadata (#9945)
DOsinga Jun 23, 2026
f38f1ac
feat: created acp method for managing recipes and UI changes (#9951)
lifeizhou-ap Jun 23, 2026
06076f0
chore(release): bump version to 1.39.0 (minor) (#9810)
github-actions[bot] Jun 23, 2026
527fcfc
feat(ui): use acp method to load skills (#9959)
lifeizhou-ap Jun 23, 2026
eef6c2a
fix: remove unused SubagentStart/SubagentStop hook events (#9960)
nuthalapativarun Jun 23, 2026
51ccfe5
feat: add streamable HTTP support to deeplink generator (#9954)
Abhijay007 Jun 23, 2026
a25f9e9
fix(cost): resolve databricks_v2 pricing and surface cost in standard…
jedwards27 Jun 23, 2026
35711b8
provider refactor: don't require a model config to create a provider …
jamadeo Jun 23, 2026
6782d1f
Route MCP elicitations through tool streams (#9943)
DOsinga Jun 24, 2026
e4f8b61
Migrate diagnostics to JSON report (#9964)
DOsinga Jun 24, 2026
79c6547
feat (ui): Use ACP steer to send the message in queue in ACP path (#9…
lifeizhou-ap Jun 24, 2026
efafdf7
removed tunnel rest api and ui (#9932)
lifeizhou-ap Jun 24, 2026
2acae3b
Expose last message timestamp on sessions (#9961)
DOsinga Jun 24, 2026
e51d70f
[codex] Emit assistant reply text in Stop hooks (#9968)
Kvadratni Jun 24, 2026
48a2a3d
created custom methods for agent mention and slash command (#9980)
lifeizhou-ap Jun 24, 2026
904de1b
chore(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /document…
dependabot[bot] Jun 24, 2026
3a93f56
fix(desktop): show optimistic toggle state when disabling an extensio…
TheSeydiCharyyev Jun 24, 2026
63d1456
Fix: surface actionable errors for truncated tool-call arguments (#9946)
vincenzopalazzo Jun 24, 2026
0c9acc3
fix(providers): Buffer thinking across stream chunks for DeepSeek/Kim…
thepetk Jun 24, 2026
6d7e2da
perf: disable extended thinking for fast-model operations (#9815)
filipkujawa Jun 24, 2026
274e952
chore: removed mesh on ui (#9982)
lifeizhou-ap Jun 24, 2026
d97d07f
chore: clean up ui as we don't have session based permission setting …
lifeizhou-ap Jun 24, 2026
09998b1
chore: removed the too many tools warning (#9974)
lifeizhou-ap Jun 24, 2026
eea6989
feat (acp): custom methods for managing scheduler (#9972)
lifeizhou-ap Jun 24, 2026
416aad8
chore: remove gateway REST API and UI (#9989)
Abhijay007 Jun 25, 2026
db26fb7
suppress telemetry event on ui (#9991)
lifeizhou-ap Jun 25, 2026
24166fc
chore: Remove share session via base url (#9994)
lifeizhou-ap Jun 25, 2026
f1bf611
chore(deps): bump docker/setup-buildx-action from 3.12.0 to 4.1.0 (#9…
dependabot[bot] Jun 25, 2026
dc8aedf
ACP Migration: MCP/Goose Apps (#9988)
DOsinga Jun 25, 2026
bb4a9a7
removed unnecessary call setRecipeParams for acp enabled path (#10003)
lifeizhou-ap Jun 25, 2026
8ab0320
Revert "mcp(win): full Windows Job Object cleanup wiring (patch draft…
jamadeo Jun 25, 2026
9c96bd7
ignore unused on windows (#10009)
jamadeo Jun 25, 2026
37d93ce
Add GLM-5.2 support (#9967)
SynthLuvr Jun 25, 2026
789717b
run all builds on the release branch, before tagging (#10017)
jamadeo Jun 25, 2026
d1af10c
Migrate Nostr session sharing to ACP (#10022)
DOsinga Jun 25, 2026
854fed5
move anthropic provider into goose-providers (#9985)
jamadeo Jun 25, 2026
3c62892
feat: used acp agent capabilities for local Inference support check (…
lifeizhou-ap Jun 25, 2026
59b28e4
Apply ACP recipe state during session load and fork (#9998)
lifeizhou-ap Jun 25, 2026
22883e3
feat(acp): migrate upsertPermissions to setToolPermissions ACP method…
Abhijay007 Jun 26, 2026
ec450a6
fix: removed fallback rest api call in ACP mode for edit in place (#1…
lifeizhou-ap Jun 26, 2026
d9cf383
chore: ignore Zed settings (#10043)
DOsinga Jun 26, 2026
f0a3ed3
refactor: replace getTunnelStatus with GOOSE_DISABLE_NOSTR_SHARING co…
Abhijay007 Jun 26, 2026
35999d4
add ACP+ handlers for prompt editing (#10031)
jamadeo Jun 26, 2026
d1d2166
Support streamed tool calls without indexes (#10023)
baxen Jun 26, 2026
2fda760
feat(acp+): models/providers in desktop on ACP+ (#9987)
alexhancock Jun 26, 2026
98a13ff
feat(acp+): config in desktop on ACP+ (#10057)
alexhancock Jun 27, 2026
5bc74cf
chore: sync upstream changes through 2026-06-27
earayu Jun 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ tokenizer_files/
.DS_Store
.idea
.vscode
.zed/
*.log
tmp/

Expand Down
16 changes: 2 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/goose-mcp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ etcetera = { workspace = true }
tempfile = { workspace = true }
include_dir = { workspace = true }
once_cell = { workspace = true }
lopdf = { version = "0.41", default-features = false }
lopdf = { version = "0.42", default-features = false }
docx-rs = { version = "0.4.18", default-features = false, features = ["image"] }
image = { version = "0.24.4", default-features = false, features = ["bmp", "dds", "dxt", "farbfeld", "gif", "hdr", "ico", "jpeg", "jpeg_rayon", "openexr", "png", "pnm", "tga", "tiff", "webp"] }
umya-spreadsheet = { version = "2", default-features = false }
Expand Down
65 changes: 63 additions & 2 deletions crates/goose-providers/src/formats/openai.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1004,8 +1004,9 @@ where
let mut tool_call_data: ToolCallData = HashMap::new();

if let Some(tool_calls) = &chunk.choices[0].delta.tool_calls {
for tool_call in tool_calls {
if let (Some(index), Some(id), Some(name)) = (tool_call.index, &tool_call.id, &tool_call.function.name) {
for (position, tool_call) in tool_calls.iter().enumerate() {
if let (Some(id), Some(name)) = (&tool_call.id, &tool_call.function.name) {
let index = tool_call.index.unwrap_or(position as i32);
tool_call_data.insert(index, (id.clone(), name.clone(), tool_call.function.arguments.clone(), tool_call.extra.clone()));
}
}
Expand Down Expand Up @@ -3652,6 +3653,66 @@ data: [DONE]"#;
Ok(())
}

#[tokio::test]
async fn test_streaming_tool_call_without_tool_call_index() -> anyhow::Result<()> {
let response_lines = concat!(
"data: {\"id\":\"x\",\"object\":\"chat.completion.chunk\",\"model\":\"m\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"tool_calls\":[{\"id\":\"functions.get_weather:0\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n",
"data: [DONE]"
);
let lines: Vec<String> = response_lines.lines().map(|s| s.to_string()).collect();
let response_stream = tokio_stream::iter(lines.into_iter().map(Ok));
let mut messages = std::pin::pin!(response_to_streaming_message(response_stream));

let mut tool_calls = Vec::new();
while let Some(result) = messages.next().await {
let (message, _usage) = result?;
if let Some(msg) = message {
for content in &msg.content {
if let MessageContent::ToolRequest(request) = content {
let tool_call = request.tool_call.as_ref().expect("tool call should parse");
tool_calls.push((tool_call.name.to_string(), tool_call.arguments.clone()));
}
}
}
}

assert_eq!(tool_calls.len(), 1);
assert_eq!(tool_calls[0].0, "get_weather");
assert_eq!(tool_calls[0].1, Some(object!({"city": "Paris"})));
Ok(())
}

#[tokio::test]
async fn test_streaming_multiple_tool_calls_without_tool_call_index() -> anyhow::Result<()> {
let response_lines = concat!(
"data: {\"id\":\"x\",\"object\":\"chat.completion.chunk\",\"model\":\"m\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"tool_calls\":[{\"id\":\"functions.get_weather:0\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Paris\\\"}\"}},{\"id\":\"functions.get_weather:1\",\"type\":\"function\",\"function\":{\"name\":\"get_weather\",\"arguments\":\"{\\\"city\\\": \\\"Tokyo\\\"}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n",
"data: [DONE]"
);
let lines: Vec<String> = response_lines.lines().map(|s| s.to_string()).collect();
let response_stream = tokio_stream::iter(lines.into_iter().map(Ok));
let mut messages = std::pin::pin!(response_to_streaming_message(response_stream));

let mut tool_calls = Vec::new();
while let Some(result) = messages.next().await {
let (message, _usage) = result?;
if let Some(msg) = message {
for content in &msg.content {
if let MessageContent::ToolRequest(request) = content {
let tool_call = request.tool_call.as_ref().expect("tool call should parse");
tool_calls.push((tool_call.name.to_string(), tool_call.arguments.clone()));
}
}
}
}

assert_eq!(tool_calls.len(), 2);
assert_eq!(tool_calls[0].0, "get_weather");
assert_eq!(tool_calls[0].1, Some(object!({"city": "Paris"})));
assert_eq!(tool_calls[1].0, "get_weather");
assert_eq!(tool_calls[1].1, Some(object!({"city": "Tokyo"})));
Ok(())
}

// Streaming counterpart: both fields in one delta must parse and yield
// thinking content, not fail with "duplicate field `reasoning_content`".
#[tokio::test]
Expand Down
Loading
Loading