mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
fix: code/cli acpx reliability 20260304 (#34020)
* agents: switch claude-cli defaults to bypassPermissions * agents: add claude-cli default args coverage * agents: emit watchdog stall system event for cli runs * agents: test cli watchdog stall system event * acpx: fallback to sessions new when ensure returns no ids * acpx tests: mock sessions new fallback path * acpx tests: cover ensure-empty fallback flow * skills: clarify claude print mode without pty * docs: update cli-backends claude default args * docs: refresh cli live test default args * gateway tests: align live claude args defaults * changelog: credit claude/acpx reliability fixes * Agents: normalize legacy Claude permission flag overrides * Tests: cover legacy Claude permission override normalization * Changelog: note legacy Claude permission flag auto-normalization * ACPX: fail fast when ensure/new return no session IDs * ACPX tests: support empty sessions new fixture output * ACPX tests: assert ensureSession failure when IDs missing * CLI runner: scope watchdog heartbeat wake to session * CLI runner tests: assert session-scoped watchdog wake * Update CHANGELOG.md
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: coding-agent
|
||||
description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.'
|
||||
description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.'
|
||||
metadata:
|
||||
{
|
||||
"openclaw": { "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
|
||||
@@ -11,18 +11,27 @@ metadata:
|
||||
|
||||
Use **bash** (with optional background mode) for all coding agent work. Simple and effective.
|
||||
|
||||
## ⚠️ PTY Mode Required!
|
||||
## ⚠️ PTY Mode: Codex/Pi/OpenCode yes, Claude Code no
|
||||
|
||||
Coding agents (Codex, Claude Code, Pi) are **interactive terminal applications** that need a pseudo-terminal (PTY) to work correctly. Without PTY, you'll get broken output, missing colors, or the agent may hang.
|
||||
|
||||
**Always use `pty:true`** when running coding agents:
|
||||
For **Codex, Pi, and OpenCode**, PTY is still required (interactive terminal apps):
|
||||
|
||||
```bash
|
||||
# ✅ Correct - with PTY
|
||||
# ✅ Correct for Codex/Pi/OpenCode
|
||||
bash pty:true command:"codex exec 'Your prompt'"
|
||||
```
|
||||
|
||||
# ❌ Wrong - no PTY, agent may break
|
||||
bash command:"codex exec 'Your prompt'"
|
||||
For **Claude Code** (`claude` CLI), use `--print --permission-mode bypassPermissions` instead.
|
||||
`--dangerously-skip-permissions` with PTY can exit after the confirmation dialog.
|
||||
`--print` mode keeps full tool access and avoids interactive confirmation:
|
||||
|
||||
```bash
|
||||
# ✅ Correct for Claude Code (no PTY needed)
|
||||
cd /path/to/project && claude --permission-mode bypassPermissions --print 'Your task'
|
||||
|
||||
# For background execution: use background:true on the exec tool
|
||||
|
||||
# ❌ Wrong for Claude Code
|
||||
bash pty:true command:"claude --dangerously-skip-permissions 'task'"
|
||||
```
|
||||
|
||||
### Bash Tool Parameters
|
||||
@@ -158,11 +167,11 @@ gh pr comment <PR#> --body "<review content>"
|
||||
## Claude Code
|
||||
|
||||
```bash
|
||||
# With PTY for proper terminal output
|
||||
bash pty:true workdir:~/project command:"claude 'Your task'"
|
||||
# Foreground
|
||||
bash workdir:~/project command:"claude --permission-mode bypassPermissions --print 'Your task'"
|
||||
|
||||
# Background
|
||||
bash pty:true workdir:~/project background:true command:"claude 'Your task'"
|
||||
bash workdir:~/project background:true command:"claude --permission-mode bypassPermissions --print 'Your task'"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -222,7 +231,9 @@ git worktree remove /tmp/issue-99
|
||||
|
||||
## ⚠️ Rules
|
||||
|
||||
1. **Always use pty:true** - coding agents need a terminal!
|
||||
1. **Use the right execution mode per agent**:
|
||||
- Codex/Pi/OpenCode: `pty:true`
|
||||
- Claude Code: `--print --permission-mode bypassPermissions` (no PTY required)
|
||||
2. **Respect tool choice** - if user asks for Codex, use Codex.
|
||||
- Orchestrator mode: do NOT hand-code patches yourself.
|
||||
- If an agent fails/hangs, respawn it or ask the user for direction, but don't silently take over.
|
||||
|
||||
Reference in New Issue
Block a user