diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 29f77e721..4f5a6b4a3 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "27318663ef14c9f458e4711fde22b7035e647f30", - "syncedAt": "2026-05-02T14:41:16.671Z" + "sha": "da2a8bd6bbc52f7e2e26484f5cc581ea659d3e75", + "syncedAt": "2026-05-02T14:56:30.527Z" } diff --git a/docs/plugins/architecture-internals.md b/docs/plugins/architecture-internals.md index 31f93f99a..abd63cfd8 100644 --- a/docs/plugins/architecture-internals.md +++ b/docs/plugins/architecture-internals.md @@ -64,6 +64,12 @@ to narrow plugin loading before broader registry materialization: imports and startup opt-outs; plugins without startup metadata load only through narrower activation triggers +Request-time runtime preloads that ask for the broad `all` scope still derive an +explicit effective plugin id set from config, startup planning, configured +channels, slots, and auto-enable rules. If that derived set is empty, OpenClaw +loads an empty runtime registry instead of widening to every discoverable +plugin. + The activation planner exposes both an ids-only API for existing callers and a plan API for new diagnostics. Plan entries report why a plugin was selected, separating explicit `activation.*` planner hints from manifest ownership