Peter Steinberger
c1ea0ae9c8
build: update deps and align pi sdk usage
2026-03-31 22:56:20 +09:00
Peter Steinberger
5a93344d82
fix: ship bundled runtime support packages
2026-03-31 14:25:32 +01:00
Jacob Tomlinson
2ce44ca6a1
fix(plugins): guard marketplace archive downloads ( #58267 )
...
* Plugins: guard marketplace archive downloads
* Plugins: harden marketplace download cleanup
* Plugins: bound marketplace archive downloads
* Plugins: harden marketplace archive failures
* Plugins: reject drive-relative marketplace archives
* Plugins: stream marketplace archive downloads
2026-03-31 12:59:42 +01:00
Vincent Koc
8dfbcaa200
fix(ci): default local low-memory checks
2026-03-31 15:05:04 +09:00
Ayaan Zaidi
3059eadca2
test: fix provider runtime mocks and test planner load shedding
2026-03-31 11:04:28 +05:30
Vincent Koc
ab8d999917
docs: fix sandbox scope default (session -> agent per resolveSandboxScope)
2026-03-31 14:24:19 +09:00
fuller-stack-dev
235908c30e
fix: support multi-kind plugins for dual slot ownership ( #57507 ) (thanks @fuller-stack-dev)
...
* feat(plugins): support multi-kind plugins for dual slot ownership
* fix: address review feedback on multi-kind plugin support
- Use sorted normalizeKinds() for kind-mismatch comparison in loader.ts
(fixes order-sensitive JSON.stringify for arrays)
- Derive slot-to-kind reverse mapping from SLOT_BY_KIND in slots.ts
(removes hardcoded ternary that would break for future slot types)
- Use shared hasKind() helper in config-state.ts instead of inline logic
* fix: don't disable dual-kind plugin that still owns another slot
When a new plugin takes over one slot, a dual-kind plugin that still
owns the other slot must not be disabled — otherwise context engine
resolution fails at runtime.
* fix: exempt dual-kind plugins from memory slot disablement
A plugin with kind: ["memory", "context-engine"] must stay enabled even
when it loses the memory slot, so its context engine role can still load.
* fix: address remaining review feedback
- Pass manifest kind (not hardcoded "memory") in early memory gating
- Extract kindsEqual() helper for DRY kind comparison in loader.ts
- Narrow slotKeyForPluginKind back to single PluginKind with JSDoc
- Reject empty array in parsePluginKind
- Add kindsEqual tests
* fix: use toSorted() instead of sort() per lint rules
* plugins: include default slot ownership in disable checks and gate dual-kind memory registration
2026-03-31 10:06:48 +05:30
Josh Avant
44674525f2
feat(tts): add structured provider diagnostics and fallback attempt analytics ( #57954 )
...
* feat(tts): add structured fallback diagnostics and attempt analytics
* docs(tts): document attempt-detail and provider error diagnostics
* TTS: harden fallback loops and share error helpers
* TTS: bound provider error-body reads
* tts: add double-prefix regression test and clean baseline drift
* tests(tts): satisfy error narrowing in double-prefix regression
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com >
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-03-30 22:55:28 -05:00
Josh Avant
c918ab4faf
fix(tts): restore 3.28 schema compatibility and fallback observability ( #57953 )
...
* fix(tts): restore legacy config compatibility and fallback observability
* fix(tts): surface fallback attempts in status and telephony
* test(tts): cover /tts audio to /tts status fallback flow
* docs(tts): align migration and fallback observability guidance
* TTS: redact fallback logs and scope legacy plugin migration
* Infra: dedupe UV_EXTRA_INDEX_URL in host env policy
* Docs: scope doctor TTS migration to voice-call
* voice-call: restore strict known TTS provider validation
2026-03-30 22:05:03 -05:00
Peter Steinberger
6b6ddcd2a6
test: speed up core runtime suites
2026-03-31 02:25:02 +01:00
Gustavo Madeira Santana
bbd495ed63
plugins: quiet scoped manifest id warnings
2026-03-30 19:35:09 -04:00
Dinakar Sarbada
62d6cfedee
fix(doctor/plugins): skip unused Matrix inspector loads and honor enabledByDefault startup plugins ( #57931 )
...
Merged via squash.
Prepared head SHA: 634794b954
Co-authored-by: dinakars777 <250428393+dinakars777@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-30 17:06:04 -04:00
Jacob Tomlinson
8deb9522f3
Guard marketplace and Ollama network requests ( #57850 )
...
* Plugins: guard marketplace and Ollama fetches
* Ollama: pin guarded host allowlist
2026-03-30 20:08:38 +01:00
Shakker
8746e2e216
fix: restore cli registry side-effect option
2026-03-30 18:10:08 +01:00
Ayaan Zaidi
1b557ffe65
fix(plugins): keep snapshot hook loads isolated
2026-03-30 22:00:54 +05:30
joelnishanth
f849b8de97
hooks: default hooks.internal.enabled to true so bundled hooks load on fresh installs
...
Made-with: Cursor
2026-03-30 22:00:54 +05:30
Jacob Tomlinson
7a953a5227
Plugins: block install when source scan fails ( #57729 )
...
* Plugins: block unsafe install scan fallthrough
* Tests: normalize install scanner formatting
* Plugins: avoid duplicate scan failure messaging
* Plugins: preserve hook install block codes
2026-03-30 15:36:08 +01:00
Gustavo Madeira Santana
0e078e8bc0
Runtime: dedupe typing lease logic
2026-03-30 00:58:04 -04:00
Gustavo Madeira Santana
16b452040b
Memory: fix QMD doctor contract typing
2026-03-30 00:54:41 -04:00
Gustavo Madeira Santana
b33a18e280
Runtime: remove dead telegram typing lease
2026-03-30 00:52:57 -04:00
Peter Steinberger
fec51572a3
fix: stabilize gate and extension boundary checks
2026-03-30 02:37:36 +01:00
Peter Steinberger
9857d40923
fix(runtime): stabilize image generation auth/runtime loading
2026-03-30 01:14:29 +01:00
Gustavo Madeira Santana
cc04153d01
Agents: reuse shared subagent hook runner type
2026-03-29 20:06:05 -04: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
193f781fad
fix: stabilize ci and serial test gate
2026-03-30 00:43:01 +01:00
Gustavo Madeira Santana
b0077904a7
Plugins: align CLI metadata loader behavior
2026-03-29 19:20:42 -04:00
Gustavo Madeira Santana
e5dac0c39e
CLI: keep root help plugin descriptors non-activating ( #57294 )
...
Merged via squash.
Prepared head SHA: c8da48f689
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-29 18:49:57 -04:00
Peter Steinberger
2e0682d930
refactor: finish decoupling plugin sdk seams
2026-03-29 22:42:06 +01:00
Peter Steinberger
d014f173f1
test: trim stale legacy coverage and repair mocks
2026-03-29 22:00:56 +01:00
Peter Steinberger
aed87a608e
fix: stabilize bundled plugin ci lanes
2026-03-30 05:35:53 +09:00
Gustavo Madeira Santana
9b4f26e70a
Plugins/CLI: add descriptor-backed lazy root command registration ( #57165 )
...
Merged via squash.
Prepared head SHA: ad1dee32eb
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-29 16:02:59 -04:00
Peter Steinberger
855878b4f0
fix: stabilize serial test suite
2026-03-30 04:46:04 +09:00
George Zhang
2607191d04
refactor(plugins): centralize before_install context shaping
2026-03-29 12:35:01 -07:00
George Zhang
b5d48d311c
test(plugins): cover before_install policy metadata
2026-03-29 12:35:01 -07:00
George Zhang
150faba8d1
plugins: enrich before_install policy context
2026-03-29 12:35:01 -07:00
George Zhang
ac3951d731
test(plugins): cover before_install install flows
2026-03-29 12:35:01 -07:00
George Zhang
7cd9957f62
plugins: add before_install hook for install scanners
2026-03-29 12:35:01 -07:00
Peter Steinberger
fc5fdcb091
refactor(plugin-sdk): remove bundled provider setup shims
2026-03-29 20:23:20 +01:00
George Zhang
e133924047
[codex] harden clawhub plugin publishing and install ( #56870 )
...
* fix: harden clawhub plugin publishing and install
* fix(process): preserve windows shim exit success
2026-03-29 11:59:19 -07:00
Peter Steinberger
56640a6725
fix(plugin-sdk): break vllm setup recursion
2026-03-29 17:55:09 +01:00
Keith Elliott
2d2e386b94
fix(matrix): resolve crypto bootstrap failure and multi-extension idHint warning ( #53298 )
...
Merged via squash.
Prepared head SHA: 6f5813ffff
Co-authored-by: keithce <2086282+keithce@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-29 12:38:10 -04:00
Peter Steinberger
edc58a6864
refactor: generalize provider transport hooks
2026-03-29 23:05:58 +09:00
Vincent Koc
7c50138f62
fix(plugins): keep built cli metadata scans lightweight
2026-03-29 17:55:17 +09:00
Peter Steinberger
8e0ab35b0e
refactor(plugins): decouple bundled plugin runtime loading
2026-03-29 09:10:38 +01:00
Peter Steinberger
f4d60478c9
test: reset plugin runtime state in optional tools tests
2026-03-29 08:52:12 +01:00
Peter Steinberger
c48e0f8e6a
style: normalize import order and formatting
2026-03-29 16:33:22 +09:00
Peter Steinberger
c664b67796
fix: apply Mistral compat across proxy transports
2026-03-29 16:32:31 +09: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
Jakub Rusz
7e7e45c2f3
feat(matrix): add draft streaming (edit-in-place partial replies) ( #56387 )
...
Merged via squash.
Prepared head SHA: 53e566bf30
Co-authored-by: jrusz <55534579+jrusz@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-29 01:43:02 -04:00