From 8e48cffe3b45eded04a8926c5943b48d5bfa2f1b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 2 Jan 2026 18:32:03 +0100 Subject: [PATCH] fix(macos): decode session preview payload --- apps/macos/Sources/Clawdis/SessionMenuPreviewView.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/macos/Sources/Clawdis/SessionMenuPreviewView.swift b/apps/macos/Sources/Clawdis/SessionMenuPreviewView.swift index 371b6900b..5c80032ac 100644 --- a/apps/macos/Sources/Clawdis/SessionMenuPreviewView.swift +++ b/apps/macos/Sources/Clawdis/SessionMenuPreviewView.swift @@ -173,7 +173,8 @@ struct SessionMenuPreviewView: View { from payload: ClawdisChatHistoryPayload, maxItems: Int) -> [SessionPreviewItem] { - let messages = self.decodeMessages(payload.messages ?? []) + let raw: [ClawdisKit.AnyCodable] = payload.messages ?? [] + let messages = self.decodeMessages(raw) let built = messages.compactMap { message -> SessionPreviewItem? in guard let text = self.previewText(for: message) else { return nil } let isTool = self.isToolCall(message) @@ -186,9 +187,10 @@ struct SessionMenuPreviewView: View { return Array(trimmed.reversed()) } - private static func decodeMessages(_ raw: [AnyCodable]) -> [ClawdisChatMessage] { + private static func decodeMessages(_ raw: [ClawdisKit.AnyCodable]) -> [ClawdisChatMessage] { raw.compactMap { item in - (try? ChatPayloadDecoding.decode(item, as: ClawdisChatMessage.self)) + guard let data = try? JSONEncoder().encode(item) else { return nil } + return try? JSONDecoder().decode(ClawdisChatMessage.self, from: data) } }