2.4 KiB
2.4 KiB
za-tui widgets/chat_view.py — transcript rows, grouping, scroll behavior
Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute — Research & Retrieval Division |
| Subject | tui-framework-design |
| Document type | Source Dossier |
| Tier | 1 |
| Source title | za-tui widgets/chat_view.py — chat view widget (Textual Zalo client) |
| Source URL | https://raw.githubusercontent.com/buihongduc132/za-tui/main/src/za_tui/widgets/chat_view.py |
| Source publisher / author | buihongduc132 (za-tui 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
Transcript rendering as plain rows with sender grouping on a 90-minute gap, per-message [sending]/[failed] status suffixes, a selection arrow, a New messages (n) indicator, scroll-to-bottom only when already at the bottom, and older-message loading at scroll-top. The fullest transcript-behavior precedent inspected.
Key findings
- Messages render as plain rows with sender grouping: consecutive messages from one sender group until a 90-minute gap.
- Each message can carry a
[sending]or[failed]status suffix; a selection arrow marks the selected row; aNew messages (n)indicator counts unseen messages. - New arrivals auto-scroll to the bottom only when the view is already at the bottom; scrolling to the top loads older messages.
Pros / strengths
- Pin-to-bottom-only-if-at-bottom is the correct scroll contract for a live transcript and is stated as behavior, not inferred.
- Sender grouping plus per-message status plus unread indicator covers the whole transcript feature set in one widget.
Cons / limitations / caveats
- Plain rows only: no markdown, streaming-token, or tool-call rendering in the inspected evidence, so those tai needs remain inferred patterns.
Relevance to tai
- Supplies the transcript contract (grouped rows, per-message status, conditional pin-to-bottom, history loading) adopted in the messaging-layout conclusion; its scroll contract is also the inferred carrier for tai's streaming rendering.
Changelog
| Date | Change |
|---|---|
| 2026-10-11 | Initial dossier created from 2026-10-11 research-pass evidence (body opened via web_fetch by researching agent). |