fix(server): delete_session 级联删除 chat_messages(A1)
This commit is contained in:
@@ -197,6 +197,7 @@ class SessionStore:
|
|||||||
|
|
||||||
def delete_session(self, session_id: str) -> bool:
|
def delete_session(self, session_id: str) -> bool:
|
||||||
with self._conn() as c:
|
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,))
|
cur = c.execute("DELETE FROM sessions WHERE session_id = ?", (session_id,))
|
||||||
return cur.rowcount > 0
|
return cur.rowcount > 0
|
||||||
|
|
||||||
|
|||||||
@@ -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="A", project="stock")
|
||||||
store.create_session("u1", name="B", project="other")
|
store.create_session("u1", name="B", project="other")
|
||||||
assert len(store.list_sessions("u1")) == 2
|
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) == []
|
||||||
|
|||||||
Reference in New Issue
Block a user