Skip to content

Chats UX: separate chats from nav, instant titles, surface chats on new message #5084

Description

@vadik49b

I want to suggest a few UX improvements and fix a few issues with the chat sidebar. I already have code ready. Happy to open a PR if my suggestions look good to you, but would love to hear feedback first (especially regarding "Chats mixed into navigation").

What I noticed

Chats mixed into navigation

The chat list is styled the same as the rest of nav (left gap, vertical line), so "New Chat" reads as a parent group with recent chats as its sub-pages. But "New Chat" is an action, not a category, and the chats aren't sub-pages. This is also not how ChatGPT or Claude look, and that's where users spend most of their time.

Image

Titles generation is slow

A new title isn't generated until the full response is received from the server. So when you create a new chat, you see "New Chat Session" for a while. Once the browser receives the full response, the frontend uses the first message to name the chat temporarily, and only then triggers AI title generation.

Image

Pinning chats can hide new conversations

There's a limit on how many recent chats are visible in the sidebar. If a user pins 3 chats, the slots are full and new conversations never show up in the sidebar.

Image

Active chats get buried in the sidebar

There's a mechanism to stabilize sidebar order and avoid jumping. Seems like it was added because opening (renaming, model switch) was bumping updatedAt and causing the sidebar to reorder. But this makes it too strict: active chats don't surface after a real message exchange either and get buried under "More...". Which means you can't rename or delete them, since this action menu is only accessible through the sidebar.

What I suggest

  • Chats mixed into navigation -- use different styling, left align chats with "New chat" button. Add gap between chats section and the rest of nav. Chats could move into their own full-height panel later, but I'm not familiar enough with the product to suggest bigger changes.
  • Pinning chats can hide new conversations -- extract to a separate section. Also I don't think the number of pinned chats should be limited. Users pin them manually and can decide if they occupy too much space.
  • Titles generation is slow -- this could be solved with a little refactoring, when new chat is created, there's already a message on a client, so it can be used to give the chat a meaningful name right away. No need to wait for BE response.
  • Active chats get buried in the sidebar -- use less noisy field for ordering, my suggestion is to introduce lastMessageAt on BE, and remove useStableConversations entirely

Demo 🚀

chats_ui_demo_small.mp4
Image
Archestra Contributor

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions