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
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
Vincent Koc
efe9464f5f
fix(tasks): tighten task-flow CLI surface ( #59757 )
...
* fix(tasks): tighten task-flow CLI surface
* fix(tasks): sanitize task-flow CLI text output
2026-04-03 00:25:10 +09:00
Vincent Koc
d46240090a
test(tasks): add task-flow operator coverage ( #59683 )
2026-04-02 23:58:33 +09:00
Peter Steinberger
ef86edacf7
fix: harden plugin auto-enable empty config handling
2026-04-02 15:19:53 +01:00
Vincent Koc
bb3f17fc02
refactor(plugins): drop generic status report alias ( #59700 )
2026-04-02 22:59:25 +09:00
Vincent Koc
def5b954a8
feat(plugins): surface imported runtime state in status tooling ( #59659 )
...
* feat(plugins): surface imported runtime state
* fix(plugins): keep status imports snapshot-only
* fix(plugins): keep status snapshots manifest-only
* fix(plugins): restore doctor load checks
* refactor(plugins): split snapshot and diagnostics reports
* fix(plugins): track imported erroring modules
* fix(plugins): keep hot metadata where required
* fix(plugins): keep hot doctor and write targeting
* fix(plugins): track throwing module imports
2026-04-02 22:50:17 +09:00
Vincent Koc
3e4de956c0
!refactor(xai): move x_search config behind plugin boundary ( #59674 )
...
* refactor(xai): move x_search config behind plugin boundary
* chore(changelog): note x_search config migration
* fix(xai): include x_search migration helpers
2026-04-02 22:08:59 +09:00
Vincent Koc
6f91f87f3b
refactor(tasks): move task-flow ownership under tasks
2026-04-02 21:40:40 +09:00
Vincent Koc
9823833383
fix(plugins): preserve activation provenance ( #59641 )
...
* fix(plugins): preserve activation provenance
* fix(gateway): preserve activation reason metadata
* fix(plugins): harden activation state policy
2026-04-02 20:57:14 +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
f65da8711a
fix(plugin-sdk): narrow cli discord and matrix contract seams ( #59565 )
2026-04-02 19:40:04 +09:00
Mariano
2fa4c7cc61
TaskFlow: restore managed substrate ( #58930 )
...
Merged via squash.
Prepared head SHA: c99093838f
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-02 12:17:56 +02:00
Gustavo Madeira Santana
f69570f820
Exec approvals: fix policy source attribution ( #59367 )
...
Merged via squash.
Prepared head SHA: 974945a9f0
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 01:28:14 -04:00
Gustavo Madeira Santana
ba735d0158
Exec approvals: unify effective policy reporting and actions ( #59283 )
...
Merged via squash.
Prepared head SHA: d579b97a93
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 22:02:39 -04:00
Peter Steinberger
f6317fb747
fix(gateway): stop pinning node commands to pairing state
2026-04-01 18:27:06 +09:00
Peter Steinberger
db0cea5689
refactor(gateway): extract node pairing reconciliation
2026-04-01 18:02:31 +09:00
Andy
4d8c07b97c
feat(cron): add --tools flag for per-job tool allow-list ( #58504 )
...
Add toolsAllow field to cron agent-turn payloads, enabling users to
restrict which tool schemas are sent to the model for a given cron job.
When --tools is set:
- Only listed tools are included in the provider request
- promptMode is forced to 'minimal' (strips skills catalog, reply tags,
heartbeat, messaging, docs, memory, model aliases, silent replies)
- Dramatically reduces input tokens for small local models (~16K to ~800)
CLI surface:
- openclaw cron add --tools exec,read,write
- openclaw cron edit <id> --tools exec
- openclaw cron edit <id> --clear-tools (remove allow-list)
Closes #58435
Co-authored-by: andyk-ms <andyk-ms@users.noreply.github.com >
2026-03-31 21:09:17 -04:00
Peter Steinberger
ce58f55fe0
fix: require doctor migration for legacy web search config
2026-04-01 04:22:41 +09:00
Vincent Koc
1a313caff3
refactor(tasks): remove flow registry layer
2026-04-01 02:25:13 +09:00
Peter Steinberger
8bf8baef87
Revert "refactor: move tasks into bundled plugin"
...
This reverts commit c75f4695b7 .
2026-04-01 01:30:22 +09:00
Peter Steinberger
759d37635d
Revert "refactor: move tasks behind plugin-sdk seam"
...
This reverts commit da6e9bb76f .
2026-04-01 01:30:22 +09:00
Peter Steinberger
015ab98591
fix: restore ci status fast path and whatsapp tests
2026-03-31 16:21:55 +01:00
Peter Steinberger
0d7f1e2c84
feat(security): fail closed on dangerous skill installs
2026-03-31 23:27:20 +09:00
Peter Steinberger
da6e9bb76f
refactor: move tasks behind plugin-sdk seam
2026-03-31 15:22:09 +01:00
Peter Steinberger
c75f4695b7
refactor: move tasks into bundled plugin
2026-03-31 15:22:08 +01:00
Peter Steinberger
44b9936136
feat(plugins): add dangerous unsafe install override
2026-03-31 23:16:11 +09:00
Vincent Koc
f288ff3f9f
fix(tests): stabilize cron and blocked-flow assertions
2026-03-31 17:58:41 +09:00
Mariano
f86e5c0a08
ClawFlow: add linear flow control surface ( #58227 )
...
* ClawFlow: add linear flow control surface
* Flows: clear blocked metadata on resume
2026-03-31 10:08:50 +02:00
Josh Avant
788f56f30f
Secrets: hard-fail unsupported SecretRef policy and fix gateway restart token drift ( #58141 )
...
* Secrets: enforce C2 SecretRef policy and drift resolution
* Tests: add gateway auth startup/reload SecretRef runtime coverage
* Docs: sync C2 SecretRef policy and coverage matrix
* Config: hard-fail parent SecretRef policy writes
* Secrets: centralize unsupported SecretRef policy metadata
* Daemon: test service-env precedence for token drift refs
* Config: keep per-ref dry-run resolvability errors
* Docs: clarify config-set parent-object policy checks
* Gateway: fix drift fallback and schema-key filtering
* Gateway: align drift fallback with credential planner
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com >
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-03-31 02:37:31 -05:00
Gustavo Madeira Santana
20481d424c
cli: clarify cron channel help
2026-03-30 22:33:44 -04:00
Peter Steinberger
3f1d6fe147
test: speed up cli and command suites
2026-03-31 02:25:02 +01:00
Shakker
a3de1f5f55
Skills: prefer active OpenClaw paths
2026-03-30 16:10:13 +01:00
wangchunyue
16df3de098
fix: stabilize config default-leak landing tests ( #56834 ) (thanks @openperf)
...
* fix(config): prevent AJV schema defaults from leaking into persisted config
Fixes #56772 . Ensures that channel and plugin AJV validations respect the applyDefaults option, preventing runtime defaults from being written to openclaw.json during doctor/update flows.
* test: address review feedback on #56772 fix
- Split validation.channel-metadata.test.ts into applyDefaults true/false cases (fixes CI)
- Update io.write-config.test.ts regression test to use a mock plugin registry, ensuring it actually exercises the AJV default injection path
* fix(config): revert applyDefaults passthrough to prevent required-field regression
Codex-connector correctly identified that BlueBubbles channel schema marks
enrichGroupParticipantsFromContacts as both default:true and required.
Passing applyDefaults:false during write validation would cause required
checks to fail, breaking writeConfigFile entirely.
Reverted validation.ts to always use applyDefaults:true for channel/plugin
AJV validation. The protection against default leakage into persisted config
is fully handled by the persistCandidate change in io.ts (cfgToWrite uses
the pre-validation merge-patched value, not validated.config).
Updated validation.channel-metadata.test.ts to reflect this architecture.
* fix(config): apply legacy web-search normalization to persistCandidate
* fix: stabilize config default-leak landing tests (#56834 ) (thanks @openperf)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-30 09:19:17 +05:30
Vincent Koc
c52fac836c
feat(tasks): add status health and maintenance command ( #57423 )
...
* feat(tasks): add status health and maintenance command
* fix(tasks): address status and maintenance review feedback
2026-03-30 12:10:44 +09:00
Vincent Koc
e57b3618fc
feat(tasks): move task ledger to sqlite and add audit CLI ( #57361 )
...
* feat(tasks): move task ledger to sqlite
* feat(tasks): add task run audit command
* style(tasks): normalize audit command formatting
* fix(tasks): address audit summary and sqlite perms
* fix(tasks): avoid duplicate lost audit findings
2026-03-30 11:34:51 +09: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
bff6a6a9c1
test(config): align optimistic write helpers
2026-03-30 01:02:25 +01:00
Peter Steinberger
47216702f4
refactor(config): use source snapshots for config mutations
2026-03-30 01:02:25 +01:00
yuna78
0033f64e19
gateway: narrow already-running exit code ( #26718 )
...
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com >
2026-03-30 10:59:32 +11:00
Peter Steinberger
193f781fad
fix: stabilize ci and serial test gate
2026-03-30 00:43:01 +01:00
Peter Steinberger
2255e04b07
test(nodes): update coverage after exec consolidation
2026-03-30 00:41:06 +01:00
Peter Steinberger
5dae663ea4
refactor(nodes): remove nodes.run execution path
2026-03-30 00:41:06 +01:00
Peter Steinberger
a27ccee5d9
refactor(config): use source snapshots for config writes
2026-03-30 00:39:39 +01:00
Vincent Koc
53bcd5769e
refactor(tasks): unify the shared task run registry ( #57324 )
...
* refactor(tasks): simplify shared task run registry
* refactor(tasks): remove legacy task registry aliases
* fix(cron): normalize timeout task status and harden ledger writes
* fix(cron): keep manual runs resilient to ledger failures
2026-03-30 08:28:17 +09:00
Peter Steinberger
f928b81279
test(config): align snapshot fixtures and isolation
2026-03-30 00:17:23 +01:00
Peter Steinberger
89a4f2a34e
refactor(config): centralize runtime config state
2026-03-30 00:17:23 +01: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
168ab94eee
refactor(config): pin runtime snapshot and drop ttl cache
2026-03-29 22:57:31 +01:00