Skip to content

feat: AgentSidebar full functionality — chat display, streaming, events #114

Description

@I-am-nothing

Summary

The AgentSidebar shell (header tabs + input) is merged (#10). This issue covers the remaining functionality to make it production-ready.

Scope

Chat display

  • Message list component (user messages, agent responses)
  • Streaming text animation (token-by-token rendering)
  • Markdown rendering in agent responses
  • Auto-scroll to bottom on new messages
  • Loading/thinking indicator

Event callbacks

  • onSend(message: string) — already implemented
  • onMicClick() — voice input trigger
  • onFileClick() / onAttachFile() — file attachment trigger
  • onTabSwitch(tabId: string) — tab change callback
  • onTabClose(tabId: string) — tab close callback
  • onTabCreate() — new tab callback
  • onHistoryDelete(tabId: string) — history deletion callback
  • onCollapse() / onExpand() — sidebar toggle callback
  • onClose() — already implemented

Props refactor

  • Accept tabs as a prop (currently internal state for demo)
  • Accept messages per tab as a prop
  • Accept activeTabId as controlled prop
  • Accept isStreaming flag for streaming animation state

Polish

  • Code block syntax highlighting in responses
  • Copy button on code blocks
  • Error state display
  • Empty state (no messages yet)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions