# send-rs src/tui/chat/chat_widget.rs — message list, scrollbar, dynamic input ## Metadata | Field | Value | |---|---| | Institute | Molodetz Institute — Research & Retrieval Division | | Subject | tui-framework-design | | Document type | Source Dossier | | Tier | 1 | | Source title | send-rs src/tui/chat/chat_widget.rs — chat widget (WhatsApp+Telegram ratatui client) | | Source URL | https://raw.githubusercontent.com/pedromarquetti/send-rs/master/src/tui/chat/chat_widget.rs | | Source publisher / author | pedromarquetti (send-rs / Sender project) | | Source type | repository | | Source date (published) | Unknown — not stated | | Date researched | 2026-10-11 | | Researched by | tai (agent), model: Muse Spark, on behalf of retoor | | Research method | direct page fetch | | Confidence | Medium | | Status | Active | ## Summary Message rendering as a `List` of pre-wrapped rows with an explicit 1-column scrollbar, a write box whose height grows from its visual row count, and a notable reverted experiment: right-aligned outgoing bubbles were tried and abandoned as ugly. The rejection is as valuable as the patterns. ## Key findings - Messages render as a `List` of pre-wrapped rows with an explicit 1-column scrollbar. - The write box height is dynamic, derived from its visual row count (capped by config). - Right-aligned outgoing message bubbles were implemented and then reverted as ugly; all messages stay left-aligned rows. ## Pros / strengths - Pre-wrapped rows plus an explicit scrollbar are simple and portable — no layout-engine support needed. - The documented bubble rejection settles a design argument with real-shipped-client evidence instead of taste. ## Cons / limitations / caveats - No markdown, streaming, or tool-call rendering in the inspected evidence; the widget covers plain message rows only. ## Relevance to tai - Decisive for the messaging-layout conclusion: tai renders left-aligned wrapped rows with sender grouping, not bubbles, and grows its input from visual rows — both directly from this source. ## Changelog | Date | Change | |---|---| | 2026-10-11 | Initial dossier created from 2026-10-11 research-pass evidence (body opened via web_fetch by researching agent). |