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

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; 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).