fix(webui): keep idle compaction out of session recency
This commit is contained in:
@@ -101,6 +101,7 @@ def test_webui_session_list_uses_webui_transcript_activity_for_sort(
|
||||
old_session.created_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
old_session.updated_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
old_session.add_message("user", "old metadata")
|
||||
old_session.messages[-1]["timestamp"] = "2026-06-15T10:00:00"
|
||||
old_session.updated_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
manager.save(old_session)
|
||||
|
||||
@@ -108,6 +109,7 @@ def test_webui_session_list_uses_webui_transcript_activity_for_sort(
|
||||
newer_metadata.created_at = datetime(2026, 6, 15, 11, 0, 0)
|
||||
newer_metadata.updated_at = datetime(2026, 6, 15, 11, 0, 0)
|
||||
newer_metadata.add_message("user", "newer metadata")
|
||||
newer_metadata.messages[-1]["timestamp"] = "2026-06-15T11:00:00"
|
||||
newer_metadata.updated_at = datetime(2026, 6, 15, 11, 0, 0)
|
||||
manager.save(newer_metadata)
|
||||
|
||||
@@ -141,6 +143,7 @@ def test_webui_session_list_rescans_when_transcript_changes(
|
||||
session.created_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
session.updated_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
session.add_message("user", "preview")
|
||||
session.messages[-1]["timestamp"] = "2026-06-15T10:00:00"
|
||||
session.updated_at = datetime(2026, 6, 15, 10, 0, 0)
|
||||
manager.save(session)
|
||||
|
||||
@@ -169,6 +172,30 @@ def test_webui_session_list_rescans_when_transcript_changes(
|
||||
assert rows[0]["updated_at"].startswith("2026-06-15T12:30:00")
|
||||
|
||||
|
||||
def test_webui_session_list_sorts_by_message_activity_not_maintenance_timestamp(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
manager = SessionManager(tmp_path)
|
||||
old = manager.get_or_create("websocket:old")
|
||||
old.created_at = datetime(2026, 6, 5, 10, 0, 0)
|
||||
old.add_message("user", "old real activity")
|
||||
old.messages[-1]["timestamp"] = "2026-06-05T10:00:00"
|
||||
old.updated_at = datetime(2026, 6, 30, 17, 40, 0)
|
||||
manager.save(old)
|
||||
|
||||
newer = manager.get_or_create("websocket:newer")
|
||||
newer.created_at = datetime(2026, 6, 24, 10, 0, 0)
|
||||
newer.add_message("user", "newer real activity")
|
||||
newer.messages[-1]["timestamp"] = "2026-06-24T10:00:00"
|
||||
newer.updated_at = datetime(2026, 6, 24, 10, 0, 0)
|
||||
manager.save(newer)
|
||||
|
||||
rows = list_webui_sessions(manager)
|
||||
|
||||
assert [row["key"] for row in rows] == ["websocket:newer", "websocket:old"]
|
||||
assert rows[1]["updated_at"] == "2026-06-05T10:00:00"
|
||||
|
||||
|
||||
def list_webui_sessions(manager: SessionManager) -> list[dict]:
|
||||
return session_list_index.list_webui_sessions(manager)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user