diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index c0bf72ba8..727c30512 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "09c5669299aaa2e53bbf866c577ec242a9adff99", - "syncedAt": "2026-04-21T17:31:14.759Z" + "sha": "24db09a19bde499071e9a85497d753bd3158f51d", + "syncedAt": "2026-04-21T17:53:58.262Z" } diff --git a/docs/plugins/manifest.md b/docs/plugins/manifest.md index afdc0f59c..32b6ea286 100644 --- a/docs/plugins/manifest.md +++ b/docs/plugins/manifest.md @@ -510,7 +510,7 @@ Important examples: | Field | What it means | | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `openclaw.extensions` | Declares native plugin entrypoints. | -| `openclaw.setupEntry` | Lightweight setup-only entrypoint used during onboarding and deferred channel startup. | +| `openclaw.setupEntry` | Lightweight setup-only entrypoint used during onboarding, deferred channel startup, and read-only channel status/SecretRef discovery. | | `openclaw.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. | | `openclaw.channel.configuredState` | Lightweight configured-state checker metadata that can answer "does env-only setup already exist?" without loading the full channel runtime. | | `openclaw.channel.persistedAuthState` | Lightweight persisted-auth checker metadata that can answer "is anything already signed in?" without loading the full channel runtime. | @@ -524,6 +524,12 @@ Important examples: registry loading. Invalid values are rejected; newer-but-valid values skip the plugin on older hosts. +Channel plugins should provide `openclaw.setupEntry` when status, channel list, +or SecretRef scans need to identify configured accounts without loading the full +runtime. The setup entry should expose channel metadata plus setup-safe config, +status, and secrets adapters; keep network clients, gateway listeners, and +transport runtimes in the main extension entrypoint. + `openclaw.install.allowInvalidConfigRecovery` is intentionally narrow. It does not make arbitrary broken configs installable. Today it only allows install flows to recover from specific stale bundled-plugin upgrade failures, such as a diff --git a/docs/plugins/sdk-channel-plugins.md b/docs/plugins/sdk-channel-plugins.md index 8a7091af4..49e428757 100644 --- a/docs/plugins/sdk-channel-plugins.md +++ b/docs/plugins/sdk-channel-plugins.md @@ -139,6 +139,14 @@ If your channel supports env-driven setup or auth and generic startup/config flows should know those env names before runtime loads, declare them in the plugin manifest with `channelEnvVars`. Keep channel runtime `envVars` or local constants for operator-facing copy only. + +If your channel can appear in `status`, `channels list`, `channels status`, or +SecretRef scans before the plugin runtime starts, add `openclaw.setupEntry` in +`package.json`. That entrypoint should be safe to import in read-only command +paths and should return the channel metadata, setup-safe config adapter, status +adapter, and channel secret target metadata needed for those summaries. Do not +start clients, listeners, or transport runtimes from the setup entry. + `createOptionalChannelSetupWizard`, `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, and `splitSetupEntries`