diff --git a/CHANGELOG.md b/CHANGELOG.md index 2202feb0362..18325c71e66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Docs: https://docs.openclaw.ai - Channels/Yuanbao: register the Tencent Yuanbao external channel plugin (`openclaw-plugin-yuanbao`) in the official channel catalog, contract suites, and community plugin docs, with a new `docs/channels/yuanbao.md` quick-start guide for WebSocket bot DMs and group chats. (#72756) Thanks @loongfay. - Channels/QQBot: add full group chat support (history tracking, @-mention gating, activation modes, per-group config, FIFO message queue with deliver debounce), C2C `stream_messages` streaming with a `StreamingController` lifecycle manager, unified `sendMedia` with chunked upload for large files, and refactor the engine into pipeline stages, focused outbound submodules, builtin slash-command modules, and explicit DI ports via `createEngineAdapters()`. (#70624) Thanks @cxyhhhhh. - Gateway/startup: pass the plugin metadata snapshot from config validation into plugin bootstrap so startup reuses one manifest product instead of rebuilding plugin metadata. Thanks @shakkernerd. +- ACP/runtime: add an opt-in bundled Coven backend extension that routes ACP coding sessions through a local Coven daemon when `acp.backend="coven"`, while preserving the existing ACPX backend as the default fallback path. Thanks @BunsDev. ## 2026.4.26 diff --git a/docs/tools/acp-agents-setup.md b/docs/tools/acp-agents-setup.md index 44787262c0f..563b8c80d78 100644 --- a/docs/tools/acp-agents-setup.md +++ b/docs/tools/acp-agents-setup.md @@ -186,6 +186,60 @@ Override the command or version in plugin config: See [Plugins](/tools/plugin). +## Optional Coven backend + +OpenClaw can also register a bundled, opt-in `coven` ACP backend for operators +who want ACP coding sessions supervised by a local [Coven](https://github.com/OpenCoven/coven) +daemon instead of launched directly through ACPX. + +This is intentionally an extension, not a core runtime path: + +- the default ACPX backend stays unchanged for normal installs; +- Coven has its own daemon, socket, session store, harness mapping, and project + boundary model; +- the bridge can be enabled, disabled, configured, and reviewed independently + through the plugin system; and +- OpenClaw remains responsible for ACP session routing, chat bindings, task + state, and fallback policy while Coven owns harness supervision. + +Minimal opt-in config: + +```json5 +{ + acp: { + enabled: true, + backend: "coven", + defaultAgent: "codex", + }, + plugins: { + entries: { + coven: { + enabled: true, + config: { + // Optional. Defaults to COVEN_HOME or ~/.coven. + covenHome: "~/.coven", + // Optional. Defaults to /coven.sock. + socketPath: "~/.coven/coven.sock", + // Optional. Used when Coven is unavailable or launch fails. + fallbackBackend: "acpx", + }, + }, + }, + }, +} +``` + +When selected, OpenClaw checks Coven daemon health over the configured Unix +socket before launching. A successful launch creates a Coven session and records +the Coven session id in the ACP runtime handle. If the health check or launch +fails, OpenClaw falls back to the configured direct ACP backend (`acpx` by +default) instead of breaking existing ACP behavior. + +The default harness mapping sends common ACP agent ids such as `codex`, +`claude`, `gemini`, and `opencode` to the matching Coven harness id. Override +`plugins.entries.coven.config.harnesses` only when your local Coven install uses +custom harness names. + ### Automatic dependency install When you install OpenClaw globally with `npm install -g openclaw`, the acpx