bceac696ae
All three artifact timestamp sources (message.timestamp, session.last_active, session.started_at) are epoch SECONDS — the transcript reader and session-date-groups both multiply by 1000 — but the collector passed them straight to new Date() (ms), so every artifact rendered as 1970-01-21. Normalize seconds to ms once at collection; the Date.now() fallback stays ms. Local file artifacts (e.g. D:\ComfyUI\output\*.png) fell through to mediaExternalUrl() which yields a file:// URL the renderer cannot load. Route through the desktop fs bridge whenever it exists — readDesktopFileDataUrl already dispatches remote REST vs local Electron internally (#83380).