diff --git a/AGENT_README.md b/AGENT_README.md index 982e89c..f27f598 100644 --- a/AGENT_README.md +++ b/AGENT_README.md @@ -4,7 +4,7 @@ > Designed for AI agents and human contributors. > This document **complements** `AGENTS.md` (the repo's canonical agent guidelines file, symlinked as `CLAUDE.md`). Load both before starting work. When build/test commands differ, `AGENTS.md` is authoritative. > Tracks published OpenClaw releases. Current package version: check `package.json` (`"version"`). Gotchas are versioned — read only the sections that apply to the release you are targeting. -> **Current docs version: v2026.5.7-2 (2026-05-11).** Latest published upstream stable release: v2026.5.7 (published 2026-05-07 20:57:43 UTC). +> **Current docs version: v2026.5.7-3 (2026-05-13).** Latest published upstream stable release: v2026.5.7 (published 2026-05-07 20:57:43 UTC). --- diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 57a64a7..665d2a1 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -1,6 +1,6 @@ # OpenClaw — Master Architecture Document -> Updated: 2026-05-11 (docs snapshot: v2026.5.7-2) | Released baseline: GitHub `v2026.5.7` (published 2026-05-07 20:57:43 UTC) +> Updated: 2026-05-13 (docs snapshot: v2026.5.7-3) | Released baseline: GitHub `v2026.5.7` (published 2026-05-07 20:57:43 UTC) --- diff --git a/CHANGELOG.md b/CHANGELOG.md index cd1c16b..dd9a2db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,25 @@ Release policy: this file tracks published releases only (stable tags). It does --- +## OpenClaw v2026.5.7-3 — Docs Correction Summary + +> **Released:** 2026-05-13 (docs correction) | upstream GitHub release `v2026.5.7` unchanged, published 2026-05-07 20:57:43 UTC | **Validated against:** `v2026.5.7` + +### Corrections + +- **Channels (`v2026.5.7`):** corrected `telegram` error policy enum (`always|once|silent`) and the 14400000 ms (4 h) default cooldown; `feishu` outbound chunking default raised to `4000` chars and pairing default flagged; `matrix` streaming mode enum now lists `progress`; `tlon` private-network knob renamed to `network.dangerouslyAllowPrivateNetwork`; `bluebubbles` audio fallback default flipped to `true`; `qqbot` voice docs narrowed to STT-only (no TTS in v2026.5.7 source). +- **Providers (`v2026.5.7`):** Anthropic CLI default model bumped to `claude-opus-4-7`; OpenAI default TTS voice corrected from `coral` to `alloy`; Groq catalog example replaced (`Mixtral 8x7B` → `Mistral Saba 24B`); Mistral page stray Z.AI auth line removed; Moonshot endpoint table accepts both `MOONSHOT_API_KEY` and `KIMI_API_KEY`; Z.AI auth surface adds `Z_AI_API_KEY` alias; xAI legacy `grok-4.20-experimental-beta-0304-{reasoning,non-reasoning}` aliases restored; OpenRouter ref list reworded as illustrative (manifest has no static catalog). +- **Plugins/SDK (`v2026.5.7`):** added 5 missing source-only plugins (active-memory, device-pair, phone-control, talk-voice, thread-ownership) to plugin inventory and reference tables; SDK overview tightened to clarify channel-branded subpaths (`discord`, `matrix`, `telegram-account`, `telegram-command-config`) are bundled-plugin internal seams — Slack/Signal/WhatsApp seams do not exist. +- **Analysis snapshots:** restamped 10 analysis pages from the `v2026.5.5` baseline to `v2026.5.7` (2026-05-13), keeping in-body historical release-window references intact. +- **Tools and snippets:** documented the `timeout` clamp on `exec` poll and the `hex`/`literal` send-keys variants per `bash-tools.schemas.ts`; refreshed `snippets/plugin-publish/minimal-package.json` to the `v2026.5.7` plugin manifest compat/build baseline. +- **Prerelease exclusion note:** refreshed the stable-docs note to exclude current upstream prereleases through the latest GitHub-published prerelease `v2026.5.12-beta.3` (source tag `v2026.5.10-beta.6` exists in the upstream tree but is not published as a GitHub release). + +### Prerelease Note + +- Upstream `v2026.5.9-beta.1`, `v2026.5.10-beta.1` through `v2026.5.10-beta.5`, and `v2026.5.12-beta.1` through `v2026.5.12-beta.3` are prereleases. Source tag `v2026.5.10-beta.6` exists in the upstream git tree but is not a GitHub release. All are intentionally excluded from this stable docs snapshot. + +--- + ## OpenClaw v2026.5.7-2 — Docs Correction Summary > **Released:** 2026-05-11 (docs correction) | upstream GitHub release `v2026.5.7` unchanged, published 2026-05-07 20:57:43 UTC | **Validated against:** `v2026.5.7` diff --git a/README.md b/README.md index 0e5e48c..f4c5bc8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Comprehensive codebase documentation for [OpenClaw](https://github.com/openclaw/openclaw) — the open-source AI agent platform. **Latest published upstream stable release: v2026.5.7 (published 2026-05-07 20:57:43 UTC).** -**Current validated docs snapshot: v2026.5.7-2 (validated against `v2026.5.7`).** +**Current validated docs snapshot: v2026.5.7-3 (validated against `v2026.5.7`).** **Scope policy:** this repository documents published releases only. It does not document unreleased `main` branch changes, betas, or speculative future behavior. @@ -56,6 +56,7 @@ Both models independently confirmed the reference doc significantly reduced time ## Versioning Each documented release tracks an OpenClaw stable release line. Docs-only rereleases append a suffix like `-1`, `-2`, etc. while keeping the same validated upstream release; same-base npm correction builds are noted inside the matching docs snapshot rather than treated as separate published GitHub releases: +- `v2026.5.7-3` (2026-05-13, docs correction) - Same upstream baseline as `v2026.5.7`; corrected channel defaults and key names (telegram error policy enum/cooldown, feishu pairing/chunking, matrix streaming `progress`, tlon `network.dangerouslyAllowPrivateNetwork`, bluebubbles audio default, qqbot STT-only), provider catalogs and aliases (anthropic CLI default to `claude-opus-4-7`, OpenAI TTS default to `alloy`, Groq catalog example, Moonshot `KIMI_API_KEY` alias, Z.AI `Z_AI_API_KEY` alias, xAI legacy aliases, OpenRouter ref list wording), added 5 missing source-only plugin entries (active-memory, device-pair, phone-control, talk-voice, thread-ownership), tightened SDK channel-branded seam list, restamped 10 analysis pages from `v2026.5.5` baseline to `v2026.5.7`, documented `exec` `timeout` clamp and `hex`/`literal` send-keys variants, refreshed plugin-publish snippet to `v2026.5.7` baseline, and refreshed prerelease exclusion notes through `v2026.5.12-beta.3` (source tag `v2026.5.10-beta.6` excluded). No upstream stable behavior changes. - `v2026.5.7-2` (2026-05-11, docs correction) - Same upstream baseline as `v2026.5.7`; restored released `v2026.5.7` docs pages that were missing or stale in the publish repo across channels, providers, plugins, CLI, reference, automation, concepts, gateway, tools, and web docs; refreshed prerelease exclusion notes through source tag `v2026.5.10-beta.4`. No upstream stable behavior changes. - `v2026.5.7-1` (2026-05-11, docs correction) - Same upstream baseline as `v2026.5.7`; corrected release metadata for upstream `v2026.5.5` to use the GitHub `publishedAt` timestamp (`2026-05-06 09:00:55 UTC`), refreshed prerelease exclusion notes through `v2026.5.10-beta.3`, and corrected stable inventory counts to use the released `v2026.5.7` tag instead of unreleased branch data. No upstream behavior changes. - `v2026.5.7` (2026-05-10, docs release) - Synced snapshot to upstream `v2026.5.7` (published 2026-05-07 20:57:43 UTC; window `v2026.5.5..v2026.5.7`, 93 commits). Pure fix sync covering stable `v2026.5.6` and `v2026.5.7`. Key fixes: `openai/chat-latest` direct API-key model override; `cron list --json` and `cron show --json` computed `status`; `channels list` channel-only output plus `--all`; native command owner enforcement; admin-only global Active Memory toggles; stale skills snapshot clearing during `/new` and `sessions.reset`; before-tool-call authorization for inline skill dispatch; Tavily SecretRef runtime resolution; managed plugin npm override/peer handling; context-engine cache invalidation; Discord provider-prefixed channel targets and voice permission audits; compaction max-token clamping; cron doctor repair for invalid persisted model sentinels; Telegram access-group allowlists, polling watchdog, same-chat message delivery, and dotted provider-id model buttons; stale Gateway task/reload reconciliation; WhatsApp LID mapping and media directive dedupe; Codex/native approval decision validation; model provider replay and APNG/Gemini/custom-key fixes. diff --git a/analysis/agent-system.md b/analysis/agent-system.md index 19e7201..81a5ab1 100644 --- a/analysis/agent-system.md +++ b/analysis/agent-system.md @@ -1,7 +1,7 @@ # OpenClaw Codebase Analysis — Part 2: Agent System -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` ## 1. `src/agents/` — Agent Execution, Tool System, PI Tools diff --git a/analysis/channels.md b/analysis/channels.md index 1f6254a..8e495ea 100644 --- a/analysis/channels.md +++ b/analysis/channels.md @@ -1,7 +1,7 @@ # OpenClaw Channels & Messaging — Comprehensive Analysis -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` > Modules analyzed: `extensions/telegram`, `extensions/discord`, `extensions/signal`, `extensions/slack`, `extensions/whatsapp`, `extensions/imessage`, `extensions/line`, `extensions/feishu`, `extensions/matrix`, `extensions/msteams`, `extensions/bluebubbles`, plus shared `src/channels` and `src/routing` > **Release boundary note:** current released implementations for Telegram, Discord, Slack, Signal, WhatsApp, iMessage, Feishu, Matrix, and QQ Bot live under `extensions/*`. Shared channel infrastructure remains in `src/channels`, `src/routing`, `src/line`, and adjacent core modules. diff --git a/analysis/cli-config-infra.md b/analysis/cli-config-infra.md index 992da2a..9e6d125 100644 --- a/analysis/cli-config-infra.md +++ b/analysis/cli-config-infra.md @@ -1,7 +1,7 @@ # OpenClaw CLI, Config & Infrastructure — Comprehensive Analysis -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` | Cluster: CLI, CONFIG & INFRASTRUCTURE +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` | Cluster: CLI, CONFIG & INFRASTRUCTURE --- diff --git a/analysis/cli-tools-media.md b/analysis/cli-tools-media.md index 8f08b4e..c409f07 100644 --- a/analysis/cli-tools-media.md +++ b/analysis/cli-tools-media.md @@ -1,7 +1,7 @@ # OpenClaw Codebase Analysis — PART 4: CLI, TOOLS & MEDIA -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` ## Overview diff --git a/analysis/core-engine.md b/analysis/core-engine.md index 342b895..0856c1a 100644 --- a/analysis/core-engine.md +++ b/analysis/core-engine.md @@ -1,7 +1,7 @@ # OpenClaw Core Engine — Comprehensive Analysis -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` > Modules: agents (1,172 files), gateway (472 files), tasks (44 files), sessions (17 files), routing (11 files), hooks (52 files), context-engine (7 files) --- diff --git a/analysis/gateway-config-infra.md b/analysis/gateway-config-infra.md index 10798b2..94f1e10 100644 --- a/analysis/gateway-config-infra.md +++ b/analysis/gateway-config-infra.md @@ -1,8 +1,8 @@ # OpenClaw Core Architecture — Part 1: Module Analysis -**Updated:** 2026-05-06 | **Version:** v2026.5.5 -**Codebase:** OpenClaw release tag `v2026.5.5` +**Updated:** 2026-05-13 | **Version:** v2026.5.7 +**Codebase:** OpenClaw release tag `v2026.5.7` **Total lines (6 modules):** release-tag snapshot across gateway/config/infra/daemon/routing/types --- diff --git a/analysis/memory-cron-media.md b/analysis/memory-cron-media.md index f23d423..1e955a2 100644 --- a/analysis/memory-cron-media.md +++ b/analysis/memory-cron-media.md @@ -1,7 +1,7 @@ # OpenClaw Analysis: Memory, Cron & Media Cluster -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` > Release note: the current released memory surface is split across `src/memory-host-sdk/` and `extensions/memory-core/src/memory/`. Historical `src/memory/` references below describe the older pre-split layout and should be read as historical context only. --- diff --git a/analysis/security-plugins.md b/analysis/security-plugins.md index 3a5daaf..be88343 100644 --- a/analysis/security-plugins.md +++ b/analysis/security-plugins.md @@ -1,7 +1,7 @@ # OpenClaw Codebase Analysis — PART 5: Security, Plugins & Extensions -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` ## 1. `src/security/` — Security Guards, Audit, SSRF, Auth diff --git a/analysis/security-web-browser.md b/analysis/security-web-browser.md index b70f7e3..154eb8b 100644 --- a/analysis/security-web-browser.md +++ b/analysis/security-web-browser.md @@ -1,7 +1,7 @@ # OpenClaw Codebase Analysis: Security, Web Search, WhatsApp & Browser Cluster -> Updated: 2026-05-06 | Version: v2026.5.5 | Codebase: OpenClaw release tag `v2026.5.5` | Modules: security, web-search, extensions/whatsapp, extensions/browser, canvas-host, plugins, plugin-sdk, acp +> Updated: 2026-05-13 | Version: v2026.5.7 | Codebase: OpenClaw release tag `v2026.5.7` | Modules: security, web-search, extensions/whatsapp, extensions/browser, canvas-host, plugins, plugin-sdk, acp --- diff --git a/analysis/utils-support.md b/analysis/utils-support.md index 0668340..726c2a1 100644 --- a/analysis/utils-support.md +++ b/analysis/utils-support.md @@ -1,7 +1,7 @@ # Utilities & Support Modules — Comprehensive Analysis -**Updated:** 2026-05-06 | **Version:** v2026.5.5 | **Codebase:** OpenClaw release tag `v2026.5.5` +**Updated:** 2026-05-13 | **Version:** v2026.5.7 | **Codebase:** OpenClaw release tag `v2026.5.7` **Cluster:** Utilities & Support Modules **Total files analyzed:** stable release-line snapshot across 14 support modules plus `apps/macos` diff --git a/docs/channels/bluebubbles.md b/docs/channels/bluebubbles.md index f67ddf3..ccd4633 100644 --- a/docs/channels/bluebubbles.md +++ b/docs/channels/bluebubbles.md @@ -191,7 +191,7 @@ openclaw channels add bluebubbles --http-url http://192.168.1.100:1234 --passwor BlueBubbles group webhooks often only include raw participant addresses. If you want `GroupMembers` context to show local contact names instead, you can opt in to local Contacts enrichment on macOS: -- `channels.bluebubbles.enrichGroupParticipantsFromContacts = true` enables the lookup. Default: `false`. +- `channels.bluebubbles.enrichGroupParticipantsFromContacts = false` disables the lookup. Default: `true` (lookup enabled when running on macOS). - Lookups run only after group access, command authorization, and mention gating have allowed the message through. - Only unnamed phone participants are enriched. - Raw phone numbers remain as the fallback when no local match is found. @@ -555,7 +555,7 @@ Full configuration: [Configuration](/gateway/configuration) - `channels.bluebubbles.allowFrom`: DM allowlist (handles, emails, E.164 numbers, `chat_id:*`, `chat_guid:*`). - `channels.bluebubbles.groupPolicy`: `open | allowlist | disabled` (default: `allowlist`). - `channels.bluebubbles.groupAllowFrom`: Group sender allowlist. - - `channels.bluebubbles.enrichGroupParticipantsFromContacts`: On macOS, optionally enrich unnamed group participants from local Contacts after gating passes. Default: `false`. + - `channels.bluebubbles.enrichGroupParticipantsFromContacts`: On macOS, enrich unnamed group participants from local Contacts after gating passes. Default: `true`. - `channels.bluebubbles.groups`: Per-group config (`requireMention`, etc.). diff --git a/docs/channels/feishu.md b/docs/channels/feishu.md index 601e5ce..c70d6fd 100644 --- a/docs/channels/feishu.md +++ b/docs/channels/feishu.md @@ -44,7 +44,7 @@ Requires OpenClaw 2026.4.25 or above. Run `openclaw --version` to check. Upgrade Configure `dmPolicy` to control who can DM the bot: - `"pairing"` — unknown users receive a pairing code; approve via CLI -- `"allowlist"` — only users listed in `allowFrom` can chat (default: bot owner only) +- `"allowlist"` — only users listed in `allowFrom` can chat - `"open"` — allow public DMs only when `allowFrom` includes `"*"`; with restrictive entries, only matching users can chat - `"disabled"` — disable all DMs @@ -418,14 +418,14 @@ Full configuration: [Gateway configuration](/gateway/configuration) | `channels.feishu.accounts..appSecret` | App Secret | — | | `channels.feishu.accounts..domain` | Per-account domain override | `feishu` | | `channels.feishu.accounts..tts` | Per-account TTS override | `messages.tts` | -| `channels.feishu.dmPolicy` | DM policy | `allowlist` | -| `channels.feishu.allowFrom` | DM allowlist (open_id list) | [BotOwnerId] | +| `channels.feishu.dmPolicy` | DM policy | `pairing` | +| `channels.feishu.allowFrom` | DM allowlist (open_id list) | — | | `channels.feishu.groupPolicy` | Group policy | `allowlist` | | `channels.feishu.groupAllowFrom` | Group allowlist | — | | `channels.feishu.requireMention` | Require @mention in groups | `true` | | `channels.feishu.groups..requireMention` | Per-group @mention override; explicit IDs also admit the group in allowlist mode | inherited | | `channels.feishu.groups..enabled` | Enable/disable a specific group | `true` | -| `channels.feishu.textChunkLimit` | Message chunk size | `2000` | +| `channels.feishu.textChunkLimit` | Message chunk size | `4000` | | `channels.feishu.mediaMaxMb` | Media size limit | `30` | | `channels.feishu.streaming` | Streaming card output | `true` | | `channels.feishu.blockStreaming` | Completed-block reply streaming | `false` | diff --git a/docs/channels/matrix.md b/docs/channels/matrix.md index e366cd0..3fdf41f 100644 --- a/docs/channels/matrix.md +++ b/docs/channels/matrix.md @@ -214,6 +214,7 @@ form: | `"off"` (default) | Wait for the full reply, send once. `true` ↔ `"partial"`, `false` ↔ `"off"`. | | `"partial"` | Edit one normal text message in place as the model writes the current block. Stock Matrix clients may notify on the first preview, not the final edit. | | `"quiet"` | Same as `"partial"` but the message is a non-notifying notice. Recipients only get a notification once a per-user push rule matches the finalized edit (see below). | +| `"progress"` | Live "thinking" / tool-progress label edits in place (uses `streaming.progress.labels`, `maxLines`, `toolProgress`). Falls back to final-only delivery once the answer arrives. | `blockStreaming` is independent of `streaming`: diff --git a/docs/channels/qqbot.md b/docs/channels/qqbot.md index d914cd0..37a0a4f 100644 --- a/docs/channels/qqbot.md +++ b/docs/channels/qqbot.md @@ -186,14 +186,14 @@ The inbound queue is per peer. Group peers get a larger queue cap, keep human messages ahead of bot-authored chatter when full, and merge bursts of normal group messages into one attributed turn. Slash commands still run one by one. -### Voice (STT / TTS) +### Voice (STT) -STT and TTS support two-level configuration with priority fallback: +QQ inbound voice messages are transcribed when STT is configured. STT supports +two-level configuration with priority fallback: -| Setting | Plugin-specific | Framework fallback | -| ------- | -------------------------------------------------------- | ----------------------------- | -| STT | `channels.qqbot.stt` | `tools.media.audio.models[0]` | -| TTS | `channels.qqbot.tts`, `channels.qqbot.accounts..tts` | `messages.tts` | +| Setting | Plugin-specific | Framework fallback | +| ------- | -------------------- | ----------------------------- | +| STT | `channels.qqbot.stt` | `tools.media.audio.models[0]` | ```json5 { @@ -203,33 +203,17 @@ STT and TTS support two-level configuration with priority fallback: provider: "your-provider", model: "your-stt-model", }, - tts: { - provider: "your-provider", - model: "your-tts-model", - voice: "your-voice", - }, - accounts: { - "qq-main": { - tts: { - providers: { - openai: { voice: "shimmer" }, - }, - }, - }, - }, }, }, } ``` -Set `enabled: false` on either to disable. -Account-level TTS overrides use the same shape as `messages.tts` and deep-merge -over the channel/global TTS config. +Set `enabled: false` to disable STT. -Inbound QQ voice attachments are exposed to agents as audio media metadata while -keeping raw voice files out of generic `MediaPaths`. `[[audio_as_voice]]` plain -text replies synthesize TTS and send a native QQ voice message when TTS is -configured. +Inbound QQ voice attachments are exposed to agents as audio media metadata +while keeping raw voice files out of generic `MediaPaths`. The QQ Bot channel +does not currently support outbound TTS; native voice replies are not produced +even if framework-level `messages.tts` is configured. Outbound audio upload/transcode behavior can also be tuned with `channels.qqbot.audioFormatPolicy`: diff --git a/docs/channels/telegram.md b/docs/channels/telegram.md index 5a332d9..1b9b704 100644 --- a/docs/channels/telegram.md +++ b/docs/channels/telegram.md @@ -843,8 +843,8 @@ When the agent encounters a delivery or provider error, Telegram can either repl | Key | Values | Default | Description | | ----------------------------------- | ----------------- | ------- | ----------------------------------------------------------------------------------------------- | -| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` sends a friendly error message to the chat. `silent` suppresses error replies entirely. | -| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Minimum time between error replies to the same chat. Prevents error spam during outages. | +| `channels.telegram.errorPolicy` | `always`, `once`, `silent` | `always` | `always` replies on every error. `once` sends one notice then suppresses repeats until cooldown elapses. `silent` suppresses error replies entirely. | +| `channels.telegram.errorCooldownMs` | number (ms) | `14400000` | Minimum time between error replies to the same chat (4 h default). Prevents error spam during outages. | Per-account, per-group, and per-topic overrides are supported (same inheritance as other Telegram config keys). @@ -852,7 +852,7 @@ Per-account, per-group, and per-topic overrides are supported (same inheritance { channels: { telegram: { - errorPolicy: "reply", + errorPolicy: "always", errorCooldownMs: 120000, groups: { "-1001234567890": { diff --git a/docs/channels/tlon.md b/docs/channels/tlon.md index 2301b17..e2922c8 100644 --- a/docs/channels/tlon.md +++ b/docs/channels/tlon.md @@ -74,7 +74,9 @@ you must explicitly opt in: channels: { tlon: { url: "http://localhost:8080", - allowPrivateNetwork: true, + network: { + dangerouslyAllowPrivateNetwork: true, + }, }, }, } @@ -255,7 +257,7 @@ Common failures: - **DMs ignored**: sender not in `dmAllowlist` and no `ownerShip` configured for approval flow. - **Group messages ignored**: channel not discovered or sender not authorized. -- **Connection errors**: check ship URL is reachable; enable `allowPrivateNetwork` for local ships. +- **Connection errors**: check ship URL is reachable; set `network.dangerouslyAllowPrivateNetwork: true` for local ships. - **Auth errors**: verify login code is current (codes rotate). ## Configuration reference @@ -268,7 +270,7 @@ Provider options: - `channels.tlon.ship`: bot's Urbit ship name (e.g. `~sampel-palnet`). - `channels.tlon.url`: ship URL (e.g. `https://sampel-palnet.tlon.network`). - `channels.tlon.code`: ship login code. -- `channels.tlon.allowPrivateNetwork`: allow localhost/LAN URLs (SSRF bypass). +- `channels.tlon.network.dangerouslyAllowPrivateNetwork`: allow localhost/LAN URLs (SSRF bypass). - `channels.tlon.ownerShip`: owner ship for approval system (always authorized). - `channels.tlon.dmAllowlist`: ships allowed to DM (empty = none). - `channels.tlon.autoAcceptDmInvites`: auto-accept DMs from allowlisted ships. diff --git a/docs/plugins/plugin-inventory.md b/docs/plugins/plugin-inventory.md index db1490b..8fcfd82 100644 --- a/docs/plugins/plugin-inventory.md +++ b/docs/plugins/plugin-inventory.md @@ -172,6 +172,11 @@ uninstall, and publishing commands. | Plugin | Description | Distribution | Surface | | ------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------ | -------------------- | -| [qa-channel](/plugins/reference/qa-channel) | Adds the QA Channel surface for sending and receiving OpenClaw messages. | `@openclaw/qa-channel`
source checkout only | channels: qa-channel | -| [qa-lab](/plugins/reference/qa-lab) | OpenClaw QA lab plugin with private debugger UI and scenario runner. | `@openclaw/qa-lab`
source checkout only | plugin | -| [qa-matrix](/plugins/reference/qa-matrix) | Matrix QA transport runner and substrate. | `@openclaw/qa-matrix`
source checkout only | plugin | +| [active-memory](/plugins/reference/active-memory) | Runs a bounded blocking memory sub-agent before eligible conversational replies and injects relevant memory into prompt context. | `@openclaw/active-memory`
source checkout only | plugin | +| [device-pair](/plugins/reference/device-pair) | Generate setup codes and approve device pairing requests. | `@openclaw/device-pair`
source checkout only | plugin | +| [phone-control](/plugins/reference/phone-control) | Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry. | `@openclaw/phone-control`
source checkout only | plugin | +| [qa-channel](/plugins/reference/qa-channel) | Adds the QA Channel surface for sending and receiving OpenClaw messages. | `@openclaw/qa-channel`
source checkout only | channels: qa-channel | +| [qa-lab](/plugins/reference/qa-lab) | OpenClaw QA lab plugin with private debugger UI and scenario runner. | `@openclaw/qa-lab`
source checkout only | plugin | +| [qa-matrix](/plugins/reference/qa-matrix) | Matrix QA transport runner and substrate. | `@openclaw/qa-matrix`
source checkout only | plugin | +| [talk-voice](/plugins/reference/talk-voice) | Manage Talk voice selection (list/set). | `@openclaw/talk-voice`
source checkout only | plugin | +| [thread-ownership](/plugins/reference/thread-ownership) | Prevents multiple agents from responding in the same Slack thread (HTTP calls to slack-forwarder ownership API). | `@openclaw/thread-ownership`
source checkout only | plugin | diff --git a/docs/plugins/reference.md b/docs/plugins/reference.md index 250354f..34463a9 100644 --- a/docs/plugins/reference.md +++ b/docs/plugins/reference.md @@ -18,6 +18,7 @@ pnpm plugins:inventory:gen | Plugin | Description | Distribution | Surface | | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [acpx](/plugins/reference/acpx) | Embedded ACP runtime backend with plugin-owned session and transport management. | `@openclaw/acpx`
npm; ClawHub | skills | +| [active-memory](/plugins/reference/active-memory) | Runs a bounded blocking memory sub-agent before eligible conversational replies and injects relevant memory into prompt context. | `@openclaw/active-memory`
source checkout only | plugin | | [alibaba](/plugins/reference/alibaba) | Adds video generation provider support. | `@openclaw/alibaba-provider`
included in OpenClaw | contracts: videoGenerationProviders | | [amazon-bedrock](/plugins/reference/amazon-bedrock) | Adds Amazon Bedrock model provider support to OpenClaw. | `@openclaw/amazon-bedrock-provider`
included in OpenClaw | providers: amazon-bedrock; contracts: memoryEmbeddingProviders | | [amazon-bedrock-mantle](/plugins/reference/amazon-bedrock-mantle) | Adds Amazon Bedrock Mantle model provider support to OpenClaw. | `@openclaw/amazon-bedrock-mantle-provider`
included in OpenClaw | providers: amazon-bedrock-mantle | @@ -39,6 +40,7 @@ pnpm plugins:inventory:gen | [deepgram](/plugins/reference/deepgram) | Adds media understanding provider support. Adds realtime transcription provider support. | `@openclaw/deepgram-provider`
included in OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders | | [deepinfra](/plugins/reference/deepinfra) | Adds DeepInfra model provider support to OpenClaw. | `@openclaw/deepinfra-provider`
included in OpenClaw | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders | | [deepseek](/plugins/reference/deepseek) | Adds DeepSeek model provider support to OpenClaw. | `@openclaw/deepseek-provider`
included in OpenClaw | providers: deepseek | +| [device-pair](/plugins/reference/device-pair) | Generate setup codes and approve device pairing requests. | `@openclaw/device-pair`
source checkout only | plugin | | [diagnostics-otel](/plugins/reference/diagnostics-otel) | OpenClaw diagnostics OpenTelemetry exporter. | `@openclaw/diagnostics-otel`
npm; ClawHub: `clawhub:@openclaw/diagnostics-otel` | plugin | | [diagnostics-prometheus](/plugins/reference/diagnostics-prometheus) | OpenClaw diagnostics Prometheus exporter. | `@openclaw/diagnostics-prometheus`
npm; ClawHub: `clawhub:@openclaw/diagnostics-prometheus` | plugin | | [diffs](/plugins/reference/diffs) | Read-only diff viewer and file renderer for agents. | `@openclaw/diffs`
npm; ClawHub | contracts: tools; skills | @@ -93,6 +95,7 @@ pnpm plugins:inventory:gen | [openrouter](/plugins/reference/openrouter) | Adds OpenRouter model provider support to OpenClaw. | `@openclaw/openrouter-provider`
included in OpenClaw | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders | | [openshell](/plugins/reference/openshell) | Sandbox backend powered by OpenShell with mirrored local workspaces and SSH-based command execution. | `@openclaw/openshell-sandbox`
included in OpenClaw | plugin | | [perplexity](/plugins/reference/perplexity) | Adds web search provider support. | `@openclaw/perplexity-plugin`
included in OpenClaw | contracts: webSearchProviders | +| [phone-control](/plugins/reference/phone-control) | Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry. | `@openclaw/phone-control`
source checkout only | plugin | | [qa-channel](/plugins/reference/qa-channel) | Adds the QA Channel surface for sending and receiving OpenClaw messages. | `@openclaw/qa-channel`
source checkout only | channels: qa-channel | | [qa-lab](/plugins/reference/qa-lab) | OpenClaw QA lab plugin with private debugger UI and scenario runner. | `@openclaw/qa-lab`
source checkout only | plugin | | [qa-matrix](/plugins/reference/qa-matrix) | Matrix QA transport runner and substrate. | `@openclaw/qa-matrix`
source checkout only | plugin | @@ -109,9 +112,11 @@ pnpm plugins:inventory:gen | [stepfun](/plugins/reference/stepfun) | Adds StepFun, StepFun Plan model provider support to OpenClaw. | `@openclaw/stepfun-provider`
included in OpenClaw | providers: stepfun, stepfun-plan | | [synology-chat](/plugins/reference/synology-chat) | Adds the Synology Chat channel surface for sending and receiving OpenClaw messages. | `@openclaw/synology-chat`
npm; ClawHub | channels: synology-chat | | [synthetic](/plugins/reference/synthetic) | Adds Synthetic model provider support to OpenClaw. | `@openclaw/synthetic-provider`
included in OpenClaw | providers: synthetic | +| [talk-voice](/plugins/reference/talk-voice) | Manage Talk voice selection (list/set). | `@openclaw/talk-voice`
source checkout only | plugin | | [tavily](/plugins/reference/tavily) | Adds agent-callable tools. Adds web search provider support. | `@openclaw/tavily-plugin`
included in OpenClaw | contracts: tools, webSearchProviders; skills | | [telegram](/plugins/reference/telegram) | Adds the Telegram channel surface for sending and receiving OpenClaw messages. | `@openclaw/telegram`
included in OpenClaw | channels: telegram | | [tencent](/plugins/reference/tencent) | Adds Tencent TokenHub model provider support to OpenClaw. | `@openclaw/tencent-provider`
included in OpenClaw | providers: tencent-tokenhub | +| [thread-ownership](/plugins/reference/thread-ownership) | Prevents multiple agents from responding in the same Slack thread (HTTP calls to slack-forwarder ownership API). | `@openclaw/thread-ownership`
source checkout only | plugin | | [tlon](/plugins/reference/tlon) | Adds the Tlon channel surface for sending and receiving OpenClaw messages. | `@openclaw/tlon`
npm; ClawHub | channels: tlon; contracts: tools; skills | | [together](/plugins/reference/together) | Adds Together model provider support to OpenClaw. | `@openclaw/together-provider`
included in OpenClaw | providers: together; contracts: videoGenerationProviders | | [tokenjuice](/plugins/reference/tokenjuice) | Compacts exec and bash tool results with tokenjuice reducers. | `@openclaw/tokenjuice`
included in OpenClaw | contracts: agentToolResultMiddleware | diff --git a/docs/plugins/sdk-overview.md b/docs/plugins/sdk-overview.md index b3a253d..306c21e 100644 --- a/docs/plugins/sdk-overview.md +++ b/docs/plugins/sdk-overview.md @@ -48,7 +48,8 @@ pattern for new plugins. Do not import provider- or channel-branded convenience seams (for example - `openclaw/plugin-sdk/slack`, `.../discord`, `.../signal`, `.../whatsapp`). + `openclaw/plugin-sdk/discord` or `.../matrix`). Only a few channel-branded + subpaths exist at all, and they are bundled-plugin internal seams. Bundled plugins compose generic SDK subpaths inside their own `api.ts` / `runtime-api.ts` barrels; core consumers should either use those plugin-local barrels or add a narrow generic SDK contract when a need is truly diff --git a/docs/providers/anthropic.md b/docs/providers/anthropic.md index 159cf96..b28f8cd 100644 --- a/docs/providers/anthropic.md +++ b/docs/providers/anthropic.md @@ -61,7 +61,7 @@ Anthropic's current public docs: ```json5 { env: { ANTHROPIC_API_KEY: "sk-ant-..." }, - agents: { defaults: { model: { primary: "anthropic/claude-opus-4-6" } } }, + agents: { defaults: { model: { primary: "anthropic/claude-opus-4-7" } } }, } ``` @@ -134,7 +134,7 @@ Override per-message with `/think:` or in model params: agents: { defaults: { models: { - "anthropic/claude-opus-4-6": { + "anthropic/claude-opus-4-7": { params: { thinking: "adaptive" }, }, }, @@ -165,7 +165,7 @@ OpenClaw supports Anthropic's prompt caching feature for API-key auth. agents: { defaults: { models: { - "anthropic/claude-opus-4-6": { + "anthropic/claude-opus-4-7": { params: { cacheRetention: "long" }, }, }, @@ -182,9 +182,9 @@ OpenClaw supports Anthropic's prompt caching feature for API-key auth. { agents: { defaults: { - model: { primary: "anthropic/claude-opus-4-6" }, + model: { primary: "anthropic/claude-opus-4-7" }, models: { - "anthropic/claude-opus-4-6": { + "anthropic/claude-opus-4-7": { params: { cacheRetention: "long" }, }, }, @@ -255,7 +255,7 @@ OpenClaw supports Anthropic's prompt caching feature for API-key auth. | Property | Value | | -------------- | -------------------- | - | Default model | `claude-opus-4-6` | + | Default model | `claude-opus-4-7` | | Supported input | Images, PDF documents | When an image or PDF is attached to a conversation, OpenClaw automatically @@ -271,7 +271,7 @@ OpenClaw supports Anthropic's prompt caching feature for API-key auth. agents: { defaults: { models: { - "anthropic/claude-opus-4-6": { + "anthropic/claude-opus-4-7": { params: { context1m: true }, }, }, @@ -293,7 +293,7 @@ OpenClaw supports Anthropic's prompt caching feature for API-key auth. - `anthropic/claude-opus-4.7` and its `claude-cli` variant have a 1M context + `anthropic/claude-opus-4-7` and its `claude-cli` variant have a 1M context window by default — no `params.context1m: true` needed. diff --git a/docs/providers/groq.md b/docs/providers/groq.md index d9d2103..c994b03 100644 --- a/docs/providers/groq.md +++ b/docs/providers/groq.md @@ -65,7 +65,7 @@ rows, or check | **Llama 3.3 70B Versatile** | General-purpose, large context | | **Llama 3.1 8B Instant** | Fast, lightweight | | **Gemma 2 9B** | Compact, efficient | -| **Mixtral 8x7B** | MoE architecture, strong reasoning | +| **Mistral Saba 24B** | Multilingual reasoning | Use `openclaw models list --all --provider groq` for the manifest-backed Groq diff --git a/docs/providers/mistral.md b/docs/providers/mistral.md index de0f156..188f50c 100644 --- a/docs/providers/mistral.md +++ b/docs/providers/mistral.md @@ -160,7 +160,6 @@ matching `sampleRate` only if your upstream stream is already raw PCM. - Mistral auth uses `MISTRAL_API_KEY`. - Provider base URL defaults to `https://api.mistral.ai/v1`. - Onboarding default model is `mistral/mistral-large-latest`. - - Z.AI uses Bearer auth with your API key. diff --git a/docs/providers/moonshot.md b/docs/providers/moonshot.md index d947e35..12bc376 100644 --- a/docs/providers/moonshot.md +++ b/docs/providers/moonshot.md @@ -383,8 +383,8 @@ Config lives under `plugins.entries.moonshot.config.webSearch`: | Provider | Model ref prefix | Endpoint | Auth env var | | ---------- | ---------------- | ----------------------------- | ------------------- | - | Moonshot | `moonshot/` | `https://api.moonshot.ai/v1` | `MOONSHOT_API_KEY` | - | Moonshot CN| `moonshot/` | `https://api.moonshot.cn/v1` | `MOONSHOT_API_KEY` | + | Moonshot | `moonshot/` | `https://api.moonshot.ai/v1` | `MOONSHOT_API_KEY` or `KIMI_API_KEY` | + | Moonshot CN| `moonshot/` | `https://api.moonshot.cn/v1` | `MOONSHOT_API_KEY` or `KIMI_API_KEY` | | Kimi Coding| `kimi/` | Kimi Coding endpoint | `KIMI_API_KEY` | | Web search | N/A | Same as Moonshot API region | `KIMI_API_KEY` or `MOONSHOT_API_KEY` | diff --git a/docs/providers/openai.md b/docs/providers/openai.md index a44f4ed..f804517 100644 --- a/docs/providers/openai.md +++ b/docs/providers/openai.md @@ -516,7 +516,7 @@ Legacy `plugins.entries.openai.config.personality` is still read as a compatibil | Setting | Config path | Default | |---------|------------|---------| | Model | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` | - | Voice | `messages.tts.providers.openai.voice` | `coral` | + | Voice | `messages.tts.providers.openai.voice` | `alloy` | | Speed | `messages.tts.providers.openai.speed` | (unset) | | Instructions | `messages.tts.providers.openai.instructions` | (unset, `gpt-4o-mini-tts` only) | | Format | `messages.tts.providers.openai.responseFormat` | `opus` for voice notes, `mp3` for files | @@ -533,7 +533,7 @@ Legacy `plugins.entries.openai.config.personality` is still read as a compatibil messages: { tts: { providers: { - openai: { model: "gpt-4o-mini-tts", voice: "coral" }, + openai: { model: "gpt-4o-mini-tts", voice: "alloy" }, }, }, }, diff --git a/docs/providers/openrouter.md b/docs/providers/openrouter.md index f0064bc..e3ab937 100644 --- a/docs/providers/openrouter.md +++ b/docs/providers/openrouter.md @@ -52,7 +52,8 @@ Model refs follow the pattern `openrouter//`. For the full list available providers and models, see [/concepts/model-providers](/concepts/model-providers). -Bundled fallback examples: +Example refs (illustrative — the OpenRouter manifest has no static catalog; +any model OpenRouter exposes is reachable): | Model ref | Notes | | --------------------------------- | ---------------------------- | diff --git a/docs/providers/xai.md b/docs/providers/xai.md index c468afe..be532cd 100644 --- a/docs/providers/xai.md +++ b/docs/providers/xai.md @@ -117,6 +117,8 @@ Legacy aliases still normalize to the canonical bundled ids: | `grok-4-1-fast-reasoning` | `grok-4-1-fast` | | `grok-4.20-reasoning` | `grok-4.20-beta-latest-reasoning` | | `grok-4.20-non-reasoning` | `grok-4.20-beta-latest-non-reasoning` | +| `grok-4.20-experimental-beta-0304-reasoning` | `grok-4.20-beta-latest-reasoning` | +| `grok-4.20-experimental-beta-0304-non-reasoning` | `grok-4.20-beta-latest-non-reasoning` | ## Features diff --git a/docs/providers/zai.md b/docs/providers/zai.md index 1651954..75ef9b7 100644 --- a/docs/providers/zai.md +++ b/docs/providers/zai.md @@ -11,7 +11,7 @@ for authentication. Create your API key in the Z.AI console. OpenClaw uses the ` with a Z.AI API key. - Provider: `zai` -- Auth: `ZAI_API_KEY` +- Auth: `ZAI_API_KEY` or `Z_AI_API_KEY` - API: Z.AI Chat Completions (Bearer auth) ## Getting started diff --git a/docs/snippets/plugin-publish/minimal-package.json b/docs/snippets/plugin-publish/minimal-package.json index 45c7b27..b1b79b3 100644 --- a/docs/snippets/plugin-publish/minimal-package.json +++ b/docs/snippets/plugin-publish/minimal-package.json @@ -5,12 +5,12 @@ "openclaw": { "extensions": ["./index.ts"], "compat": { - "pluginApi": ">=2026.3.24-beta.2", - "minGatewayVersion": "2026.3.24-beta.2" + "pluginApi": ">=2026.5.7", + "minGatewayVersion": "2026.5.7" }, "build": { - "openclawVersion": "2026.3.24-beta.2", - "pluginSdkVersion": "2026.3.24-beta.2" + "openclawVersion": "2026.5.7", + "pluginSdkVersion": "2026.5.7" } } } diff --git a/docs/tools/exec.md b/docs/tools/exec.md index 24a9c9a..79e32a2 100644 --- a/docs/tools/exec.md +++ b/docs/tools/exec.md @@ -218,18 +218,24 @@ Background + poll: ```json {"tool":"exec","command":"npm run build","yieldMs":1000} -{"tool":"process","action":"poll","sessionId":""} +{"tool":"process","action":"poll","sessionId":"","timeout":5000} ``` Polling is for on-demand status, not waiting loops. If automatic completion wake -is enabled, the command can wake the session when it emits output or fails. +is enabled, the command can wake the session when it emits output or fails. The +optional `timeout` on `poll` is the maximum milliseconds to wait for new output +before returning; it is clamped to `30000`. -Send keys (tmux-style): +Send keys (tmux-style). The `process send-keys` action accepts one of three +input forms — `keys` (array of tmux key tokens), `hex` (array of hex byte +strings), or `literal` (single literal string): ```json {"tool":"process","action":"send-keys","sessionId":"","keys":["Enter"]} {"tool":"process","action":"send-keys","sessionId":"","keys":["C-c"]} {"tool":"process","action":"send-keys","sessionId":"","keys":["Up","Up","Enter"]} +{"tool":"process","action":"send-keys","sessionId":"","hex":["1b","5b","41"]} +{"tool":"process","action":"send-keys","sessionId":"","literal":"hello world"} ``` Submit (send CR only):