diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 443d1b1d6..72d2e52de 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "9fb90f3d292136e12ff2aed2ee1596f1fe924687", - "syncedAt": "2026-05-02T02:34:25.268Z" + "sha": "4b8641094bb088988d7459fea3138e949f15ec09", + "syncedAt": "2026-05-02T02:34:47.837Z" } diff --git a/docs/plugins/sdk-overview.md b/docs/plugins/sdk-overview.md index 4b1553601..fa5474ac7 100644 --- a/docs/plugins/sdk-overview.md +++ b/docs/plugins/sdk-overview.md @@ -131,18 +131,18 @@ generic contracts; Plan Mode can use them, but so can approval workflows, workspace policy gates, background monitors, setup wizards, and UI companion plugins. -| Method | Contract it owns | -| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | -| `api.registerSessionExtension(...)` | Plugin-owned, JSON-compatible session state projected through Gateway sessions | -| `api.enqueueNextTurnInjection(...)` | Durable exactly-once context injected into the next agent turn for one session | -| `api.registerTrustedToolPolicy(...)` | Bundled/trusted pre-plugin tool policy that can block or rewrite tool params | -| `api.registerToolMetadata(...)` | Tool catalog display metadata without changing the tool implementation | -| `api.registerCommand(...)` | Scoped plugin commands; command results can set `continueAgent: true` | -| `api.registerControlUiDescriptor(...)` | Control UI contribution descriptors for session, tool, run, or settings surfaces | -| `api.registerRuntimeLifecycle(...)` | Cleanup callbacks for plugin-owned runtime resources on reset/delete/reload paths | -| `api.registerAgentEventSubscription(...)` | Sanitized event subscriptions for workflow state and monitors | -| `api.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)` | Per-run plugin scratch state cleared on terminal run lifecycle | -| `api.registerSessionSchedulerJob(...)` | Plugin-owned session scheduler job records with deterministic cleanup | +| Method | Contract it owns | +| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | +| `api.registerSessionExtension(...)` | Plugin-owned, JSON-compatible session state projected through Gateway sessions | +| `api.enqueueNextTurnInjection(...)` | Durable exactly-once context injected into the next agent turn for one session | +| `api.registerTrustedToolPolicy(...)` | Bundled/trusted pre-plugin tool policy that can block or rewrite tool params | +| `api.registerToolMetadata(...)` | Tool catalog display metadata without changing the tool implementation | +| `api.registerCommand(...)` | Scoped plugin commands; command results can set `continueAgent: true`; Discord native commands support `descriptionLocalizations` | +| `api.registerControlUiDescriptor(...)` | Control UI contribution descriptors for session, tool, run, or settings surfaces | +| `api.registerRuntimeLifecycle(...)` | Cleanup callbacks for plugin-owned runtime resources on reset/delete/reload paths | +| `api.registerAgentEventSubscription(...)` | Sanitized event subscriptions for workflow state and monitors | +| `api.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)` | Per-run plugin scratch state cleared on terminal run lifecycle | +| `api.registerSessionSchedulerJob(...)` | Plugin-owned session scheduler job records with deterministic cleanup | The contracts intentionally split authority: diff --git a/docs/tools/slash-commands.md b/docs/tools/slash-commands.md index c8df00b78..8a4492ede 100644 --- a/docs/tools/slash-commands.md +++ b/docs/tools/slash-commands.md @@ -67,6 +67,7 @@ There are two related systems: Registers native commands. Auto: on for Discord/Telegram; off for Slack (until you add slash commands); ignored for providers without native support. Set `channels.discord.commands.native`, `channels.telegram.commands.native`, or `channels.slack.commands.native` to override per provider (bool or `"auto"`). `false` clears previously registered commands on Discord/Telegram at startup. Slack commands are managed in the Slack app and are not removed automatically. +On Discord, native command specs may include `descriptionLocalizations`, which OpenClaw publishes as Discord `description_localizations` and includes in reconcile comparisons. Registers **skill** commands natively when supported. Auto: on for Discord/Telegram; off for Slack (Slack requires creating a slash command per skill). Set `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills`, or `channels.slack.commands.nativeSkills` to override per provider (bool or `"auto"`). @@ -237,6 +238,7 @@ User-invocable skills are also exposed as slash commands: - `/skill [input]` always works as the generic entrypoint. - skills may also appear as direct commands like `/prose` when the skill/plugin registers them. - native skill-command registration is controlled by `commands.nativeSkills` and `channels..commands.nativeSkills`. +- command specs can provide `descriptionLocalizations` for native surfaces that support localized descriptions, including Discord.