From 759f68bc25e528945f61b5f29eca4c9cbfaa6633 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Sun, 26 Jul 2026 16:12:05 -0700 Subject: [PATCH] fix(dashboard): stop rendering 'unknown' model placeholders in session lists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sessions that die before title generation (or predate model tracking) rendered as 'Untitled · unknown · 0 msgs' — two placeholders stacked in one row reads as breakage to Hermes Cloud users. Now: - Session rows omit the model segment entirely when the store has no model (no more 'unknown' + dangling separator). - The Overview 'Recent Sessions' card falls back to the message preview as the row label (italic, same treatment as the History list) instead of a bare 'Untitled', and skips the duplicate preview paragraph when the preview IS the label. --- web/src/pages/SessionsPage.tsx | 36 +++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/web/src/pages/SessionsPage.tsx b/web/src/pages/SessionsPage.tsx index b721821ac32b..f14ebee63dde 100644 --- a/web/src/pages/SessionsPage.tsx +++ b/web/src/pages/SessionsPage.tsx @@ -614,10 +614,14 @@ function SessionRow({ )}
- - {(session.model ?? t.common.unknown).split("/").pop()} - - · + {session.model && ( + <> + + {session.model.split("/").pop()} + + · + + )} {session.message_count} {t.common.msgs} @@ -1752,19 +1756,29 @@ export default function SessionsPage() { className="flex min-w-0 max-w-full flex-col gap-2 border border-border p-3 sm:flex-row sm:items-center sm:justify-between" >
- - {s.title ?? t.common.untitled} + + {s.title ?? + (s.preview + ? s.preview.slice(0, 60) + : t.common.untitled)} - - {(s.model ?? t.common.unknown).split("/").pop()} - {" "} - · {s.message_count} {t.common.msgs} ·{" "} + {s.model && ( + <> + + {s.model.split("/").pop()} + {" "} + ·{" "} + + )} + {s.message_count} {t.common.msgs} ·{" "} {timeAgo(s.last_active)} - {s.preview && ( + {s.preview && s.title && (

{s.preview}