Files
tai/research/tui-framework-design/za-tui-chat-view.md
T
2026-10-12 00:53:52 +02:00

50 lines
2.4 KiB
Markdown

# 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; a `New 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). |