openclaw-code-agent 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -16
- package/dist/index.js +141 -138
- package/openclaw.plugin.json +43 -24
- package/package.json +15 -9
- package/skills/code-agent-orchestration/SKILL.md +1 -0
package/README.md
CHANGED
|
@@ -16,17 +16,27 @@
|
|
|
16
16
|
- **Two harnesses, one control plane**. Claude Code and Codex share the same tools, routing, notification pipeline, and worktree strategy model while each backend uses its own native execution substrate.
|
|
17
17
|
- **One continuation primitive**. `agent_respond` is the only way to continue, approve, revise, or redirect an existing session. Forks still go through `agent_launch(..., resume_session_id=..., fork_session=true)`.
|
|
18
18
|
|
|
19
|
-
Need the
|
|
19
|
+
Need the ACPX vs Codex vs code-agent breakdown? See [docs/ACP-COMPARISON.md](docs/ACP-COMPARISON.md).
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Boundaries
|
|
22
22
|
|
|
23
|
-
`
|
|
23
|
+
`openclaw-code-agent` is separate from both OpenClaw's bundled `acpx` runtime plugin and OpenClaw's bundled `codex` plugin.
|
|
24
24
|
|
|
25
|
-
- **
|
|
26
|
-
- **
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
- **ACPX** is OpenClaw's ACP runtime backend for ACP session interoperability.
|
|
26
|
+
- **OpenClaw's bundled `codex` plugin** is the core native Codex provider/harness pair for embedded agent turns.
|
|
27
|
+
- **`openclaw-code-agent`** is the chat orchestration layer that adds plan approval, wake routing, session lifecycle, and worktree/merge/PR policy above its own native Claude Code and Codex harnesses.
|
|
28
|
+
|
|
29
|
+
The shared substrate is often the local `codex` command and Codex App Server, but the responsibilities are different. This plugin is not an ACP server and it does not depend on OpenClaw's bundled Codex provider to expose its own `codex` harness.
|
|
30
|
+
|
|
31
|
+
## New In 4.0.0
|
|
32
|
+
|
|
33
|
+
`4.0.0` is the messaging-contract cleanup release. Interactive direct notifications for Telegram and Discord now go through the same shared OpenClaw presentation contract, and the plugin drops the old Telegram legacy fallback plus the Discord-native component sender split.
|
|
34
|
+
|
|
35
|
+
- **Shared outbound interactive delivery**. Telegram and Discord direct notifications now use one `message.send --presentation` path.
|
|
36
|
+
- **Breaking compatibility floor update**. The plugin now requires OpenClaw `v2026.4.21` or newer.
|
|
37
|
+
- **Removed legacy sender paths**. The Telegram `--buttons` fallback and the custom Discord component sender path are gone; both providers now depend on the shared presentation contract.
|
|
38
|
+
- **State migration cleanup**. Persisted approval-prompt delivery state is now recorded as `direct-message`, while older `direct-telegram` entries still restore cleanly.
|
|
39
|
+
- **Model refresh**. Built-in defaults now recommend `anthropic/claude-sonnet-4-7` for Claude Code and `gpt-5.5` for Codex, with `gpt-5.5-pro` also included in the built-in Codex allowlist.
|
|
30
40
|
|
|
31
41
|
## From Prompt To Merged Branch
|
|
32
42
|
|
|
@@ -65,9 +75,11 @@ Once launched, use `goal_status` / `/goal_status` to inspect progress and `goal_
|
|
|
65
75
|
|
|
66
76
|
The differentiator is the plan-review loop. Claude Code and Codex both feed the same review UX now: the plugin receives a structured plan artifact, keeps execution blocked until approval, and resumes the same session with `agent_respond(..., approve=true)`. If the user asks for revisions, the revised submission becomes the new actionable review version for that same session, and `approve=true` resolves against that latest version instead of any stale earlier change-request state.
|
|
67
77
|
|
|
78
|
+
> Demo note: the GIFs below were recorded on an older build. They still show the overall flow correctly, but they do not include the newer explicit action buttons and some other current thread controls.
|
|
79
|
+
|
|
68
80
|
<img src="assets/ask-readme.gif" alt="Plan review in ask mode with inline approval controls">
|
|
69
81
|
|
|
70
|
-
*`ask` mode keeps the human in the loop: the plan lands back in the originating thread, and execution only starts after approval.*
|
|
82
|
+
*`ask` mode keeps the human in the loop: the plan lands back in the originating thread, and execution only starts after approval. The current UI now uses explicit buttons for approval and follow-through, even though the GIF predates that update.*
|
|
71
83
|
|
|
72
84
|
### Finish Cleanly
|
|
73
85
|
|
|
@@ -75,7 +87,7 @@ When the task is done, the plugin can leave the branch for review, merge it auto
|
|
|
75
87
|
|
|
76
88
|
<img src="assets/delegate-readme.gif" alt="Delegated worktree flow with autonomous follow-through">
|
|
77
89
|
|
|
78
|
-
*The main checkout stays clean. The branch lifecycle happens in the worktree, and the chat thread stays current on what was shipped.*
|
|
90
|
+
*The main checkout stays clean. The branch lifecycle happens in the worktree, and the chat thread stays current on what was shipped. The current UI includes newer buttons and lifecycle affordances that are not visible in this older recording.*
|
|
79
91
|
|
|
80
92
|
### Worktree Lifecycle
|
|
81
93
|
|
|
@@ -110,7 +122,19 @@ openclaw plugins enable openclaw-code-agent
|
|
|
110
122
|
openclaw gateway restart
|
|
111
123
|
```
|
|
112
124
|
|
|
113
|
-
This release targets the OpenClaw `v2026.4.
|
|
125
|
+
This release targets the OpenClaw `v2026.4.21` external plugin contract and is verified against the stable `v2026.4.23` build/test target. `package.json` now carries the plugin API compatibility and build metadata used by modern OpenClaw / ClawHub installs, and `openclaw.plugin.json` now advertises the plugin-owned command activation surface plus the onboarding metadata OpenClaw uses during plugin-config setup. Keep those metadata surfaces in sync when bumping the plugin release baseline.
|
|
126
|
+
|
|
127
|
+
The current manifest descriptors stay intentionally narrow: activation advertises only the chat commands this plugin owns, and setup stays minimal with `requiresRuntime: false`. First-run onboarding is driven by the manifest config schema and `uiHints`, not by provider/backend setup descriptors.
|
|
128
|
+
|
|
129
|
+
### First-Run Onboarding
|
|
130
|
+
|
|
131
|
+
In OpenClaw's Manual setup flow, the plugin should only ask for three first-run decisions:
|
|
132
|
+
|
|
133
|
+
- `defaultWorkdir`: the repo or workspace path you expect to launch from most often
|
|
134
|
+
- `defaultHarness`: whether your default harness is `claude-code` or `codex`
|
|
135
|
+
- `fallbackChannel`: an optional but recommended fully routable notification target for async updates
|
|
136
|
+
|
|
137
|
+
Everything else stays advanced/manual. In particular, `agentChannels`, per-harness model policy, permission defaults, and worktree policy are intentionally deferred until after the first successful launch.
|
|
114
138
|
|
|
115
139
|
Add a minimal config block under `plugins.entries["openclaw-code-agent"]` in `~/.openclaw/openclaw.json`:
|
|
116
140
|
|
|
@@ -121,17 +145,17 @@ Add a minimal config block under `plugins.entries["openclaw-code-agent"]` in `~/
|
|
|
121
145
|
"openclaw-code-agent": {
|
|
122
146
|
"enabled": true,
|
|
123
147
|
"config": {
|
|
148
|
+
"defaultWorkdir": "/home/user/project",
|
|
149
|
+
"defaultHarness": "claude-code",
|
|
124
150
|
"fallbackChannel": "telegram|my-bot|123456789",
|
|
125
|
-
"planApproval": "ask",
|
|
126
|
-
"defaultWorktreeStrategy": "off",
|
|
127
151
|
"harnesses": {
|
|
128
152
|
"claude-code": {
|
|
129
|
-
"defaultModel": "sonnet",
|
|
153
|
+
"defaultModel": "anthropic/claude-sonnet-4-7",
|
|
130
154
|
"allowedModels": ["sonnet", "opus"]
|
|
131
155
|
},
|
|
132
156
|
"codex": {
|
|
133
|
-
"defaultModel": "gpt-5.
|
|
134
|
-
"allowedModels": ["gpt-5.
|
|
157
|
+
"defaultModel": "gpt-5.5",
|
|
158
|
+
"allowedModels": ["gpt-5.5", "gpt-5.5-pro"],
|
|
135
159
|
"reasoningEffort": "medium"
|
|
136
160
|
}
|
|
137
161
|
}
|
|
@@ -142,6 +166,12 @@ Add a minimal config block under `plugins.entries["openclaw-code-agent"]` in `~/
|
|
|
142
166
|
}
|
|
143
167
|
```
|
|
144
168
|
|
|
169
|
+
You can leave the advanced settings at their defaults for the first run. The plugin defaults to:
|
|
170
|
+
|
|
171
|
+
- `permissionMode: "plan"`
|
|
172
|
+
- `planApproval: "ask"`
|
|
173
|
+
- `defaultWorktreeStrategy: "off"`
|
|
174
|
+
|
|
145
175
|
If you run Codex sessions, keep Codex on the ChatGPT auth path:
|
|
146
176
|
|
|
147
177
|
```toml
|
|
@@ -152,6 +182,17 @@ Put that in `~/.codex/config.toml`.
|
|
|
152
182
|
|
|
153
183
|
Codex approval behavior is fixed to the supported execution path, and OpenClaw handles review gates through `permissionMode` plus `planApproval`.
|
|
154
184
|
|
|
185
|
+
### Harness Availability Guidance
|
|
186
|
+
|
|
187
|
+
OpenClaw's generic plugin onboarding can prompt for `defaultHarness`, but it does not yet have a plugin-specific readiness panel. Use these checks when choosing the default:
|
|
188
|
+
|
|
189
|
+
- `codex`: choose this only when the `codex` command (or your `OPENCLAW_CODEX_APP_SERVER_COMMAND` override) is available and local Codex auth under `~/.codex` is already working
|
|
190
|
+
- `claude-code`: choose this when the bundled Claude SDK/CLI is installed and you expect Claude Code to be the main path on this machine
|
|
191
|
+
|
|
192
|
+
Codex readiness is the easier one to verify locally because the plugin depends on a resolvable command plus local auth files. Claude Code installation is verifiable, but authenticated usability may still require Claude-side login/account setup the first time you launch a session.
|
|
193
|
+
|
|
194
|
+
This is this plugin's own harness selection, not OpenClaw ACPX runtime selection and not the bundled core `codex` provider toggle. The real prerequisites are the local backend commands and local auth state.
|
|
195
|
+
|
|
155
196
|
Launch a first session:
|
|
156
197
|
|
|
157
198
|
```bash
|
|
@@ -209,6 +250,7 @@ The chat command surface mirrors the common workflows: `/agent`, `/agent_session
|
|
|
209
250
|
| [docs/REFERENCE.md](docs/REFERENCE.md) | Install, config, tools, commands, notifications, routing, worktrees, troubleshooting |
|
|
210
251
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Session manager, harness model, notification pipeline, persistence, worktree internals |
|
|
211
252
|
| [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) | Local setup, repo layout, build/test flow, extension points |
|
|
253
|
+
| [docs/SECURITY.md](docs/SECURITY.md) | Accepted subprocess surfaces, verifier-shell boundary, and current scanner findings |
|
|
212
254
|
| [docs/ACP-COMPARISON.md](docs/ACP-COMPARISON.md) | Current comparison with OpenClaw core ACP |
|
|
213
255
|
| [skills/code-agent-orchestration/SKILL.md](skills/code-agent-orchestration/SKILL.md) | Operational skill for orchestrating sessions from an agent |
|
|
214
256
|
| [CHANGELOG.md](CHANGELOG.md) | Release history |
|