d73ff9b0fb
Deploy Site / deploy-vercel (push) Has been cancelled
Deploy Site / deploy-docs (push) Has been cancelled
Docker / shell lint / Lint Dockerfile (hadolint) (push) Has been cancelled
Docker / shell lint / Lint docker/ shell scripts (shellcheck) (push) Has been cancelled
Docker Build and Publish / build-amd64 (push) Has been cancelled
Docker Build and Publish / build-arm64 (push) Has been cancelled
Lint (ruff + ty) / ruff + ty diff (push) Has been cancelled
Lint (ruff + ty) / ruff enforcement (blocking) (push) Has been cancelled
Lint (ruff + ty) / Windows footguns (blocking) (push) Has been cancelled
Nix Lockfile Fix / auto-fix-main (push) Has been cancelled
Nix Lockfile Fix / fix (push) Has been cancelled
Nix / nix (macos-latest) (push) Has been cancelled
Nix / nix (ubuntu-latest) (push) Has been cancelled
OSV-Scanner / Scan lockfiles (push) Has been cancelled
Build Skills Index / build-index (push) Has been cancelled
Tests / test (1) (push) Has been cancelled
Tests / test (2) (push) Has been cancelled
Tests / test (3) (push) Has been cancelled
Tests / test (4) (push) Has been cancelled
Tests / test (5) (push) Has been cancelled
Tests / test (6) (push) Has been cancelled
Tests / e2e (push) Has been cancelled
uv.lock check / uv lock --check (push) Has been cancelled
Docker Build and Publish / merge (push) Has been cancelled
Build Skills Index / trigger-deploy (push) Has been cancelled
Tests / save-durations (push) Has been cancelled
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""Regression tests for CLI /retry history replacement semantics."""
|
|
|
|
from tests.cli.test_cli_init import _make_cli
|
|
|
|
|
|
def test_retry_last_truncates_history_before_requeueing_message():
|
|
cli = _make_cli()
|
|
cli.conversation_history = [
|
|
{"role": "user", "content": "first"},
|
|
{"role": "assistant", "content": "one"},
|
|
{"role": "user", "content": "retry me"},
|
|
{"role": "assistant", "content": "old answer"},
|
|
]
|
|
|
|
retry_msg = cli.retry_last()
|
|
|
|
assert retry_msg == "retry me"
|
|
assert cli.conversation_history == [
|
|
{"role": "user", "content": "first"},
|
|
{"role": "assistant", "content": "one"},
|
|
]
|
|
|
|
cli.conversation_history.append({"role": "user", "content": retry_msg})
|
|
cli.conversation_history.append({"role": "assistant", "content": "new answer"})
|
|
|
|
assert [m["content"] for m in cli.conversation_history if m["role"] == "user"] == [
|
|
"first",
|
|
"retry me",
|
|
]
|
|
|
|
|
|
def test_process_command_retry_requeues_original_message_not_retry_command():
|
|
cli = _make_cli()
|
|
queued = []
|
|
|
|
class _Queue:
|
|
def put(self, value):
|
|
queued.append(value)
|
|
|
|
cli._pending_input = _Queue()
|
|
cli.conversation_history = [
|
|
{"role": "user", "content": "retry me"},
|
|
{"role": "assistant", "content": "old answer"},
|
|
]
|
|
|
|
cli.process_command("/retry")
|
|
|
|
assert queued == ["retry me"]
|
|
assert cli.conversation_history == []
|