Files
aiturk-hermes-ide/tests/gateway/test_cached_agent_history_guard.py

68 lines
2.2 KiB
Python

"""Regression tests for cached gateway transcript selection."""
from gateway.run import _build_gateway_agent_history, _select_cached_agent_history
def test_select_cached_history_keeps_expected_replay_cleanup():
"""A durable read-only tool tail removed by stock replay cleanup stays removed."""
live = [
{"role": "user", "content": "check status", "_db_persisted": True},
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "call-1",
"type": "function",
"function": {"name": "web_search", "arguments": "{}"},
}
],
"_db_persisted": True,
},
{
"role": "tool",
"tool_call_id": "call-1",
"content": "[Command interrupted]",
"_db_persisted": True,
},
]
persisted, observed = _build_gateway_agent_history(live)
assert observed is None
assert len(persisted) < len(live)
assert persisted == [{"role": "user", "content": "check status"}]
assert _select_cached_agent_history(persisted, live) is persisted
def test_select_cached_history_preserves_live_when_a_real_row_is_unpersisted():
persisted = [
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "hi"},
]
live = [
{"role": "user", "content": "hello", "_db_persisted": True},
{"role": "assistant", "content": "hi", "_db_persisted": True},
{"role": "user", "content": "not written"},
]
selected = _select_cached_agent_history(persisted, live)
assert selected is not persisted
assert selected == live
def test_select_cached_history_ignores_unmarked_ephemeral_scaffolding():
"""Internal retry nudges are deliberately unpersisted, not evidence of DB lag."""
persisted = [{"role": "user", "content": "ship the fix"}]
live = [
{"role": "user", "content": "ship the fix", "_db_persisted": True},
{
"role": "user",
"content": "Verify your work before stopping.",
"_pre_verify_synthetic": True,
},
]
assert _select_cached_agent_history(persisted, live) is persisted