Problem
_session/steering returns startedNewTurn when the active turn wins the idle race. That turn runs after the steering request completes, so the host never owns its terminal session/prompt response.
steer while busy -> injected -> original prompt owns completion
steer after race -> startedNewTurn -> no host-owned completion
Proposed compatible behavior
Honor the opt-in used by claude-agent-acp in #919:
{"_meta":{"steering":{"idleBehavior":"promptRequired"}}}
On the idle path, consume nothing and return:
{"outcome":"promptRequired","reason":"noRunningTurn"}
The host can then submit the unchanged input through normal session/prompt. Keep startedNewTurn as the default for compatibility.
Problem
_session/steeringreturnsstartedNewTurnwhen the active turn wins the idle race. That turn runs after the steering request completes, so the host never owns its terminalsession/promptresponse.Proposed compatible behavior
Honor the opt-in used by
claude-agent-acpin #919:{"_meta":{"steering":{"idleBehavior":"promptRequired"}}}On the idle path, consume nothing and return:
{"outcome":"promptRequired","reason":"noRunningTurn"}The host can then submit the unchanged input through normal
session/prompt. KeepstartedNewTurnas the default for compatibility.