fix(tui): restore resumed transcript lineage

This commit is contained in:
Brooklyn Nicholson 2026-04-26 15:16:12 -05:00
parent 350ee1bf23
commit d4dde6b5f2
11 changed files with 537 additions and 49 deletions

View file

@ -222,6 +222,35 @@ class TestMessageStorage:
assert conv[0] == {"role": "user", "content": "Hello"}
assert conv[1] == {"role": "assistant", "content": "Hi!"}
def test_get_messages_as_conversation_includes_ancestor_chain(self, db):
db.create_session("root", "tui")
db.append_message("root", role="user", content="first prompt")
db.append_message("root", role="assistant", content="first answer")
db.create_session("child", "tui", parent_session_id="root")
db.append_message("child", role="user", content="second prompt")
db.append_message("child", role="assistant", content="second answer")
conv = db.get_messages_as_conversation("child", include_ancestors=True)
assert [m["content"] for m in conv] == [
"first prompt",
"first answer",
"second prompt",
"second answer",
]
def test_get_messages_as_conversation_avoids_repeated_resume_prompts_from_ancestors(self, db):
db.create_session("root", "tui")
db.append_message("root", role="user", content="same prompt")
db.append_message("root", role="user", content="same prompt")
db.append_message("root", role="assistant", content="answer")
db.create_session("child", "tui", parent_session_id="root")
db.append_message("child", role="user", content="next prompt")
conv = db.get_messages_as_conversation("child", include_ancestors=True)
assert [m["content"] for m in conv if m["role"] == "user"] == ["same prompt", "next prompt"]
def test_finish_reason_stored(self, db):
db.create_session(session_id="s1", source="cli")
db.append_message("s1", role="assistant", content="Done", finish_reason="stop")