Peter Steinberger
2ca97a7d48
docs(plugin-sdk): refresh seam cleanup docs
2026-04-03 10:45:11 +01:00
Peter Steinberger
f2d7a825b1
refactor(plugin-sdk): remove channel-specific sdk seams
2026-04-03 10:45:10 +01:00
Peter Steinberger
ad6fdf1e3c
test: suppress expected nodes run stderr noise
2026-04-03 10:44:20 +01:00
Peter Steinberger
1a68e55f47
test: stabilize Windows startup fallback daemon tests
2026-04-03 10:43:42 +01:00
Peter Steinberger
4bfa9260ce
fix(telegram): add dangerous private-network media opt-in
2026-04-03 18:39:17 +09:00
Peter Steinberger
f29c139a7a
test: deduplicate provider discovery contract suite
2026-04-03 18:32:15 +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
Vincent Koc
f5c3b409ea
Config: separate core/plugin baseline entries ( #60162 )
...
* Config: separate core/plugin baseline entries
* Config: split config baseline by kind
* Config: split generated baselines by kind
* chore(build): skip generated baseline shards in local tooling
* chore(build): forbid generated docs in npm pack
2026-04-03 18:26:23 +09:00
Ayaan Zaidi
a1d07796fc
fix(pairing): honor operator scopes for mixed bootstrap approvals
2026-04-03 14:51:24 +05:30
Ayaan Zaidi
a2b53522eb
fix(pairing): allow private lan mobile ws
2026-04-03 14:51:24 +05:30
Ayaan Zaidi
84add47525
fix(pairing): allow emulator ws setup urls
2026-04-03 14:51:24 +05:30
Ayaan Zaidi
acd5734aa9
fix(pairing): align mobile setup with secure endpoints
2026-04-03 14:51:24 +05:30
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
9e47c1a2c5
test: avoid windows task-owner tempdir hangs
2026-04-03 09:26:04 +01:00
Peter Steinberger
1849cf71c2
fix(image): skip inferred resolution for openai edits
2026-04-03 09:20:08 +01:00
Josh Lehman
2b28e75822
fix: enrich session_end lifecycle hooks ( #59715 )
...
Merged via squash.
Prepared head SHA: b3ef62b973
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-03 00:16:14 -07: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
b66197f932
test: reduce import wrapper reload churn
2026-04-03 07:14:58 +01:00
Peter Steinberger
376a042ba1
test: isolate runtime state in memory tests
2026-04-03 07:14:58 +01:00
Brad Groux
dda53a2ff8
test: update gateway.mode test to match default-to-local behavior ( #54801 ) ( #60094 )
...
The test previously asserted that a valid snapshot without gateway.mode
blocks startup. After defaulting gateway.mode to 'local' when unset,
the gateway should start successfully in this scenario — update the
test to verify the new expected behavior.
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com >
2026-04-03 00:59:51 -05:00
Brad Groux
9978d2276b
fix: default gateway.mode to 'local' when unset ( #54801 ) ( #60085 )
...
After v2026.3.24 introduced a gateway.mode guard, startup fails on
Windows (and other platforms) when the config file exists but doesn't
contain an explicit gateway.mode value. This happens after 'openclaw
onboard' writes a minimal config without gateway settings.
Default to 'local' when the mode is unset, restoring pre-3.24 behavior
where the gateway started without requiring an explicit mode.
Fixes #54801
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com >
2026-04-03 00:23:06 -05:00
Brad Groux
6e94b047e2
fix: improve WS handshake reliability on slow-startup environments ( #60075 )
...
* fix: import CHANNEL_IDS from leaf module to avoid TDZ on init (#48832 )
schema.ts and validation.ts imported CHANNEL_IDS from channels/registry.js,
which re-exports from channels/ids.js but also imports plugins/runtime.js.
When the bundler resolves this dependency graph, the re-exported CHANNEL_IDS
can be undefined at the point config/validation.ts evaluates (temporal dead
zone), causing 'CHANNEL_IDS is not iterable' on startup.
Fix: import CHANNEL_IDS directly from channels/ids.js (the leaf module with
zero heavy dependencies) and normalizeChatChannelId from channels/chat-meta.js.
Fixes #48832
* fix: improve WS handshake reliability on slow-startup environments (#48736 )
On Windows with large dist bundles (46MB/639 files), heavy synchronous
module loading blocks the event loop during CLI startup, preventing
timely processing of the connect.challenge frame and causing ~80%
handshake timeout failures.
Changes:
- Yield event loop (setImmediate) before starting WS connection in
callGateway to let pending I/O drain after heavy module loading
- Add OPENCLAW_CONNECT_CHALLENGE_TIMEOUT_MS env var override for
client-side connect challenge timeout (server already has
OPENCLAW_HANDSHAKE_TIMEOUT_MS)
- Include diagnostic timing in challenge timeout error messages
(elapsed vs limit) for easier debugging
- Add tests for env var override and resolution logic
---------
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com >
2026-04-03 00:21:14 -05:00
Brad Groux
0aa98a8e3b
fix: import CHANNEL_IDS from leaf module to avoid TDZ on init ( #48832 ) ( #60061 )
...
schema.ts and validation.ts imported CHANNEL_IDS from channels/registry.js,
which re-exports from channels/ids.js but also imports plugins/runtime.js.
When the bundler resolves this dependency graph, the re-exported CHANNEL_IDS
can be undefined at the point config/validation.ts evaluates (temporal dead
zone), causing 'CHANNEL_IDS is not iterable' on startup.
Fix: import CHANNEL_IDS directly from channels/ids.js (the leaf module with
zero heavy dependencies) and normalizeChatChannelId from channels/chat-meta.js.
Fixes #48832
Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com >
2026-04-03 00:20:17 -05:00
samzong
2b9981bd06
[Fix] Remove spurious plugin id mismatch warning ( #59185 )
...
Merged via squash.
Prepared head SHA: 82859a0f92
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 12:58:56 +08:00
Ayaan Zaidi
251fa72798
fix: emit passive hooks for mention-skipped group messages ( #60018 )
...
* fix(channels): emit passive hooks for mention-skipped group messages
* fix(channels): honor signal ingest overrides
* fix(channels): honor telegram ingest fallback
* fix: emit passive hooks for mention-skipped group messages (#60018 )
2026-04-03 10:14:48 +05:30
Peter Steinberger
e3674bcc04
test: streamline runtime wrapper test reloads
2026-04-03 04:41:38 +01:00
Peter Steinberger
ffd34f8896
test: reduce agent test import churn
2026-04-03 04:41:09 +01:00
Derek YU
5f6e3499f3
fix: detect PID recycling in gateway lock on Windows/macOS + startup progress ( #59843 )
...
Fix stale lock files from crashed gateway processes blocking new invocations on Windows/macOS. Detect PID recycling to avoid false positive lock conflicts, and add startup progress indicator.
Thanks @TonyDerek-dot
2026-04-02 22:07:35 -05:00
Neerav Makwana
7c7098fd1d
fix: keep inbound images readable on upgraded installs ( #59971 ) (thanks @neeravmakwana)
...
* fix(telegram): allow inbound media from config dir
Made-with: Cursor
* test: simplify local roots regression
* fix: keep inbound images readable on upgraded installs (#59971 ) (thanks @neeravmakwana)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-03 08:24:29 +05:30
Gustavo Madeira Santana
1efa923ab8
Matrix: add native exec approvals ( #58635 )
...
Merged via squash.
Prepared head SHA: d9f048e827
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 21:08:54 -04:00
Josh Lehman
ed8d5b3797
fix: add Telegram native progress placeholder opt-in for plugin commands ( #59300 )
...
Merged via squash.
Prepared head SHA: 4f5bc22a89
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-02 15:55:46 -07:00
Bruce MacDonald
5f4077cc7d
fix(ollama): prefer real cloud auth over local marker
2026-04-02 15:51:57 -07:00
Peter Steinberger
64581c655d
test: make plugin activation boundary env agnostic
2026-04-03 05:02:58 +09:00
Peter Steinberger
bff6025bde
test: refresh generated baselines
2026-04-03 04:54:59 +09:00
Peter Steinberger
694d12a90b
refactor: apply context visibility across channels
2026-04-03 04:34:57 +09:00
Peter Steinberger
35e1605147
feat: add configurable context visibility
2026-04-03 04:34:57 +09:00
Vincent Koc
883df8c6a8
fix(plugins): reuse runtime registries for web provider snapshots ( #59865 )
...
* fix(plugins): reuse runtime registries for web providers
* test(plugins): clarify runtime reuse intent
* chore(changelog): note web provider runtime reuse
2026-04-03 04:07:43 +09: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
d34bca3ce6
fix(plugins): reuse runtime registry for provider resolution ( #59856 )
...
* fix(plugins): reuse runtime registry for provider resolution
* test(plugins): align provider runtime helper names
2026-04-03 03:40:24 +09:00
Agustin Rivera
d631326c5e
fix(tailscale): gate test binary override ( #58468 )
...
* fix(tailscale): gate test binary override
* fix(changelog): note tailscale override hardening
* fix(changelog): drop tailscale note from pr
* chore: add changelog for tailscale test binary gating
---------
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-02 12:39:10 -06:00
Peter Steinberger
d74a12264a
fix: mirror bedrock runtime dep in root package
2026-04-02 19:26:56 +01: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
0ebb69b882
build: set release version to 2026.4.2
2026-04-02 19:09:58 +01:00
Peter Steinberger
38bd525888
test: align strict inline-eval awk denial expectation
2026-04-02 19:09:39 +01:00
Vincent Koc
7aa22959e4
refactor(tasks): rename registry hooks to observers ( #59829 )
2026-04-03 02:42:59 +09:00
Agustin Rivera
676b748056
Limit connect snapshot metadata to admin-scoped clients ( #58469 )
...
* fix(gateway): gate connect snapshot metadata by scope
* fix(gateway): clarify connect snapshot trust boundary
* fix(gateway): note connect snapshot change in changelog
* fix(gateway): remove changelog changes from PR
* chore: add changelog for scoped gateway snapshot metadata
---------
Co-authored-by: Devin Robison <drobison@nvidia.com >
2026-04-02 11:41:47 -06: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