fix(session-recovery): fallback to fetching messageID from session messages (fixes #2046)

This commit is contained in:
MoerAI
2026-03-27 21:26:09 +09:00
parent 324dbb119c
commit fee60d2def

View File

@@ -54,9 +54,25 @@ export function createSessionRecoveryHook(ctx: PluginInput, options?: SessionRec
if (!errorType) return false
const sessionID = info.sessionID
const assistantMsgID = info.id
let assistantMsgID = info.id
if (!sessionID || !assistantMsgID) return false
if (!sessionID) return false
if (!assistantMsgID) {
try {
const messagesResp = await ctx.client.session.messages({
path: { id: sessionID },
query: { directory: ctx.directory },
})
const msgs = (messagesResp as { data?: MessageData[] }).data
const lastAssistant = msgs?.findLast((m) => m.info?.role === "assistant" && m.info?.error)
assistantMsgID = lastAssistant?.info?.id
} catch {
log("[session-recovery] Failed to fetch messages for messageID fallback", { sessionID })
}
}
if (!assistantMsgID) return false
if (processingErrors.has(assistantMsgID)) return false
processingErrors.add(assistantMsgID)