Skip to content

OpenCode: support steering of active turns #1431

Description

@pauravhp

Summary

OpenCode sessions do not currently support steering of an active turn.

Current behavior

When a user sends an immediate steering message while OpenCode is running, Cyrus stops the OpenCode process and resumes the session with the new message.

OpenCodeRunner reports that it does not support streaming input, and attempting to send a streaming message throws an error.

Expected behavior

A steering message should affect the currently running turn without stopping it or starting a replacement turn.

A server-backed OpenCode session may be the right foundation, but the implementation does not need to be prescribed here.

Why this matters

Users are told they can steer active work, but with OpenCode that action currently interrupts the work instead.

Acceptance criteria

  • Steering reaches the active OpenCode session without stopping it.
  • The running turn can incorporate the new instruction before completing.
  • The OpenCode session and its context are preserved.
  • Cyrus does not report that the session was stopped unless the user actually requested a stop.
  • Stop and cancel continue to work independently.

Validation

Add automated coverage for active-turn steering.

Also run a local F1 test drive using an authenticated OpenCode installation that:

  • Starts a long-running OpenCode turn.
  • Sends a steering message while the turn is active.
  • Confirms the session is not stopped or replaced.
  • Confirms that same turn acts on the new instruction.

Include the test-drive commands and relevant session output in the PR.

Related

Identified while validating #1263.

Observed on main at b936752.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions