Files
buzz/buzz-agent-core
Michael Neale fbe120fa18 test(buzz-agent-core): cover session/steer, the last untested ACP method
Steering injects a message into a live turn without cancelling it. buzz-acp
prefers it over cancel+re-prompt because the latter throws away the model's
in-progress work, and it guards the call with optimistic concurrency.

Four tests, all against the real stdio wire:

- steer_injects_without_cancelling_the_turn: asserts the turn still ends with
  end_turn AND that the steered text reached the provider. Goose's steer() is
  drained at the round boundary (agent.rs:1951-1974), same as buzz-agent's.
- steer_with_stale_run_id_is_rejected / steer_outside_a_turn_is_rejected: both
  must be errors so buzz-acp can fall back to cancel+merge
  (buzz-acp/src/pool.rs:329-366) rather than silently steering the wrong turn.
- active_run_id_is_cleared_when_the_turn_ends: asserts an explicit trailing
  null, then that a later steer is rejected.

await_active_run_id() reads params.update._meta.goose.activeRunId at exactly
the depth buzz-acp parses (acp.rs:1607-1613) -- a _meta one level too high
silently degrades steering to cancel+re-prompt forever, with no error anywhere.

All 6 ACP methods now have end-to-end coverage. 32 tests green.

Signed-off-by: Michael Neale <michael.neale@gmail.com>
2026-07-27 16:18:31 +10:00
..