Three visible sessions sharing the same project+runtime (e.g. three
Claude Code sessions of the same repo) used to render as three
visually identical rows in the dashboard — the third bug visible on
the v0.4.3-screenshot review.
src/tui/SessionList.tsx now pre-computes label collision counts once
per render. Any row whose `(label, runtime)` key appears 2+ times in
the visible set picks up a 6-char hex tail of the session id
(`core · c3d456 (claude-code)`). Unique rows are untouched.
Tail uses the same dimColor as the runtime suffix so the project name
stays the visually dominant element, and the truncation budget
accounts for it so long names + collision still fit the column
without wrap-flicker.
Tests: 137 (was 136). One new SessionList regression covering both
the colliding-rows-get-a-tail and unique-rows-don't behaviors.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>