Vincent Koc
53504b3662
fix(agents): suppress profile allowlist warnings
2026-04-03 19:55:05 +09:00
Peter Steinberger
d921784718
fix: support default subagent allowlists ( #59944 ) (thanks @hclsys)
2026-04-03 19:43:17 +09:00
HCL
a57766bad0
fix(agents): fall back to defaults for subagents.allowAgents
...
resolveAgentConfig().subagents.allowAgents reads only the per-agent
entry, never falling back to agents.defaults.subagents.allowAgents.
Other subagent defaults like runTimeoutSeconds correctly read from
cfg.agents.defaults.subagents — allowAgents was missed.
Root cause: subagent-spawn.ts:463 and agents-list-tool.ts:49 both
use resolveAgentConfig() which returns only per-agent config without
defaults merging. The same pattern is already established at
subagent-spawn.ts:403 for runTimeoutSeconds.
Fix: add cfg.agents.defaults.subagents.allowAgents as fallback when
per-agent entry doesn't specify allowAgents. Both call sites fixed.
Closes #59938
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: HCL <chenglunhu@gmail.com >
2026-04-03 19:42:24 +09:00
Peter Steinberger
32ebaa3757
refactor: share session model resolution helpers
2026-04-03 19:37:56 +09:00
Peter Steinberger
b406b7d2e4
refactor: extract embedded runner failover helpers
2026-04-03 19:28:39 +09:00
Vincent Koc
61f13173c2
feat(providers): add model request transport overrides ( #60200 )
...
* feat(providers): add model request transport overrides
* chore(providers): finalize request override follow-ups
* fix(providers): narrow model request overrides
2026-04-03 19:00:06 +09:00
Peter Steinberger
87b7bb1d14
fix(agents): harden rate-limit fallback handoff
...
Co-authored-by: TechFath3r <thetechfath3r@gmail.com >
2026-04-03 18:28:56 +09:00
samzong
61fef8c689
[Fix] Isolate teardown steps so session lock release is unconditional ( #59194 )
...
Merged via squash.
Prepared head SHA: 52b3bb46bb
Co-authored-by: samzong <13782141+samzong@users.noreply.github.com >
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com >
Reviewed-by: @frankekn
2026-04-03 17:07:24 +08:00
Vincent Koc
23719dd513
feat(media): add request transport overrides ( #59848 )
...
* style(providers): normalize request policy formatting
* style(providers): normalize request policy formatting
* feat(media): add request transport overrides
* fix(secrets): resolve media request secret refs
* fix(secrets): cover shared media request refs
* fix(secrets): scope media request ref activity
* fix(media): align request ref gating
2026-04-03 17:35:26 +09:00
Peter Steinberger
1849cf71c2
fix(image): skip inferred resolution for openai edits
2026-04-03 09:20:08 +01:00
hengm3467
52d8dc5b56
feat: add bundled StepFun provider plugin ( #60032 )
...
Co-authored-by: George Zhang <georgezhangtj97@gmail.com >
2026-04-02 23:53:50 -07:00
Peter Steinberger
051b5ddafe
test: dedupe core test teardown paths
2026-04-03 07:14:58 +01:00
Peter Steinberger
ffd34f8896
test: reduce agent test import churn
2026-04-03 04:41:09 +01:00
Bruce MacDonald
5f4077cc7d
fix(ollama): prefer real cloud auth over local marker
2026-04-02 15:51:57 -07:00
Agustin Rivera
193fdd6e3b
fix(policy): preserve restrictive tool allowlists ( #58476 )
...
* fix(policy): preserve restrictive tool allowlists
Co-authored-by: David Silva <david.silva@gendigital.com >
* fix(policy): address review follow-ups
* fix(policy): restore additive alsoAllow semantics
* fix(policy): preserve optional tool opt-ins for allow-all configs
* fix(policy): narrow plugin-only allowlist warnings
* fix(policy): add changelog entry
* Revert "fix(policy): add changelog entry"
This reverts commit 4a996bf4ca .
* chore: add changelog for restrictive tool allowlists
---------
Co-authored-by: David Silva <david.silva@gendigital.com >
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-02 12:55:36 -06:00
Vincent Koc
f911bbc353
refactor(plugins): separate activation from enablement ( #59844 )
...
* refactor(plugins): separate activation from enablement
* fix(cli): sanitize verbose plugin activation reasons
2026-04-03 03:22:37 +09:00
Peter Steinberger
45c8207ef2
fix(exec): clarify auto routing semantics ( #58897 ) (thanks @vincentkoc)
2026-04-03 02:37:12 +09:00
Vincent Koc
5dca81271c
fix(exec): clarify and cover auto host override guard
2026-04-03 02:37:12 +09:00
Vincent Koc
dae6632da1
Security: block exec host overrides under auto target
2026-04-03 02:37:12 +09:00
Peter Steinberger
247a06813e
fix: avoid gateway cwd for node exec ( #58977 ) (thanks @Starhappysh)
2026-04-03 02:04:26 +09:00
jianxing zhang
50b270a86b
fix: widen HostExecApprovalParams.cwd to string | undefined
...
Remote node exec may have no explicit cwd when the gateway's own
process.cwd() is omitted. Allow undefined to flow through the
approval request type.
2026-04-03 02:04:26 +09:00
jianxing zhang
302c6e30bb
fix: resolve type errors where workdir (string | undefined) flows to string-only params
...
After the node early-return, narrow workdir back to string via
resolvedWorkdir for gateway/sandbox paths. Update
buildExecApprovalPendingToolResult and buildApprovalPendingMessage
to accept string | undefined for cwd since node execution may omit it.
2026-04-03 02:04:26 +09:00
jianxing zhang
3b3191ab3a
fix(exec): skip gateway cwd injection for remote node host
...
When exec runs with host=node and no explicit cwd is provided, the
gateway was injecting its own process.cwd() as the default working
directory. In cross-platform setups (e.g. Linux gateway + Windows node),
this gateway-local path does not exist on the node, causing
"SYSTEM_RUN_DENIED: approval requires an existing canonical cwd".
This change detects when no explicit workdir was provided (neither via
the tool call params.workdir nor via agent defaults.cwd) and passes
undefined instead of the gateway cwd. This lets the remote node use its
own default working directory.
Changes:
- bash-tools.exec.ts: Track whether workdir was explicitly provided;
when host=node and no explicit workdir, pass undefined instead of
gateway process.cwd()
- bash-tools.exec-host-node.ts: Accept workdir as string | undefined;
only send cwd to system.run.prepare when defined
- bash-tools.exec-approval-request.ts: Accept workdir as
string | undefined in HostExecApprovalParams
Fixes #58934
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 02:04:26 +09:00
pgondhi987
8aceaf5d0f
fix(security): close fail-open bypass in exec script preflight [AI] ( #59398 )
...
* fix: address issue
* fix: finalize issue changes
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* fix: address PR review feedback
* fix: address PR review feedback
* chore: add changelog for exec preflight fail-closed hardening
---------
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-02 11:00:39 -06:00
Devin Robison
96b55821bc
fix: share ACP owner-only approval classes ( #201 ) ( #59255 )
...
Co-authored-by: OpenClaw Dummy Agent <octriage-dummy@example.invalid >
2026-04-02 10:45:41 -06:00
Peter Steinberger
812a7636fb
refactor: simplify exec approval followup delivery
2026-04-02 17:19:42 +01:00
Peter Steinberger
47dcfc49b8
fix: scope #57584 to shell allowlist changes
2026-04-03 01:11:20 +09:00
biao
8d81e76f23
fix: evaluate shell wrapper inline commands against allowlist ( #57377 ) ( #57584 )
...
When a skill constructs a compound command via a shell wrapper
(e.g. `sh -c "cat SKILL.md && gog-wrapper calendar events"`),
the allowlist check was comparing `/bin/sh` instead of the actual
target binaries, causing the entire command to be silently rejected.
This adds recursive inline command evaluation that:
- Detects chain operators (&&, ||, ;) in the -c payload
- Parses each sub-command independently via analyzeShellCommand
- Evaluates every sub-command against the allowlist
- Preserves per-sub-command segmentSatisfiedBy for accurate tracking
- Limits recursion depth to 3 to prevent abuse
- Skips recursion on Windows (no POSIX shell semantics)
Closes #57377
Co-authored-by: WZBbiao <wangzhenbiao326@gmail.com >
2026-04-03 01:06:40 +09:00
Peter Steinberger
578a0ed31a
refactor(agent): dedupe tool error summary
2026-04-02 17:05:05 +01:00
seonang
4207ca2eb8
Fix Telegram exec approval delivery and auto-resume fallback
2026-04-03 00:56:54 +09:00
Priyansh Gupta
77e636cf78
fix(agents): include received keys in missing-param error for write tool ( #55317 )
...
Merged via squash.
Prepared head SHA: c1cf0691c9
Co-authored-by: priyansh19 <33621094+priyansh19@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-02 08:54:28 -07:00
spaceman1412
3b6825ab93
Cron: honor trigger for custom session timeouts
2026-04-03 00:43:42 +09:00
spaceman1412
102462b7a6
Cron: restrict exec visibility to timeouts
2026-04-03 00:43:42 +09:00
spaceman1412
d300a20440
Cron: surface exec timeouts in cron runs
2026-04-03 00:43:42 +09:00
Peter Steinberger
874a585d57
refactor(agent): share exec parser and runtime context codec
2026-04-03 00:15:43 +09:00
Peter Steinberger
36d953aab6
fix(exec): make Windows exec hints accurate and dynamic
2026-04-03 00:09:28 +09:00
Peter Steinberger
fff6333773
fix(exec): implement Windows argPattern allowlist flow
2026-04-03 00:09:28 +09:00
Leo Zhang
b6debb4382
fix(agent): close remaining internal-context leak paths ( #59649 )
...
* fix(status): strip internal runtime context from task detail surfaces
* fix(agent): narrow legacy internal-context stripping
* fix(tasks): sanitize user-facing task status surfaces
* fix(agent): close remaining internal-context leak paths
* fix(agent): harden internal context delimiter sanitization
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-04-02 23:45:06 +09:00
wangchunyue
b40ef364b7
fix: pin admin-only subagent gateway scopes ( #59555 ) (thanks @openperf)
...
* fix(agents): pin subagent gateway calls to admin scope to prevent scope-upgrade pairing failures
callSubagentGateway forwards params to callGateway without explicit scopes,
so callGatewayLeastPrivilege negotiates the minimum scope per method
independently. The first connection pairs the device at a lower tier and
every subsequent higher-tier call triggers a scope-upgrade handshake that
headless gateway-client connections cannot complete interactively
(close 1008 "pairing required").
Pin callSubagentGateway to operator.admin so the device is paired at the
ceiling scope on the very first (silent, local-loopback) handshake, avoiding
any subsequent scope-upgrade negotiation entirely.
Fixes #59428
* fix: pin admin-only subagent gateway scopes (#59555 ) (thanks @openperf)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-02 19:40:03 +05:30
Vincent Koc
b0f94a227b
refactor(providers): normalize transport policy wiring ( #59682 )
...
* refactor(providers): normalize transport policy wiring
* fix(providers): address transport policy review
* fix(providers): harden transport overrides
* fix(providers): keep env proxy tls separate
* fix(changelog): note provider transport policy hardening
2026-04-02 22:54:34 +09:00
Peter Steinberger
c678ae7e7a
feat(exec): default host exec to yolo
2026-04-02 14:52:51 +01:00
Vincent Koc
cfbad0a4f9
fix(providers): unify request policy resolution ( #59653 )
...
* fix(providers): unify request policy resolution
* fix(providers): preserve request config SDK contract
* fix(providers): harden request header policy
2026-04-02 21:42:11 +09:00
Vincent Koc
6eca1949d5
refactor(plugins): tighten web fetch provider boundary ( #59646 )
...
* refactor(plugins): tighten web fetch provider boundary
* fix(config): sync fetch secret parity and baseline
* fix(ci): enforce web fetch boundary guard
2026-04-02 20:53:57 +09:00
Vincent Koc
5abd5d889f
fix(providers): classify copilot native endpoints ( #59644 )
...
* fix(providers): classify copilot native endpoints
* fix(changelog): add copilot endpoint note
* fix(providers): handle copilot proxy hints
2026-04-02 20:51:46 +09:00
Vincent Koc
c405bcfa98
refactor(providers): centralize request capabilities ( #59636 )
...
* refactor(providers): centralize request capabilities
* fix(providers): harden comparable base url parsing
2026-04-02 20:26:22 +09:00
Vincent Koc
38d2faee20
!feat(plugins): add web fetch provider boundary ( #59465 )
...
* feat(plugins): add web fetch provider boundary
* feat(plugins): add web fetch provider modules
* refactor(web-fetch): remove remaining core firecrawl fetch config
* fix(web-fetch): address review follow-ups
* fix(web-fetch): harden provider runtime boundaries
* fix(web-fetch): restore firecrawl compare helper
* fix(web-fetch): restore env-based provider autodetect
* fix(web-fetch): tighten provider hardening
* fix(web-fetch): restore fetch autodetect and compat args
* chore(changelog): note firecrawl fetch config break
2026-04-02 20:25: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
707f5485b9
fix(ci): tighten thinking recovery stream types
2026-04-02 19:47:52 +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
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