core/cli: pause turn cancel during TTY confirm prompts

Max-rounds and destructive-tool confirms no longer cancel the in-flight
turn; SIGINT during the prompt aborts only the confirm.
This commit is contained in:
2026-07-15 00:00:40 +08:00
parent f31032b801
commit 566a06c996
4 changed files with 108 additions and 10 deletions
+25
View File
@@ -0,0 +1,25 @@
from __future__ import annotations
from typing import TYPE_CHECKING
from plyngent.cli.interrupt import allow_task_cancel, pause_task_cancel_for_prompt
from plyngent.cli.limits import prompt_continue_limit
if TYPE_CHECKING:
import pytest
def test_pause_task_cancel_for_prompt() -> None:
assert allow_task_cancel() is True
with pause_task_cancel_for_prompt():
assert allow_task_cancel() is False
assert allow_task_cancel() is True
def test_prompt_continue_limit_under_pause(monkeypatch: pytest.MonkeyPatch) -> None:
def _confirm(*_a: object, **_k: object) -> bool:
assert allow_task_cancel() is False
return True
monkeypatch.setattr("click.confirm", _confirm)
assert prompt_continue_limit("too many rounds") is True