mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:50:49 +00:00
fix(plugins): honor descriptor-only setup flag
Honor explicit setup.requiresRuntime: false as a descriptor-only setup contract while preserving omitted values as the legacy setup-api fallback path.
This commit is contained in:
@@ -71,10 +71,12 @@ or fallback behavior without changing runtime loading semantics.
|
||||
|
||||
Setup discovery now prefers descriptor-owned ids such as `setup.providers` and
|
||||
`setup.cliBackends` to narrow candidate plugins before it falls back to
|
||||
`setup-api` for plugins that still need setup-time runtime hooks. If more than
|
||||
one discovered plugin claims the same normalized setup provider or CLI backend
|
||||
id, setup lookup refuses the ambiguous owner instead of relying on discovery
|
||||
order.
|
||||
`setup-api` for plugins that still need setup-time runtime hooks. Explicit
|
||||
`setup.requiresRuntime: false` is a descriptor-only cutoff; omitted
|
||||
`requiresRuntime` keeps the legacy setup-api fallback for compatibility. If more
|
||||
than one discovered plugin claims the same normalized setup provider or CLI
|
||||
backend id, setup lookup refuses the ambiguous owner instead of relying on
|
||||
discovery order.
|
||||
|
||||
### What the loader caches
|
||||
|
||||
|
||||
@@ -327,6 +327,12 @@ narrows the candidate plugin and setup still needs richer setup-time runtime
|
||||
hooks, set `requiresRuntime: true` and keep `setup-api` in place as the
|
||||
fallback execution path.
|
||||
|
||||
Set `requiresRuntime: false` only when those descriptors are sufficient for the
|
||||
setup surface. OpenClaw treats explicit `false` as a descriptor-only contract
|
||||
and will not execute `setup-api` for setup lookup. Omitted `requiresRuntime`
|
||||
keeps legacy fallback behavior so existing plugins that added descriptors
|
||||
without the flag do not break.
|
||||
|
||||
Because setup lookup can execute plugin-owned `setup-api` code, normalized
|
||||
`setup.providers[].id` and `setup.cliBackends[]` values must stay unique across
|
||||
discovered plugins. Ambiguous ownership fails closed instead of picking a
|
||||
|
||||
Reference in New Issue
Block a user