본문으로 건너뛰기
LVIS AI

Host · Chat

채팅 화면 구성

메인 화면은 App.tsx 가 CustomTitleBar + MainToolbar 를 두르고, 접이식 Sidebar 를 띄우고, 그 안의 메인 콘텐츠 영역이 PaneFrame 을 마운트하는 구조입니다. PaneFrame 은 대화 영역을 최대 네 개의 타일로 나누고, 타일마다 ChatGroupSession 이 자기 ChatContext 를 제공하며 ChatView 를 그립니다. SessionTasksPanel · MessageQueuePanel 은 그 타일의 컴포저 바로 위에 쌓입니다.

App + Sidebar + PaneFrame
ChatGroupSession → ChatView
MessageQueuePanel + SessionTasksPanel

① CustomTitleBar + MainToolbar

창 컨트롤 + 세션/플러그인/권한 toolbar. src/ui/renderer/App.tsx 가 마운트.

② PaneFrame 타일

대화 영역을 최대 네 개의 타일로 나눕니다 (src/ui/renderer/components/PaneFrame.tsx). 타일마다 ChatGroupSession.tsx 가 자기 ChatContext 를 제공하고 ChatView.tsx 를 그립니다.

③ Queue + Tasks 패널

외부 신호 큐 + 세션 Tasks. 컴포저 바로 위 (src/ui/renderer/components/ChatComposerDock.tsx) 에 놓이고, 항목이 없으면 그려지지 않습니다.

실제 화면

메시지 큐와 Tasks 리스트가 채팅 본문 위에 떠 있는 상태
LLM 도구 실행 + thinking 토큰 스트리밍 표시

사이드 패널들

  • PluginGridButton.tsx — 플러그인 진입 버튼 그리드 (host UI plugin manifest의 ui[] 슬롯이 여기에 결합).
  • RoutinePanel.tsx — RoutineEngine 의 등록 루틴 목록 + on/off.
  • PermissionReviewStatusCard.tsx — Reviewer 모드/상태 카드.
  • ApprovalDock.tsx · QuestionOverlay.tsx — 도구 승인과 질문 카드. 그 대화가 열린 타일 안에서 답하고, 답을 기다리는 동안 PendingAnswerDot.tsx 가 사이드바의 그 대화 줄에 노란 점을 붙입니다.
사이드바는 두 개가 따로 있습니다
채팅 메인에는 접이식 플로팅 Sidebar 가 있습니다 — 세션 · 프로젝트 · 플러그인 뷰가 여기에 들어가고, 접기와 폭 조절이 가능합니다.src/ui/renderer/App.tsx 가 이것을 그립니다. 설정 화면은 그것과 별개로 자체 nav 컬럼 을 가집니다 (src/ui/renderer/SettingsContent.tsx).