68 lines
2.2 KiB
Python
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
|