fix(memory): preserve replay prefix on session reset

This commit is contained in:
chengyongru
2026-08-19 18:40:20 +08:00
committed by chengyongru
parent 9ef1e292ea
commit ac13ad65cd
2 changed files with 31 additions and 20 deletions
+2 -3
View File
@@ -306,16 +306,15 @@ async def cmd_new(ctx: CommandContext) -> OutboundMessage:
await loop._cancel_active_tasks(ctx.key) # pyright: ignore[reportPrivateUsage]
loop.discard_session_file_state(ctx.key)
session = ctx.session or loop.sessions.get_or_create(ctx.key)
snapshot = session.messages[session.last_consolidated:]
snapshot = list(session.messages)
archive_snapshot = None
runtime = None
if snapshot:
if session.last_consolidated < len(snapshot):
runtime = ctx.runtime or loop.runtime_for_session(session)
archive_snapshot = replace(
session,
messages=snapshot,
metadata=dict(session.metadata),
last_consolidated=0,
provider_state=None,
)
session.clear()