Peter Steinberger
bf22e9461e
test: merge loader alias resolution cases
2026-03-17 16:21:58 +00:00
Peter Steinberger
444e3eb9e3
test: merge loader escape path cases
2026-03-17 16:21:58 +00:00
Peter Steinberger
790747478e
test: merge loader provenance path cases
2026-03-17 16:21:58 +00:00
Peter Steinberger
9c086f26a0
test: merge loader setup entry matrix
2026-03-17 16:21:58 +00:00
Peter Steinberger
34460f24b8
test: merge loader cache partition cases
2026-03-17 16:21:58 +00:00
Peter Steinberger
7c3efaeccf
test: merge bundle loader fixture cases
2026-03-17 16:21:58 +00:00
Chris Kimpton
f404ff32d5
tests: add missing useNoBundledPlugins() to bundle MCP loader test
...
The "treats bundle MCP as a supported bundle surface" test was missing
the useNoBundledPlugins() call present in all surrounding bundle plugin
tests. Without it, loadOpenClawPlugins() scanned and loaded the full
real bundled plugins directory on every call (with cache:false), causing
excessive memory pressure and an OOM crash on Linux CI, which manifested
as the test timing out at 120s.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-17 15:49:08 +05:30
Vincent Koc
06459ca0df
Agents: run bundle MCP tools in embedded Pi ( #48611 )
...
* Agents: run bundle MCP tools in embedded Pi
* Plugins: fix bundle MCP path resolution
* Plugins: warn on unsupported bundle MCP transports
* Commands: add embedded Pi MCP management
* Config: move MCP management to top-level config
2026-03-16 21:46:05 -07:00
Vincent Koc
9c80d717bc
Tests: pin loader command activation semantics
2026-03-16 18:40:50 -07:00
Harold Hunt
94c27f34a1
fix(plugins): keep built plugin loading on one module graph ( #48595 )
2026-03-16 20:58:58 -04:00
Josh Lehman
eeb140b4f0
fix(plugins): late-binding subagent runtime for non-gateway load paths ( #46648 )
...
Merged via squash.
Prepared head SHA: 44742652c9
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-16 14:27:54 -07:00
Tak Hoffman
2de28379dd
Plugins: remove public extension-api surface ( #48462 )
...
* Plugins: remove public extension-api surface
* Plugins: fix loader setup routing follow-ups
* CI: ignore non-extension helper dirs in extension-fast
* Docs: note extension-api removal as breaking
2026-03-16 15:51:08 -05:00
Gustavo Madeira Santana
96ed010a37
Gateway: gate deferred channel startup behind opt-in
2026-03-16 13:55:53 +00:00
Gustavo Madeira Santana
1b234b910b
Gateway: defer full channel plugins until after listen
2026-03-16 13:31:20 +00:00
Gustavo Madeira Santana
4c8853122a
Plugins: preserve lazy runtime provider resolution
2026-03-16 11:52:50 +00:00
Gustavo Madeira Santana
fdfa98cda8
Tests: isolate bundle surface fixtures
2026-03-16 11:03:17 +00:00
Gustavo Madeira Santana
d61c08efbb
Tests: scope Codex bundle loader fixture
2026-03-16 10:48:42 +00:00
Peter Steinberger
69c12c2b11
fix(plugins): resolve lazy runtime from package root
2026-03-16 05:12:30 +00:00
Peter Steinberger
0218045818
test: silence vitest warning noise
2026-03-15 21:02:31 -07:00
Peter Steinberger
acae0b60c2
perf(plugins): lazy-load channel setup entrypoints
2026-03-15 19:27:55 -07:00
Peter Steinberger
fb991e6f31
perf(plugins): lazy-load setup surfaces
2026-03-15 18:46:54 -07:00
Mason
f4cc93dc7d
fix(onboarding): use scoped plugin snapshots to prevent OOM on low-memory hosts ( #46763 )
...
* fix(onboarding): use scoped plugin snapshots to prevent OOM on low-memory hosts
Onboarding and channel-add flows previously loaded the full plugin registry,
which caused OOM crashes on memory-constrained hosts. This patch introduces
scoped, non-activating plugin registry snapshots that load only the selected
channel plugin without replacing the running gateway's global state.
Key changes:
- Add onlyPluginIds and activate options to loadOpenClawPlugins for scoped loads
- Add suppressGlobalCommands to plugin registry to avoid leaking commands
- Replace full registry reloads in onboarding with per-channel scoped snapshots
- Validate command definitions in snapshot loads without writing global registry
- Preload configured external plugins via scoped discovery during onboarding
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix(test): add return type annotation to hoisted mock to resolve TS2322
* fix(plugins): enforce cache:false invariant for non-activating snapshot loads
* Channels: preserve lazy scoped snapshot import after rebase
* Onboarding: scope channel snapshots by plugin id
* Catalog: trust manifest ids for channel plugin mapping
* Onboarding: preserve scoped setup channel loading
* Onboarding: restore built-in adapter fallback
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-15 16:52:08 -07:00
Peter Steinberger
dd40741e18
feat(plugins): add compatible bundle support
2026-03-15 16:08:50 -07:00
Vincent Koc
51631e5797
Plugins: reserve context engine ownership
2026-03-15 12:27:29 -07:00
Nimrod Gutman
e2dac5d5cb
fix(plugins): load bundled extensions from dist ( #47560 )
2026-03-15 21:16:27 +02:00
xiaoyi
bbb0c3e5d7
CLI/completion: fix generator OOM and harden plugin registries ( #45537 )
...
* fix: avoid OOM during completion script generation
* CLI/completion: fix PowerShell nested command paths
* CLI/completion: cover generated shell scripts
* Changelog: note completion generator follow-up
* Plugins: reserve shared registry names
---------
Co-authored-by: Xiaoyi <xiaoyi@example.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-15 12:14:30 -07:00
Vincent Koc
8d44b16b7c
Plugins: preserve scoped ids and reserve bundled duplicates ( #47413 )
...
* Plugins: preserve scoped ids and reserve bundled duplicates
* Changelog: add plugin scoped id note
* Plugins: harden scoped install ids
* Plugins: reserve scoped install dirs
* Plugins: migrate legacy scoped update ids
2026-03-15 09:07:10 -07:00
Tak Hoffman
f00db91590
fix(plugins): prefer explicit installs over bundled duplicates ( #46722 )
...
* fix(plugins): prefer explicit installs over bundled duplicates
* test(feishu): mock structured card sends in outbound tests
* fix(plugins): align duplicate diagnostics with loader precedence
2026-03-14 21:08:32 -05:00
Tak Hoffman
e81442ac80
Fix full local gate on main
2026-03-14 15:52:11 -05:00
Vincent Koc
bcbfbb831e
Plugins: fail fast on channel and binding collisions ( #45628 )
...
* Plugins: reject duplicate channel ids
* Bindings: reject duplicate adapter registration
* Plugins: fail on export id mismatch
2026-03-13 19:13:35 -07:00
Peter Steinberger
60d308cff0
test: fix CI type regressions
2026-03-13 19:53:40 +00:00
Vincent Koc
cc5168b5c3
Fix plugin update dependency failures and dedupe warnings
2026-03-13 11:26:14 -07:00
Peter Steinberger
3cf06f7939
docs(plugins): clarify workspace shadowing
2026-03-13 13:15:46 +00:00
Peter Steinberger
ec3c20d96d
test: harden plugin fixture permissions on macos
2026-03-13 03:13:25 +00:00
Peter Steinberger
21fa50f564
test: harden plugin env-scoped fixtures
2026-03-13 03:01:47 +00:00
Vincent Koc
3e28e10c2f
Plugins: require explicit trust for workspace-discovered plugins ( #44174 )
...
* Plugins: disable implicit workspace plugin auto-load
* Tests: cover workspace plugin trust gating
* Changelog: note workspace plugin trust hardening
* Plugins: keep workspace trust gate ahead of memory slot defaults
* Tests: cover workspace memory-slot trust bypass
2026-03-12 12:12:41 -04:00
Gustavo Madeira Santana
e6897c800b
Plugins: fix env-aware root resolution and caching ( #44046 )
...
Merged via squash.
Prepared head SHA: 6e8852a188
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-12 15:31:31 +00:00
Peter Steinberger
25d0aa7296
refactor: simplify plugin sdk compatibility aliases
2026-03-08 18:40:14 +00:00
Peter Steinberger
c70151e873
test: isolate legacy plugin-sdk root import check
2026-03-08 18:40:14 +00:00
Peter Steinberger
a007bed375
test: isolate plugin loader from mocked module cache
2026-03-08 18:40:14 +00:00
Peter Steinberger
e758d49361
refactor(plugins): extract alias candidate resolution
2026-03-08 00:48:56 +00:00
Peter Steinberger
bda035768f
fix(plugins): fall back to src plugin-sdk aliases
2026-03-08 00:18:45 +00:00
Peter Steinberger
ac86deccee
fix(gateway): harden plugin HTTP route auth
2026-03-07 19:55:06 +00:00
Vincent Koc
d4021f4b92
Plugins: clarify registerHttpHandler migration errors ( #36794 )
...
* Changelog: note plugin HTTP route migration diagnostics
* Tests: cover registerHttpHandler migration diagnostics
* Plugins: clarify registerHttpHandler migration errors
* Tests: cover registerHttpHandler diagnostic edge cases
* Plugins: tighten registerHttpHandler migration hint
2026-03-05 23:23:24 -05:00
Gustavo Madeira Santana
688b72e158
plugins: enforce prompt hook policy with runtime validation ( #36567 )
...
Merged via squash.
Prepared head SHA: 6b9d883b6a
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-05 18:15:54 -05:00
Gustavo Madeira Santana
802b9f6b19
Plugins: add root-alias shim and cache/docs updates
2026-03-04 01:20:48 -05:00
Gustavo Madeira Santana
1278ee9248
plugin-sdk: add channel subpaths and migrate bundled plugins
2026-03-03 22:07:03 -05:00
Igal Tabachnik
a4850b1b8f
fix(plugins): lazily initialize runtime and split plugin-sdk startup imports ( #28620 )
...
Merged via squash.
Prepared head SHA: 8bd7d6c13b
Co-authored-by: hmemcpy <601206+hmemcpy@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-03 19:58:48 -05:00
markfietje
49687d313c
fix(plugins): allow hardlinks for bundled plugins ( fixes #28175 , #28404 ) (openclaw#32119) thanks @markfietje
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: markfietje <4325889+markfietje@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 16:10:31 -06:00
Peter Steinberger
7a7eee920a
refactor(gateway): harden plugin http route contracts
2026-03-02 16:48:00 +00:00