diff --git a/src/hooks/session-recovery/recover-empty-content-message-sdk.ts b/src/hooks/session-recovery/recover-empty-content-message-sdk.ts index e8be862a..10b96bb7 100644 --- a/src/hooks/session-recovery/recover-empty-content-message-sdk.ts +++ b/src/hooks/session-recovery/recover-empty-content-message-sdk.ts @@ -91,7 +91,8 @@ export async function recoverEmptyContentMessageFromSDK( } } - const emptyMessageIDs = findEmptyMessagesFromSDK(messages) + const freshMessages = await readMessagesFromSDK(client, sessionID) + const emptyMessageIDs = findEmptyMessagesFromSDK(freshMessages) for (const messageID of emptyMessageIDs) { if ( await dependencies.replaceEmptyTextPartsAsync( diff --git a/src/hooks/session-recovery/storage/messages-reader.ts b/src/hooks/session-recovery/storage/messages-reader.ts index 0334a19e..9a3301da 100644 --- a/src/hooks/session-recovery/storage/messages-reader.ts +++ b/src/hooks/session-recovery/storage/messages-reader.ts @@ -4,13 +4,10 @@ import type { PluginInput } from "@opencode-ai/plugin" import type { StoredMessageMeta } from "../types" import { getMessageDir } from "./message-dir" import { isSqliteBackend } from "../../../shared" +import { isRecord } from "../../../shared/record-type-guard" type OpencodeClient = PluginInput["client"] -function isRecord(value: unknown): value is Record { - return typeof value === "object" && value !== null -} - function normalizeSDKMessage( sessionID: string, value: unknown