Vincent Koc
82d5e6a2f7
fix(ci): isolate task executor delivery runtime cache
2026-04-02 20:21:23 +09:00
Mariano
bbf9800a8e
Plugins: add bound TaskFlow runtime ( #59622 )
...
Merged via squash.
Prepared head SHA: b4649f3238
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-02 13:17:09 +02:00
Vincent Koc
474409deb5
fix(ci): reset flow registry in acp manager tests
2026-04-02 20:04:19 +09:00
Vincent Koc
d49460b417
fix(providers): centralize Anthropic endpoint classification ( #59608 )
...
* fix(providers): centralize Anthropic endpoint classification
* fix(agents): share Anthropic thinking recovery gating
2026-04-02 19:54:43 +09:00
Vincent Koc
d87bc6706c
fix(plugin-sdk): narrow groups runtime discord seam ( #59623 )
2026-04-02 19:51:36 +09:00
Vincent Koc
707f5485b9
fix(ci): tighten thinking recovery stream types
2026-04-02 19:47:52 +09:00
Mariano
8bdca2323d
TaskFlow: add managed child task execution ( #59610 )
...
Merged via squash.
Prepared head SHA: e6cdde6c21
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-02 12:45:03 +02:00
Vincent Koc
f65da8711a
fix(plugin-sdk): narrow cli discord and matrix contract seams ( #59565 )
2026-04-02 19:40:04 +09:00
Vincent Koc
dfe95b1e1b
fix(ci): align task store flow-link test with runtime guard
2026-04-02 19:32:07 +09:00
Vincent Koc
9aa2ef2736
fix(agents): recover Anthropic thinking after crash ( #59062 )
...
* fix(agents): recover Anthropic thinking after crash
* fix(agents): avoid duplicate Anthropic recovery chunks
* fix(agents): preserve Anthropic stream result
2026-04-02 19:30:25 +09:00
Vincent Koc
ecb4ea9830
fix(ci): restore exec approval masking semantics
2026-04-02 19:23:26 +09:00
Vincent Koc
0e9a9dae84
fix(providers): centralize Google endpoint classification ( #59556 )
...
* fix(providers): centralize Google endpoint classification
* fix(providers): tighten Google endpoint fallback parsing
* fix(security): harden provider endpoint fallback parsing
2026-04-02 19:21:31 +09:00
Mariano
2fa4c7cc61
TaskFlow: restore managed substrate ( #58930 )
...
Merged via squash.
Prepared head SHA: c99093838f
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-02 12:17:56 +02:00
Ayaan Zaidi
52d2bd5cc6
fix: reject stale ACP reconnect prompts
2026-04-02 15:32:46 +05:30
Ayaan Zaidi
e3319b2a63
fix: guard ACP disconnect clears by epoch
2026-04-02 15:15:21 +05:30
Ayaan Zaidi
d983970704
fix: preserve ACP reconnect epochs
2026-04-02 15:15:21 +05:30
Ayaan Zaidi
73c1b45819
fix: keep active ACP runs alive after reconnect timeout
2026-04-02 15:15:21 +05:30
Ayaan Zaidi
e48a7b9be8
refactor: distill ACP reconnect prompt state
2026-04-02 15:15:21 +05:30
Ayaan Zaidi
304da2cbd7
fix: keep ACP prompts alive across gateway reconnects ( #59473 )
...
* fix: keep acp prompts alive across gateway reconnects
* fix: bound ACP prompts after disconnect grace
* fix: preserve ACP send timeout semantics
* fix: defer pre-ack ACP disconnect failures
* fix: reconcile ACP runs after reconnect
* fix: keep ACP reconnect deadlines monotonic
* fix: keep pre-ack ACP deadlines after reconnect
* fix: keep ACP prompts alive across gateway reconnects (#59473 )
* fix: reject superseded ACP pre-ack prompts (#59473 )
* style: format ACP reconnect regression updates (#59473 )
* style: format ACP reconnect regression updates (#59473 )
* fix: guard ACP send acceptance by run id (#59473 )
* fix: scope ACP reconnect deadline by prompt (#59473 )
* fix: recheck ACP prompts at reconnect deadline (#59473 )
* fix: key ACP reconnect deadline by run (#59473 )
2026-04-02 14:34:11 +05:30
Ayaan Zaidi
176ff18d18
fix: strip antml thinking tags
2026-04-02 14:28:54 +05:30
wangchunyue
a597938be8
fix(exec): strip invalid approval policy enums during config normalization ( #59112 )
...
* fix(exec): strip invalid security/ask enum values during config normalization
* fix(exec): narrow invalid approvals config cleanup
---------
Co-authored-by: scoootscooob <zhentongfan@gmail.com >
2026-04-02 01:40:10 -07:00
Vincent Koc
d90c8db491
fix(plugin-sdk): narrow discord and matrix core seam imports ( #59557 )
2026-04-02 17:40:06 +09:00
Vincent Koc
331e835dab
fix(providers): centralize stream request headers ( #59542 )
...
* fix(providers): centralize stream request headers
* Update src/agents/provider-request-config.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-02 17:21:46 +09:00
Vincent Koc
08962b6812
fix(browser): keep static helper seams cold ( #59471 )
...
* fix(browser): keep static helper seams cold
* fix(browser): narrow sandbox helper facade imports
* fix(browser): harden host inspection helpers
2026-04-02 17:12:32 +09:00
Ayaan Zaidi
b441cd2f4f
fix: normalize kimi anthropic tool payloads ( #59440 )
...
* fix: normalize kimi anthropic tool payloads
* fix: normalize kimi anthropic tool payloads (#59440 )
2026-04-02 13:39:51 +05:30
Vincent Koc
53f1c9968a
fix(ci): restore model override and trash-path fallbacks
2026-04-02 16:59:27 +09:00
Gustavo Madeira Santana
8748b7c54c
Matrix: keep partial previews aligned with block streaming ( #59384 )
...
Merged via squash.
Prepared head SHA: 981aa35a7c
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-02 03:39:27 -04:00
Gustavo Madeira Santana
a5cd921053
revert: remove TinyFish bundled plugin
2026-04-02 03:07:33 -04:00
Vincent Koc
f28f0f29ba
fix(providers): centralize media request shaping ( #59469 )
...
* fix(providers): centralize media request shaping
* style(providers): normalize shared request imports
* fix(changelog): add media request shaping entry
* fix(google): preserve private network guard
2026-04-02 15:28:57 +09:00
Gustavo Madeira Santana
9786946b2d
fix(matrix): restore guided setup flow ( #59462 )
...
Merged via squash.
Prepared head SHA: 9b29023c68
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-02 02:15:32 -04:00
Simantak Dabhade
b880118d2d
feat: add TinyFish as bundled browser automation plugin ( #58645 )
...
* feat: add TinyFish as bundled browser automation plugin
Add a default-off bundled `tinyfish` plugin with one tool
(`tinyfish_automation`) for hosted browser automation of complex public
web workflows. Follows the existing plugin architecture pattern.
- Plugin entry, manifest with contracts, config schema, SecretRef support
- SSE stream parser with COMPLETE-terminal, SSRF guards, credential rejection
- Bundled skill with escalation guidance (web_fetch -> web_search -> tinyfish -> browser)
- Docs page, labeler rule, glossary entry, changelog entry
- 21 tests covering request serialization, auth, security, streaming, and error paths
Closes #41300
* plugins: address review feedback and regenerate baselines
- Split API_INTEGRATION into TINYFISH_API_INTEGRATION and CLIENT_SOURCE
for semantic clarity (Greptile P2)
- Wrap post-finally parseEventBlock in try/catch so trailing malformed
data does not mask "stream ended before COMPLETE" error (Greptile P2)
- Regenerate config-baseline and plugin-sdk-api-baseline for new plugin
---------
Co-authored-by: Simantak Dabhade <simantak@mac.local >
2026-04-02 01:46:05 -04:00
Vincent Koc
52a018680d
fix(plugins): guard runtime facade activation ( #59412 )
...
* fix(plugins): guard runtime facade activation
* refactor(plugin-sdk): localize facade load policy
* fix(plugin-sdk): narrow facade activation guards
* fix(browser): keep cleanup helpers outside activation guard
* style(browser): apply formatter follow-ups
* chore(changelog): note plugin activation guard regressions
* fix(discord): keep cleanup thread unbinds outside activation guard
* fix(browser): fallback when trash exits non-zero
2026-04-02 14:37:12 +09:00
Vincent Koc
ed6012eb5b
fix(agents): honor cacheRetention for custom anthropic providers ( #59049 )
...
* fix(agents): honor cacheRetention for custom anthropic providers
* docs(changelog): add cache retention entry
* Update CHANGELOG.md
* test(agents): add direct cache retention assertions
2026-04-02 14:34:01 +09:00
Vincent Koc
1707493be4
refactor(providers): add internal request config seam ( #59454 )
2026-04-02 14:28:25 +09:00
Gustavo Madeira Santana
f69570f820
Exec approvals: fix policy source attribution ( #59367 )
...
Merged via squash.
Prepared head SHA: 974945a9f0
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-02 01:28:14 -04:00
Vincent Koc
0e8e986c95
perf(memory): narrow telegram bot deps skill/runtime imports
2026-04-02 14:16:13 +09:00
Vincent Koc
1a037ff6cd
refactor(providers): centralize request attribution policy ( #59433 )
...
* refactor(providers): centralize request attribution policy
* style(providers): normalize request policy formatting
* style(providers): normalize request policy formatting
* style(providers): normalize request policy formatting
* docs(changelog): note provider request policy fix
* fix(providers): tighten request policy gates
2026-04-02 14:10:53 +09:00
Priyansh Gupta
b9c74fc884
fix(image-tool): resolve relative paths against workspaceDir ( #57222 )
...
Relative paths like "inbox/receipt.png" were resolved against
process.cwd() instead of the agent's workspaceDir, causing the
allowlist check to fail with "Local media path is not under an
allowed directory". This matches how the read tool already behaves.
Fixes #57215
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 00:41:09 -04:00
bobbyt74
cae1d9bc6d
fix(whatsapp): add HTML/XML/CSS to MIME map + fallback for unknown media types ( #51562 )
...
Merged via squash.
Prepared head SHA: 83f2eabd49
Co-authored-by: bobbyt74 <262672147+bobbyt74@users.noreply.github.com >
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com >
Reviewed-by: @mcaxtr
2026-04-02 00:25:12 -03:00
Vincent Koc
534f0a644b
fix(plugins): keep browser facade helpers cold
2026-04-02 11:44:49 +09:00
wangchunyue
51edd30bea
fix: restore local loopback role upgrades ( #59092 ) (thanks @openperf)
...
* fix(gateway ): allow silent role upgrades for local loopback clients
When a local loopback client connects with a role not covered by
existing device tokens, listEffectivePairedDeviceRoles incorrectly
returns an empty role set for devices whose tokens map is an empty
object. This triggers a role-upgrade pairing request that
shouldAllowSilentLocalPairing rejects because it does not recognise
the role-upgrade reason.
Fix listEffectivePairedDeviceRoles to fall back to legacy role fields
when the tokens map has no entries, and extend
shouldAllowSilentLocalPairing to accept role-upgrade for local
clients.
Fixes #59045
* fix: restore local loopback role upgrades (#59092 ) (thanks @openperf)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-02 08:13:45 +05:30
Vincent Koc
a7e3c0b0e1
feat(slack): add scoped prompts and mrkdwn hints ( #59100 )
...
* feat(slack): add scoped prompts and mrkdwn hints
* refactor(slack): drop dm prompt override
* refactor(slack): drop exposed prompt config
* chore(changelog): note slack mrkdwn fix
2026-04-02 11:23:43 +09:00
Vincent Koc
7771c69caf
fix(plugins): enforce activation before shipped imports ( #59136 )
...
* fix(plugins): enforce activation before shipped imports
* fix(plugins): remove more ambient bundled loads
* fix(plugins): tighten scoped loader matching
* fix(plugins): remove channel-id scoped loader matches
* refactor(plugin-sdk): relocate ambient provider helpers
* fix(plugin-sdk): preserve unicode ADC credential paths
* fix(plugins): restore safe setup fallback
2026-04-02 11:18:49 +09:00
Gustavo Madeira Santana
ba735d0158
Exec approvals: unify effective policy reporting and actions ( #59283 )
...
Merged via squash.
Prepared head SHA: d579b97a93
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 22:02:39 -04:00
Gustavo Madeira Santana
32fa5c3be5
fix(agents): resolve compaction wait before channel flush ( #59308 )
...
Merged via squash.
Prepared head SHA: bf17502df8
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 21:40:23 -04:00
joshavant
c22233d96c
Revert "refactor(plugins): remove before_install hook"
2026-04-01 19:57:07 -05:00
Gustavo Madeira Santana
560ea25294
Matrix: restore ordered progress delivery with explicit streaming modes ( #59266 )
...
Merged via squash.
Prepared head SHA: 523623b7e1
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 19:35:03 -04:00
Gustavo Madeira Santana
91a7505af6
fix(tests): serialize shared channel audit state cases
2026-04-01 19:12:05 -04:00
Gustavo Madeira Santana
c87c8e66bf
Refactor channel approval capability seams ( #58634 )
...
Merged via squash.
Prepared head SHA: c9ad4e4706
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-01 17:10:25 -04:00
Logan Ye
d9a7ffe003
failover: classify AbortError / stream-abort messages as timeout ( #58315 ) ( #58324 )
...
Merged via squash.
Prepared head SHA: d8412f27e6
Co-authored-by: yelog <14227866+yelog@users.noreply.github.com >
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com >
Reviewed-by: @altaywtf
2026-04-02 00:02:31 +03:00