core/memory+cli: session rename, delete, and export

Add MemoryStore rename/delete with explicit message cleanup. Slash
commands /rename, /delete (confirm), /export md|json write transcripts
from DB; deleting the current session starts a fresh empty one.
This commit is contained in:
2026-07-15 12:26:52 +08:00
parent 04d421a4b5
commit 9d05988245
9 changed files with 422 additions and 2 deletions
+45
View File
@@ -0,0 +1,45 @@
from __future__ import annotations
from datetime import UTC, datetime
from plyngent.cli.export import (
encode_session_export_json,
format_session_export_md,
session_export_payload,
)
from plyngent.lmproto.openai_compatible.model import AssistantChatMessage, UserChatMessage
def test_format_session_export_md() -> None:
text = format_session_export_md(
[
UserChatMessage(content="hi"),
AssistantChatMessage(content="yo", reasoning_content="plan"),
],
sid=7,
name="demo",
workspace="/tmp/ws",
)
assert "# Session 7: demo" in text
assert "## user" in text
assert "hi" in text
assert "### reasoning" in text
assert "plan" in text
assert "yo" in text
def test_session_export_json_roundtrip() -> None:
messages = [UserChatMessage(content="a")]
now = datetime.now(UTC)
payload = session_export_payload(
sid=7,
name="demo",
workspace="/tmp/ws",
created_at=now,
updated_at=now,
messages=messages,
)
assert isinstance(payload, dict)
raw = encode_session_export_json(payload)
assert "7" in raw
assert "demo" in raw