Summary: - Default active-run queueing to steer while preserving explicit followup/collect modes. - Keep `/steer` fallback behavior and migrate retired queue steering config. - Await Codex app-server steering acceptance so rejected/aborted steering can fall back safely. - Route active subagent announcements through intentional acceptance-aware steering, with legacy queue helpers deprecated for delivery decisions. Verification: - git diff --check - rg -n "^(<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|)" CHANGELOG.md docs src extensions || true - pnpm test src/agents/subagent-announce-dispatch.test.ts src/agents/subagent-announce-delivery.test.ts src/agents/pi-embedded-runner/runs.test.ts src/agents/subagent-announce.format.e2e.test.ts src/agents/subagent-announce.test.ts - pnpm test src/auto-reply/reply/commands-steer.test.ts src/auto-reply/reply/queue/settings.test.ts src/auto-reply/reply/queue-policy.test.ts src/auto-reply/reply/agent-runner.runreplyagent.e2e.test.ts src/auto-reply/reply/get-reply-run.media-only.test.ts extensions/codex/src/app-server/run-attempt.test.ts -- -t "queued steering|explicit all-mode steering|flushes pending default queued steering|rejects queued steering|resolveActiveRunQueueAction|resolveQueueSettings|handleSteerCommand" Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>
2.7 KiB
summary, read_when, title, sidebarTitle
| summary | read_when | title | sidebarTitle | |||
|---|---|---|---|---|---|---|
| Steer an active run without changing queue mode |
|
Steer | Steer |
/steer first tries to send guidance to an already-active run. It is for
"adjust this run while it is still working" moments. If the current runtime
cannot accept steering, OpenClaw sends the message as a normal prompt instead
of dropping it.
Current session
Use top-level /steer to target the active run for the current session:
/steer prefer the smaller patch and keep the tests focused
/tell summarize before making the next tool call
Behavior:
- Targets only the current session's active run.
- Works independently of the session's
/queuemode. - Starts a normal turn with the same message when the session is idle or the active run cannot accept steering.
- Uses the active runtime's steering path, so the model sees the guidance at the next supported runtime boundary.
Steer vs queue
/queue steer makes normal inbound messages try to steer the active run when
they arrive while a run is active. /steer <message> is an explicit command
that tries to inject that command's message into the active run at the next
supported runtime boundary, regardless of the stored /queue setting. When
that injection is not available, the command prefix is stripped and <message>
continues as a normal prompt.
Use:
/steer <message>when you want to guide the active run right now./queue steerwhen you want future normal messages to steer active runs by default./queue collector/queue followupwhen future normal messages should wait for a later turn instead of steering the active run./queue interruptwhen the newest message should replace the active run instead of steering it.
For queue modes and steering boundaries, see Command queue and Steering queue.
Sub-agents
Use /subagents steer when the target is a child run:
/subagents steer 2 focus only on the API surface
Top-level /steer does not select a sub-agent by id or list index. It always
targets the current session's active run. See Sub-agents for
sub-agent ids, labels, and control commands.
ACP sessions
Use /acp steer when the target is an ACP harness session:
/acp steer --session agent:main:acp:codex tighten the repro
See ACP agents for ACP session selection and runtime behavior.