From a25a6e4deba036137f15c5ba2392498243cdee66 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Sun, 5 Apr 2026 23:25:02 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@85d41cd2548094d935d6110353b16b5e76b261bf --- .openclaw-sync/source.json | 4 ++-- docs/plugins/manifest.md | 43 +++++++++++++++++++++++++++++--------- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 65d633670..43579e7ea 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "b0009ac34075aefc9507aa236849d433435538cb", - "syncedAt": "2026-04-05T23:18:10.526Z" + "sha": "85d41cd2548094d935d6110353b16b5e76b261bf", + "syncedAt": "2026-04-05T23:25:02.145Z" } diff --git a/docs/plugins/manifest.md b/docs/plugins/manifest.md index dc8b3a31d..f8d485638 100644 --- a/docs/plugins/manifest.md +++ b/docs/plugins/manifest.md @@ -335,16 +335,17 @@ Some pre-runtime plugin metadata intentionally lives in `package.json` under the 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.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. | -| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Install/update hints for bundled and externally published plugins. | -| `openclaw.install.defaultChoice` | Preferred install path when multiple install sources are available. | -| `openclaw.install.minHostVersion` | Minimum supported OpenClaw host version, using a semver floor like `>=2026.3.22`. | -| `openclaw.install.allowInvalidConfigRecovery` | Allows a narrow bundled-plugin reinstall recovery path when config is invalid. | -| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Lets setup-only channel surfaces load before the full channel plugin during startup. | +| Field | What it means | +| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `openclaw.extensions` | Declares native plugin entrypoints. | +| `openclaw.setupEntry` | Lightweight setup-only entrypoint used during onboarding and deferred channel startup. | +| `openclaw.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. | +| `openclaw.channel.persistedAuthState` | Lightweight persisted-auth checker metadata that can answer "is anything already signed in?" without loading the full channel runtime. | +| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Install/update hints for bundled and externally published plugins. | +| `openclaw.install.defaultChoice` | Preferred install path when multiple install sources are available. | +| `openclaw.install.minHostVersion` | Minimum supported OpenClaw host version, using a semver floor like `>=2026.3.22`. | +| `openclaw.install.allowInvalidConfigRecovery` | Allows a narrow bundled-plugin reinstall recovery path when config is invalid. | +| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Lets setup-only channel surfaces load before the full channel plugin during startup. | `openclaw.install.minHostVersion` is enforced during install and manifest registry loading. Invalid values are rejected; newer-but-valid values skip the @@ -357,6 +358,28 @@ missing bundled plugin path or a stale `channels.` entry for that same bundled plugin. Unrelated config errors still block install and send operators to `openclaw doctor --fix`. +`openclaw.channel.persistedAuthState` is package metadata for a tiny checker +module: + +```json +{ + "openclaw": { + "channel": { + "id": "whatsapp", + "persistedAuthState": { + "specifier": "./auth-presence", + "exportName": "hasAnyWhatsAppAuth" + } + } + } +} +``` + +Use it when setup, doctor, or configured-state flows need a cheap yes/no auth +probe before the full channel plugin loads. The target export should be a small +function that reads persisted state only; do not route it through the full +channel runtime barrel. + ## JSON Schema requirements - **Every plugin must ship a JSON Schema**, even if it accepts no config.