mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-27 19:52:49 +00:00
Pressing Stop on an OMP turn could land in the thread as a failed turn with OMP's interrupt text as the error, because OMP ends the turn with a terminal response that carries "Interrupted by user" in errorMessage and "aborted" in stopReason, and completeTurn classified any errorMessage as a failure. A terminal response whose stop reason is aborted now ends the turn as turn_canceled and terminalizes the turn's in-flight tool calls and subagents, matching what interrupt() already emits when it wins the race with the provider's teardown. A provider-idle state check that resolves after the turn already settled no longer completes that turn, so a stop can no longer emit a second lifecycle event behind the cancellation. Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com>