From 0424883cd0fa51cb6840ea98cae22c8b1604b1a9 Mon Sep 17 00:00:00 2001 From: lhl Date: Fri, 28 Aug 2026 01:58:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(server):=20delete=5Fsession=20=E7=BA=A7?= =?UTF-8?q?=E8=81=94=E5=88=A0=E9=99=A4=20chat=5Fmessages=EF=BC=88A1?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/genesis/server/store.py | 1 + tests/test_server_store.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/genesis/server/store.py b/src/genesis/server/store.py index 18a3ab9..0ef47a9 100644 --- a/src/genesis/server/store.py +++ b/src/genesis/server/store.py @@ -197,6 +197,7 @@ class SessionStore: def delete_session(self, session_id: str) -> bool: with self._conn() as c: + c.execute("DELETE FROM chat_messages WHERE session_id = ?", (session_id,)) cur = c.execute("DELETE FROM sessions WHERE session_id = ?", (session_id,)) return cur.rowcount > 0 diff --git a/tests/test_server_store.py b/tests/test_server_store.py index e5452c3..bd58b56 100644 --- a/tests/test_server_store.py +++ b/tests/test_server_store.py @@ -234,3 +234,12 @@ def test_list_sessions_no_project_returns_all(store): store.create_session("u1", name="A", project="stock") store.create_session("u1", name="B", project="other") assert len(store.list_sessions("u1")) == 2 + +def test_delete_session_cascades_messages(store): + rec = store.create_session("u1", name="A", project="stock") + store.add_message(rec.session_id, "user", "hi") + store.add_message(rec.session_id, "assistant", "ok") + assert len(store.list_messages(rec.session_id)) == 2 + ok = store.delete_session(rec.session_id) + assert ok is True + assert store.list_messages(rec.session_id) == []