feat(tui): chat rooms — browsable list, multiple open rooms, unread badges

Add a chat-rooms popup (open with 'c') satisfying the requested UX:
- Browsable, /-filterable room list showing per-room user counts,
  busiest first; already-open rooms are marked.
- Multiple rooms open at once as tabs; Tab/Shift-Tab switch, 'x' leaves.
- Per-room chat log with a live member list and an inline compose line
  (Enter to type, Enter to send; the server echo renders the message).
- Unread indicators: bold tab name + 'room (n)' badge per room, plus
  'chat (n)' and 'inbox (n)' counters in the shortcut bar; viewing a
  room clears its badge.

RoomsState is unit-tested (routing, unread accounting, tab lifecycle,
filtering).
This commit is contained in:
michel
2026-07-19 19:58:32 +02:00
parent 7d94b2caa3
commit 08272ac867
6 changed files with 924 additions and 7 deletions
+2
View File
@@ -2,10 +2,12 @@ mod browse_pane;
mod download_info_pane;
mod downloads_pane;
mod results_pane;
mod rooms_pane;
mod searches_pane;
pub use browse_pane::render_browse_pane;
pub use download_info_pane::render_download_info_pane;
pub use downloads_pane::render_downloads_pane;
pub use results_pane::{ResultsPaneParams, render_results_pane};
pub use rooms_pane::render_rooms_pane;
pub use searches_pane::render_searches_pane;