From 6510aecfb4669fce4760f1acafa78dbf32bc1573 Mon Sep 17 00:00:00 2001 From: Shakker Date: Tue, 26 May 2026 00:11:12 +0100 Subject: [PATCH] fix: infer later user turn media types --- src/sessions/user-turn-transcript.test.ts | 13 +++++++++++++ src/sessions/user-turn-transcript.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/sessions/user-turn-transcript.test.ts b/src/sessions/user-turn-transcript.test.ts index 9354e6d302f..fee5ca45728 100644 --- a/src/sessions/user-turn-transcript.test.ts +++ b/src/sessions/user-turn-transcript.test.ts @@ -83,6 +83,19 @@ describe("user turn transcript persistence", () => { ]); }); + it("does not reuse singular media type for later media paths", () => { + expect( + buildPersistedUserTurnMediaInputsFromFields({ + MediaPath: "/tmp/a.png", + MediaPaths: ["/tmp/a.png", "/tmp/report.pdf"], + MediaType: "image/png", + }), + ).toEqual([ + { path: "/tmp/a.png", contentType: "image/png" }, + { path: "/tmp/report.pdf", contentType: "application/pdf" }, + ]); + }); + it("resolves staged relative media paths against the media workspace", () => { const workspaceDir = createTempDir("openclaw-user-turn-media-"); diff --git a/src/sessions/user-turn-transcript.ts b/src/sessions/user-turn-transcript.ts index 705281b7a96..d69b7d2da64 100644 --- a/src/sessions/user-turn-transcript.ts +++ b/src/sessions/user-turn-transcript.ts @@ -250,7 +250,7 @@ export function buildPersistedUserTurnMediaInputsFromFields( ...(mediaPath ? { path: mediaPath } : {}), ...(url ? { url } : {}), contentType: resolveTranscriptMediaType({ - explicitType: types[index] ?? singleType, + explicitType: types[index] ?? (index === 0 ? singleType : undefined), mediaPath, mediaUrl: url, }),