Skip to content

feat(openclaw): opencode-acp ACP-runtime agent (#2229 mechanism 1) - #2237

Merged
dezren39 merged 1 commit into
mainfrom
feat/openclaw-acp-agent-2229
Oct 30, 2026
Merged

dezren39 merged 1 commit into
mainfrom
feat/openclaw-acp-agent-2229

Conversation

@dezren39

@dezren39 dezren39 commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Part of #2229 (mechanism 1 of 3). Drew's direction: build all three mechanisms.

Adds opencode-acp to agents.entries in home/openclaw/default.nix:

  • runtime.type = "acp", runtime.acp.agent = "opencode", backend = "acpx", mode = "oneshot", cwd = homeDir — validated against the pinned OpenClaw 2026.10.7 zod schema (AgentRuntimeSchema / AgentRuntimeAcpSchema; mode is an enum of persistent|oneshot).
  • Per the shipped runbook (docs/tools/acp-agents/runbook.md): an entry configured with runtime.type="acp" is a valid sessions_spawn({runtime:"acp"}) target, and OpenClaw uses runtime.acp.agent as the underlying harness id. Dispatch therefore lands in the fleet OpenCode (acpx override already wired), whose default model is opencode-route/workhorse.
  • heartbeat.every = "0m" for this agent: dispatch is explicit; it must not wake itself into OpenCode hourly.

Direct openclaw agent --agent opencode-acp turns remain embedded by design — this entry is the standing dispatch target/defaults holder, exercised via sessions_spawn (mechanism 2, #2229) and channel bindings.

Live verification on the laptop (scratch config + scratch gateway, pre-switch): the entry passes openclaw config get validation (initial mode="run" draft was rejected by the schema, corrected to oneshot). The end-to-end spawn proof rides mechanism 2's surface and is reported on #2229.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Mechanism 1 of #2229: an agents.entries entry whose runtime is the
OpenCode harness over acpx (runtime.type=acp, runtime.acp.agent=
opencode, backend acpx, mode oneshot, cwd home). Per the pinned
OpenClaw 2026.10.7 schema and docs (tools/acp-agents/runbook), an
entry configured this way is a valid sessions_spawn runtime=acp
target: OpenClaw resolves runtime.acp.agent as the underlying
harness id, so dispatchers can spawn agentId=opencode-acp and land
in the fleet OpenCode, whose default model is the workhorse route.
Heartbeat cadence disabled for this agent: dispatch is explicit.
@dezren39
dezren39 requested a review from a team as a code owner October 29, 2026 10:39
@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 12 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4b9f8f23-212e-4153-bb84-be4801b2676b
Commits

Reviewing files that changed from the base of the PR and between 24901e7 and 917d200.

Files selected for processing: 1
  • home/openclaw/default.nix
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T10:42:44.287336Z 917d200 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 917d200c2a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread home/openclaw/default.nix
# must never wake itself into OpenCode hourly.
opencode-acp = {
name = "OpenCode (ACP harness)";
heartbeat.every = "0m";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve heartbeat enrollment for the main agent

Adding this per-agent heartbeat block also disables the existing hourly heartbeat for main. In the pinned OpenClaw version, resolveHeartbeatAgentIds selects only agents with an explicit heartbeat block whenever any exist; main has none, so only opencode-acp is selected, and its 0m cadence disables execution. This silently stops the monitoring checks in workspace/HEARTBEAT.md despite agents.defaults.heartbeat.every = "1h". Explicitly enroll main as well so disabling the ACP agent does not disable monitoring. See the upstream enrollment logic.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant