The transcript was duplicated across both panes, which was the actual
complaint. The left column is now the list of conversations and the right
pane is the transcript of the selected one, so the panes show different
things.
- the open conversation is marked with a check icon and an "Open" tag
- each row carries its own transcript as its detail, so moving the
selection previews that conversation
- conversations are ordered most-recently-updated first, which keeps the
one being chatted in at row zero, where Vicinae's selection reset lands
- Return now adapts: with text in the search bar it sends, with an empty
bar it opens the highlighted conversation (sending an empty prompt was a
no-op anyway)
- the search bar accessory dropdown is gone. The left column is the
conversation switcher now, so the dropdown only duplicated it.
Speaker icons in the transcript are not possible, so the labels are plain
text. MdImage renders images block-level, centred, and capped at 200px
tall, and all three candidate sources were tried in a live probe --
icon://person, a raw icon slug, and a file:// asset path -- and each one
fell back to rendering its alt text as a caption. markdown.ts records the
reason so nobody retries it blind.
Verified on screen: one conversation row with an Open tag and a check
icon, the full transcript on the right, and the action bar reading "Open
Conversation" while the search bar is empty. typecheck, eslint, 109 tests
and vici build all pass.