fix(chat): renamed run's title collapses to ~3 chars beside a giant raw-identity string #120
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/coding-lab#120
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Rename a run in the chat header (issue #111 inline rename, commit
bde4077) on a session that was spawned without a label: the header shows ~3 characters of the new title followed by a big muted timestring, e.g.Root cause (two independent defects)
button.chat-titlelays out two flex children —.chat-title-text(the custom title) and.chat-title-raw(the raw identity). Both havemin-width: 0; flex: 0 1 auto, so flexbox distributes the available width proportionally to natural content width. The raw identity string is far longer than the title, so it wins ~80% of a container already capped at 40% of the header (desktop) / squeezed by chips (mobile). The primary title ellipsizes down to a few characters.rawIdentity()inRunChat.tsxrenders${sessionLabel(session_name)} · ${session_name}— but the session name is<repo>~<label>, so the label appears twice. For an unlabelled spawn that's the timestamp twice:20260710-1545 · coding-lab~20260710-1545.Agreed design (grill 2026-07-10)
Unify the header title layout for both titled and untitled runs — one code path:
.chat-title-text): the display title — customtitleif set, elseinstanceTitle(sessionLabel(session_name))(e.g.grill · 10:18), elsebranch. Same chain asrunDisplayTitle(); reuse it.sessionRepo(session_name), fall back to nothing when empty/legacy). Replaces both today'srepo ·bold prefix in the generated title and the.chat-title-rawlabel·session string.flex-shrinkweight on the secondary span, keepingmin-width: 0+ ellipsis on both). No media query needed — on narrow screens the project naturally collapses away.titleattribute carries the exact session name (coding-lab~grill-20260710-1018) so the tmux/branch/worktree correlation from ADR-0040 stays reachable. The inlinelabel · sessionstring is dropped entirely.Implementation notes
web/src/routes/RunChat.tsxChatHeader:generatedTitle()loses itsrepo ·prefix (primary text only); add aproject()accessor;rawIdentity()goes away; tooltip = session name (keep thearia-label="Rename: …").placeholdershould be the new repo-less generated title.web/src/base.css: rename/replace.chat-title-rawstyling with the shrink-first secondary span.SideNav.tsx) and History already render onlyrunDisplayTitle— no change there.RunChat.test.tsxheader expectations (titled + untitled + legacy no-~session).Acceptance
grill · 10:18, mutedcoding-labafter it; narrow viewport shows the full bold part, project collapses first.coding-lab; hovering the title showscoding-lab~grill-20260710-1018.Landing audit — PR #121 →
PASSci / nativesuccess (5m10s, run #127) — relied on, not re-run.fix(chat): …) ✓afk/120, body carries workingCloses #120✓runDisplayTitlefallback (custom → parsed label → branch), matching Rail/History; project name (sessionRepo) rides as muted secondary text withflex: 0 100000 autoso it collapses before the title yields; full session name moved to the button tooltip (ADR-0040 correlation preserved and its Status amended). Verified helper behaviour:sessionReporeturns''for legacy no-~names, hiding the span — covered by a new test. Tests updated for titled/untitled/reset/legacy cases.No blockers. Awaiting free-text merge go-ahead.