docs: typography hygiene + 2 in-body H1 removals across 5 pages

Replaced 112 typography characters (curly quotes, apostrophes, em/en
dashes, non-breaking hyphens) with ASCII equivalents per
docs/CLAUDE.md heading and content hygiene rules.

- docs/help/gpt55-codex-agentic-parity.md: 22 chars; removed the
  duplicate '# GPT-5.5 / Codex Agentic Parity in OpenClaw' H1 (Mintlify
  renders the title from frontmatter; the in-body H1 with the slash
  produced a brittle anchor).
- docs/platforms/mac/menu-bar.md: 21 chars; removed the duplicate
  '# Menu Bar Status Logic' H1.
- docs/tools/acp-agents.md: 23 chars
- docs/concepts/qa-matrix.md: 23 chars
- docs/concepts/qa-e2e-automation.md: 23 chars
This commit is contained in:
Vincent Koc
2026-05-05 19:34:52 -07:00
parent b9f711089a
commit 2b8d91d9ee
5 changed files with 87 additions and 91 deletions

View File

@@ -77,7 +77,7 @@ an unavailable backend.
- The target id is allowed by `acp.allowedAgents` when that allowlist is set.
- The harness command can start on the Gateway host.
- Provider auth is present for that harness (`claude`, `codex`, `gemini`, `opencode`, `droid`, etc.).
- The selected model exists for that harness model ids are not portable across harnesses.
- The selected model exists for that harness - model ids are not portable across harnesses.
- The requested `cwd` exists and is accessible, or omit `cwd` and let the backend use its default.
- Permission mode matches the work. Non-interactive sessions cannot click native permission prompts, so write/exec-heavy coding runs usually need an ACPX permission profile that can proceed headlessly.
@@ -86,7 +86,7 @@ an unavailable backend.
OpenClaw plugin tools and built-in OpenClaw tools are **not** exposed to
ACP harnesses by default. Enable the explicit MCP bridges in
[ACP agents setup](/tools/acp-agents-setup) only when the harness
[ACP agents - setup](/tools/acp-agents-setup) only when the harness
should call those tools directly.
## Supported harness targets
@@ -182,10 +182,10 @@ Quick `/acp` flow from chat:
</Accordion>
<Accordion title="Model / provider / runtime selection cheat sheet">
- `openai-codex/*` PI Codex OAuth/subscription route.
- `openai/*` plus `agentRuntime.id: "codex"` native Codex app-server embedded runtime.
- `/codex ...` native Codex conversation control.
- `/acp ...` or `runtime: "acp"` explicit ACP/acpx control.
- `openai-codex/*` - PI Codex OAuth/subscription route.
- `openai/*` plus `agentRuntime.id: "codex"` - native Codex app-server embedded runtime.
- `/codex ...` - native Codex conversation control.
- `/acp ...` or `runtime: "acp"` - explicit ACP/acpx control.
</Accordion>
<Accordion title="ACP-routing natural-language triggers">
@@ -244,7 +244,7 @@ For Claude Code through ACP, the stack is:
ACP Claude is a **harness session** with ACP controls, session resume,
background-task tracking, and optional conversation/thread binding.
CLI backends are separate text-only local fallback runtimes see
CLI backends are separate text-only local fallback runtimes - see
[CLI Backends](/gateway/cli-backends).
For operators, the practical rule is:
@@ -256,15 +256,15 @@ For operators, the practical rule is:
### Mental model
- **Chat surface** where people keep talking (Discord channel, Telegram topic, iMessage chat).
- **ACP session** the durable Codex/Claude/Gemini runtime state OpenClaw routes to.
- **Child thread/topic** an optional extra messaging surface created only by `--thread ...`.
- **Runtime workspace** the filesystem location (`cwd`, repo checkout, backend workspace) where the harness runs. Independent of the chat surface.
- **Chat surface** - where people keep talking (Discord channel, Telegram topic, iMessage chat).
- **ACP session** - the durable Codex/Claude/Gemini runtime state OpenClaw routes to.
- **Child thread/topic** - an optional extra messaging surface created only by `--thread ...`.
- **Runtime workspace** - the filesystem location (`cwd`, repo checkout, backend workspace) where the harness runs. Independent of the chat surface.
### Current-conversation binds
`/acp spawn <harness> --bind here` pins the current conversation to the
spawned ACP session no child thread, same chat surface. OpenClaw keeps
spawned ACP session - no child thread, same chat surface. OpenClaw keeps
owning transport, auth, safety, and delivery. Follow-up messages in that
conversation route to the same session; `/new` and `/reset` reset the
session in place; `/acp close` removes the binding.
@@ -284,9 +284,9 @@ Examples:
<Accordion title="Binding rules and exclusivity">
- `--bind here` and `--thread ...` are mutually exclusive.
- `--bind here` only works on channels that advertise current-conversation binding; OpenClaw returns a clear unsupported message otherwise. Bindings persist across gateway restarts.
- On Discord, `spawnSessions` gates child thread creation for `--thread auto|here` not `--bind here`.
- On Discord, `spawnSessions` gates child thread creation for `--thread auto|here` - not `--bind here`.
- If you spawn to a different ACP agent without `--cwd`, OpenClaw inherits the **target agent's** workspace by default. Missing inherited paths (`ENOENT`/`ENOTDIR`) fall back to the backend default; other access errors (e.g. `EACCES`) surface as spawn errors.
- Gateway management commands stay local in bound conversations `/acp ...` commands are handled by OpenClaw even when normal follow-up text routes to the bound ACP session; `/status` and `/unfocus` also stay local whenever command handling is enabled for that surface.
- Gateway management commands stay local in bound conversations - `/acp ...` commands are handled by OpenClaw even when normal follow-up text routes to the bound ACP session; `/status` and `/unfocus` also stay local whenever command handling is enabled for that surface.
</Accordion>
<Accordion title="Thread-bound sessions">
@@ -676,7 +676,7 @@ background work. The delivery path depends on that shape.
```json
{
"task": "Continue where we left off fix the remaining test failures",
"task": "Continue where we left off - fix the remaining test failures",
"runtime": "acp",
"agentId": "codex",
"resumeSessionId": "<previous-session-id>"
@@ -685,7 +685,7 @@ background work. The delivery path depends on that shape.
Common use cases:
- Hand off a Codex session from your laptop to your phone tell your agent to pick up where you left off.
- Hand off a Codex session from your laptop to your phone - tell your agent to pick up where you left off.
- Continue a coding session you started interactively in the CLI, now headlessly through your agent.
- Pick up work that was interrupted by a gateway restart or idle timeout.
@@ -696,7 +696,7 @@ background work. The delivery path depends on that shape.
- `resumeSessionId` is a host-local ACP/harness resume id, not an OpenClaw channel session key; OpenClaw still checks ACP spawn policy and target agent policy before dispatch, while the ACP backend or harness owns authorization for loading that upstream id.
- `resumeSessionId` restores the upstream ACP conversation history; `thread` and `mode` still apply normally to the new OpenClaw session you are creating, so `mode: "session"` still requires `thread: true`.
- The target agent must support `session/load` (Codex and Claude Code do).
- If the session id is not found, the spawn fails with a clear error no silent fallback to a new session.
- If the session id is not found, the spawn fails with a clear error - no silent fallback to a new session.
</Accordion>
<Accordion title="Post-deploy smoke test">
@@ -709,7 +709,7 @@ background work. The delivery path depends on that shape.
4. Verify `accepted=yes`, a real `childSessionKey`, and no validator error.
5. Clean up the temporary bridge session.
Keep the gate on `mode: "run"` and skip `streamTo: "parent"`
Keep the gate on `mode: "run"` and skip `streamTo: "parent"` -
thread-bound `mode: "session"` and stream-relay paths are separate
richer integration passes.
@@ -793,18 +793,18 @@ operations:
| ---------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `/acp model <id>` | runtime config key `model` | For Codex ACP, OpenClaw normalizes `openai-codex/<model>` to the adapter model id and maps slash reasoning suffixes such as `openai-codex/gpt-5.4/high` to `reasoning_effort`. |
| `/acp set thinking <level>` | runtime config key `thinking` | For Codex ACP, OpenClaw sends the corresponding `reasoning_effort` where the adapter supports one. |
| `/acp permissions <profile>` | runtime config key `approval_policy` | |
| `/acp timeout <seconds>` | runtime config key `timeout` | |
| `/acp permissions <profile>` | runtime config key `approval_policy` | - |
| `/acp timeout <seconds>` | runtime config key `timeout` | - |
| `/acp cwd <path>` | runtime cwd override | Direct update. |
| `/acp set <key> <value>` | generic | `key=cwd` uses the cwd override path. |
| `/acp reset-options` | clears all runtime overrides | |
| `/acp reset-options` | clears all runtime overrides | - |
## acpx harness, plugin setup, and permissions
For acpx harness configuration (Claude Code / Codex / Gemini CLI
aliases), the plugin-tools and OpenClaw-tools MCP bridges, and ACP
permission modes, see
[ACP agents setup](/tools/acp-agents-setup).
[ACP agents - setup](/tools/acp-agents-setup).
## Troubleshooting
@@ -835,7 +835,7 @@ permission modes, see
## Related
- [ACP agents setup](/tools/acp-agents-setup)
- [ACP agents - setup](/tools/acp-agents-setup)
- [Agent send](/tools/agent-send)
- [CLI Backends](/gateway/cli-backends)
- [Codex harness](/plugins/codex-harness)