mappel-nv
53c29df2a9
Channel setup: ignore untrusted workspace shadows ( #59158 )
...
Keeps untrusted workspace channel metadata from overriding setup/login resolution for built-in channels. Workspace channel entries are only eligible during setup when the plugin is already explicitly trusted in config.
- Track discovered origin on channel catalog entries and add a setup-time catalog lookup that excludes workspace discoveries when needed
- Add resolver regression coverage for untrusted shadowing and trusted workspace overrides
Thanks @mappel-nv
2026-04-02 07:40:23 -07:00
Vincent Koc
d90c8db491
fix(plugin-sdk): narrow discord and matrix core seam imports ( #59557 )
2026-04-02 17:40:06 +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
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
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
Vincent Koc
da9ffad368
fix(channels): restore target parsing barrel seam
2026-04-01 22:46:10 +09:00
Peter Steinberger
25e2934809
refactor: route session target matching through plugin parsers
2026-04-01 13:42:57 +01:00
Peter Steinberger
016f065d7e
test: move remaining plugin-sdk guardrails to contracts
2026-04-01 02:46:50 +01:00
Peter Steinberger
5b8f0cf1d5
test: centralize inbound contract suites
2026-04-01 02:04:53 +01:00
Peter Steinberger
b59adf9d2a
test: fix outbound payload contract import
2026-04-01 02:02:07 +01:00
Peter Steinberger
051e31fb55
test: centralize outbound payload contracts
2026-04-01 02:01:48 +01:00
Peter Steinberger
aea016d02c
test: fix registry-backed contract import
2026-04-01 01:54:03 +01:00
Peter Steinberger
1f97f907b2
test: centralize registry-backed channel contracts
2026-04-01 01:53:23 +01:00
Peter Steinberger
7614c45980
test: fix channel catalog contract import
2026-04-01 01:52:01 +01:00
Peter Steinberger
ba5b373ad4
test: centralize channel catalog contracts
2026-04-01 01:51:26 +01:00
Peter Steinberger
c41df4873e
test: consolidate package manifest and core-extension contracts
2026-04-01 01:44:43 +01:00
Gustavo Madeira Santana
bea53d7a3f
Fix: move bootstrap session grammar into plugin-owned session-key surfaces ( #58400 )
...
Merged via squash.
Prepared head SHA: b062b18b03
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-31 19:41:01 -04:00
Peter Steinberger
43ef8a5a86
refactor(media): centralize outbound access plumbing
2026-04-01 00:32:53 +09:00
Peter Steinberger
3bb02d3338
fix(media): align outbound sends with fs read capability
2026-04-01 00:07:50 +09:00
Peter Steinberger
0ed7f1fd22
refactor: remove core WhatsApp runtime channel seam
2026-03-31 15:17:13 +01:00
Peter Steinberger
e8cb0b3659
fix: tighten live gateway empty-response skips and outbound harness typing
2026-03-31 15:17:13 +01:00
Gustavo Madeira Santana
8c0245f57b
fix(matrix): tighten DM invite promotion state ( #58099 )
...
Merged via squash.
Prepared head SHA: 6638d4b505
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-31 07:09:18 -04:00
Vincent Koc
cf3ae2612b
fix(ci): reduce slow channel test skew
2026-03-31 19:49:40 +09:00
Vincent Koc
ab8d999917
docs: fix sandbox scope default (session -> agent per resolveSandboxScope)
2026-03-31 14:24:19 +09:00
scoootscooob
9ff57ac479
refactor(exec): unify channel approvals and restore routing/auth ( #57838 )
...
* fix(exec): add shared approval runtime
* fix(exec): harden shared approval runtime
* fix(exec): guard approval expiration callbacks
* fix(exec): handle approval runtime races
* fix(exec): clean up failed approval deliveries
* fix(exec): restore channel approval routing
* fix(exec): scope telegram legacy approval fallback
* refactor(exec): centralize native approval delivery
* fix(exec): harden approval auth and account routing
* test(exec): align telegram approval auth assertions
* fix(exec): align approval rebase followups
* fix(exec): clarify plugin approval not-found errors
* fix(exec): fall back to session-bound telegram accounts
* fix(exec): detect structured telegram approval misses
* test(exec): align discord approval auth coverage
* fix(exec): ignore discord dm origin channel routes
* fix(telegram): skip self-authored message echoes
* fix(exec): keep implicit approval auth non-explicit
2026-03-30 15:49:02 -07:00
Patrick Yingxi Pan
1ad88b58d1
feat(matrix): add explicit channels.matrix.proxy config ( #56930 ) ( #56931 )
...
Merged via squash.
Prepared head SHA: facdf94b65
Co-authored-by: patrick-yingxi-pan <5210631+patrick-yingxi-pan@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-30 02:51:33 -04:00
Gustavo Madeira Santana
9d05db7be7
WhatsApp: move heartbeat recipient test into plugin
2026-03-30 00:46:50 -04:00
Gustavo Madeira Santana
6c66d1009b
BlueBubbles: move status-issue test into plugin
2026-03-30 00:45:22 -04:00
Vincent Koc
2849e613ee
fix(test): trim target parsing registry imports
2026-03-30 13:19:50 +09:00
Gustavo Madeira Santana
f44174cf61
Extensions: stabilize telegram registry contracts
2026-03-29 21:42:58 -04:00
Peter Steinberger
fec51572a3
fix: stabilize gate and extension boundary checks
2026-03-30 02:37:36 +01:00
Peter Steinberger
63cbc097b5
refactor(channels): route core through registered plugin capabilities
2026-03-30 01:03:42 +01:00
Peter Steinberger
471e059b69
refactor(plugin-sdk): remove channel-specific sdk shims
2026-03-30 01:03:24 +01:00
Peter Steinberger
3b878e6b86
refactor: move approval auth and payload hooks to generic channel capabilities
2026-03-30 08:46:44 +09:00
Peter Steinberger
8720070fe0
refactor: rename channel approval capabilities
2026-03-30 08:28:33 +09:00
Peter Steinberger
69eea2cb80
refactor: split approval auth delivery and rendering
2026-03-30 07:36:18 +09:00
Peter Steinberger
6d9a7224aa
refactor: unify approval command authorization
2026-03-30 07:06:29 +09:00
Peter Steinberger
2e0682d930
refactor: finish decoupling plugin sdk seams
2026-03-29 22:42:06 +01:00
Peter Steinberger
8e0ab35b0e
refactor(plugins): decouple bundled plugin runtime loading
2026-03-29 09:10:38 +01:00
Vignesh Natarajan
08b5206b19
chore(test): harden channel plugin registry against malformed runtime state
2026-03-29 00:47:39 -07:00
GodsBoy
bc9c074b2c
fix(channels): use pinned channel registry for outbound adapter resolution
...
loadChannelOutboundAdapter (via createChannelRegistryLoader) was reading
from getActivePluginRegistry() — the unpinned active registry that gets
replaced whenever loadOpenClawPlugins() runs (config schema reads, plugin
status queries, tool listings, etc.).
After replacement, the active registry may omit channel entries or carry
them in setup mode without outbound adapters, causing:
Outbound not configured for channel: telegram
The channel inbound path already uses the pinned registry
(getActivePluginChannelRegistry) which is frozen at gateway startup and
survives all subsequent registry replacements. This commit aligns the
outbound path to use the same pinned surface.
Adds a regression test that pins a registry with a telegram outbound
adapter, replaces the active registry with an empty one, then asserts
loadChannelOutboundAdapter still resolves the adapter.
Fixes #54745
Fixes #54013
2026-03-29 12:54:14 +05:30
Peter Steinberger
148a65fe90
refactor: share webhook channel status helpers
2026-03-29 02:11:22 +01:00
Peter Steinberger
02d4c1f2c3
refactor: derive channel metadata from plugin manifests
2026-03-28 17:17:10 +00:00
Peter Steinberger
48b2eb2604
test: fix media and channel regression expectations
2026-03-28 08:10:47 +00:00
Peter Steinberger
f4fb45f1ee
test: dedupe channel helper suites
2026-03-28 08:10:47 +00:00
Peter Steinberger
71a3ad153a
fix(ci): stabilize bundled capability contract loading
2026-03-28 07:33:19 +00:00
Peter Steinberger
f36354e401
test: dedupe pairing and channel contract suites
2026-03-28 07:31:40 +00:00
Peter Steinberger
d69f20f451
fix: harden bundled channel runtime bootstrap
2026-03-28 07:10:05 +00:00
Peter Steinberger
83135c31c9
refactor(acp): extract generic current conversation binding store
2026-03-28 05:53:07 +00:00
Peter Steinberger
687d23ae8d
test: restore extension boundary guardrails
2026-03-28 04:47:31 +00:00