Skip to content

Miner dashboard chat: message list, composer, and streaming renderer #6834

Description

@JSONbored

Context

Part of epic #6504's chat track. This is the functional chat UI — message list, composer, streaming response renderer, and typing indicator — mounted inside the chat rail shell (a separate, already-filed child issue of this same epic). The epic's own explicit dependency: this issue is BLOCKED on the ui-kit state-views port child issue landing first, since the message list must consume the ported LoadingState/EmptyState/ErrorState from @loopover/ui-kit, not invent its own async-state handling. A child issue that hand-rolls its own loading/error/empty JSX instead of importing the ported primitive does not satisfy the epic's design.

Requirements

  • Build the message list (rendering user/assistant turns), composer (text input + Enter-to-submit), streaming response renderer, and typing indicator.
  • The message list's async states (loading history, error fetching, empty conversation) MUST use the ported LoadingState/EmptyState/ErrorState/StateBoundary from @loopover/ui-kit — do not hand-roll a second implementation.
  • No backend grounding or action-dispatch in this issue — those are separate child issues. This issue can be built/tested against a mocked or stubbed response stream.

Deliverables

  • Message list, composer, streaming renderer, typing indicator components
  • Async states using the ported @loopover/ui-kit primitives
  • Before/after screenshots

Test Coverage Requirements

99%+ Codecov patch coverage on every changed line and branch, plus a regression test for the new/changed behavior (note: apps/** UI code may fall outside the strict Codecov patch gate — check coverage.include — but a before/after screenshot table per this repo's UI-PR convention is still required for any visual change).

Expected Outcome

A functional chat UI exists inside the rail shell, ready to be wired to the real backend-grounding child issue.

Links & Resources

Epic: #6504. Blocked by the "Port LoadingState/EmptyState/ErrorState/StateBoundary/Spinner into @loopover/ui-kit proper" issue in this same epic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.help wantedExtra attention is needed

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions