본문으로 건너뛰기
LVIS AI

Host · Chat

메시지 큐 & TODO 패널

ChatView 본문 옆에 항상 표시되는 두 개의 패널 — MessageQueuePanel (대기 외부 신호) + SessionTodoPanel (세션 TODO). 둘 다 React 컴포넌트로 ChatView.tsx 에서 렌더되고, 데이터는 workflowApi 가 관리합니다.

ChatView.tsx:1417 MessageQueuePanel
ChatView.tsx:1416 SessionTodoPanel
메시지 큐와 TODO 리스트가 채팅 본문 위에 떠 있는 상태

MessageQueuePanel

외부 신호 (Outlook 새 메일, meeting 종료, Agent Hub 메시지 등) 가 들어오면 ChatView 본문을 막지 않고 패널에 카드 형태로 쌓입니다. 구현: src/ui/renderer/components/MessageQueuePanel.tsx. 사용자가 카드를 클릭하면 채팅 본문에 ask-user question card 또는 도구 호출로 전환.

SessionTodoPanel

세션 단위 TODO. 사용자가 직접 추가한 항목과 에이전트가 컨텍스트에서 만든 항목이 같은 리스트. 구현: src/ui/renderer/components/SessionTodoPanel.tsx. 각 항목은 출처 라벨이 함께 표시.

신호가 패널에 닿기까지

  1. 플러그인 (예: ms-graph) 이 hostApi.emitEvent('email.new', payload) 호출.
  2. 구독 중인 work-assistant 가 onEvent('email.new', …) 에서 detector 평가.
  3. detector 가 surface 결정 시 hostApi.triggerConversation({ …spec }) 또는 showOverlay({ …input }) 호출.
  4. host UI가 MessageQueuePanel 또는 카드로 노출.
  5. 모든 흐름 → ~/.lvis/audit/<YYYY-MM-DD>.jsonl 한 줄 JSONL append.
enqueueMessage 같은 API는 없다
SDK 표면에 hostApi.enqueueMessage 가 존재하지 않습니다. 패널에 항목을 넣는 표준 경로는 이벤트 emit → host UI 가 감지 → 렌더 또는 triggerConversation / showOverlay 입니다.