fix: resolve broken forked sessions with compactions due to missing parent-child message references (#6445)

This commit is contained in:
ryanwyler
2026-01-09 10:42:55 -07:00
committed by GitHub
parent 7c2907cbb4
commit a5edf3a311

View File

@@ -151,12 +151,19 @@ export namespace Session {
directory: Instance.directory,
})
const msgs = await messages({ sessionID: input.sessionID })
const idMap = new Map<string, string>()
for (const msg of msgs) {
if (input.messageID && msg.info.id >= input.messageID) break
const newID = Identifier.ascending("message")
idMap.set(msg.info.id, newID)
const parentID = msg.info.role === "assistant" && msg.info.parentID ? idMap.get(msg.info.parentID) : undefined
const cloned = await updateMessage({
...msg.info,
sessionID: session.id,
id: Identifier.ascending("message"),
id: newID,
...(parentID && { parentID }),
})
for (const part of msg.parts) {