Skip to content

feat(acp): support _session/steering - #53043

Closed
smagnuso wants to merge 1 commit into
anomalyco:devfrom
smagnuso:pr/smagnuson/acp_steering
Closed

smagnuso wants to merge 1 commit into
anomalyco:devfrom
smagnuso:pr/smagnuson/acp_steering

Conversation

@smagnuso

@smagnuso smagnuso commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Issue for this PR

Closes #53042
Refs #44877

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Interim until ACP v2 (#44877); the v2 path would replace this.

Adds the _session/steering ACP extension so a client can redirect a running
turn. initialize now advertises _meta.steering.supported. The handler checks
session.status: if the session is busy it adds the message with
session.prompt({ noReply: true }), which the running loop picks up on its next
step, and replies injected. If the session is idle it replies
promptRequired and sends nothing, so a steer never starts an unrequested turn.

How did you verify your code works?

  • Added tests for the capability advertisement, idle steer, and busy steer.
    bun test test/acp passes (142 tests) and bun run typecheck is clean.
  • Ran opencode acp from source and sent initialize: the response includes
    _meta.steering.supported: true. A _session/steering request for an idle
    session returns promptRequired, and an unknown method still returns -32601.
  • Ran a steered request in hydra-acp

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

Advertise _meta.steering.supported on initialize and handle
_session/steering. A steer on a busy session is admitted with
session.prompt({ noReply: true }) for the running loop to pick up on its
next step; an idle session replies promptRequired and sends nothing.
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

@thdxr

thdxr commented Oct 10, 2026

Copy link
Copy Markdown
Member

This branch has been upgraded to V2. We're no longer taking PRs for V1. If you think this is still relevant, please port it over and open it for V2.

— from 𝕺𝖕𝖊𝖓𝕮𝖔𝖉𝖊

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: ACP: support mid-turn steering (_session/steering)

2 participants