Skip to content
LVIS AI
EN|KO

Host · Chat

Chat Screen Layout

App.tsx wraps the main screen in CustomTitleBar + MainToolbar, floats a collapsible Sidebar, and the main content region inside it mounts PaneFrame. PaneFrame splits the conversation area into as many as four tiles, and each tile is a ChatGroupSession that provides its own ChatContext and draws ChatView. SessionTasksPanel · MessageQueuePanel stack directly above that tile's composer.

App + Sidebar + PaneFrame
ChatGroupSession → ChatView
MessageQueuePanel + SessionTasksPanel

① CustomTitleBar + MainToolbar

Window controls + session/plugin/permission toolbar. Mounted by src/ui/renderer/App.tsx.

② PaneFrame tiles

Splits the conversation area into as many as four tiles (src/ui/renderer/components/PaneFrame.tsx). Each tile is a ChatGroupSession.tsx that provides its own ChatContext and draws ChatView.tsx.

③ Queue + Tasks panels

External signal queue + session tasks. They sit directly above the composer (src/ui/renderer/components/ChatComposerDock.tsx) and draw nothing when they have no items.

The actual screen

Message queue and Tasks list floating above the chat body
LLM tool execution plus streaming thinking tokens

Side panels

  • PluginGridButton.tsx — grid of plugin entry buttons (the host UI plugin manifest's ui[] slots attach here).
  • RoutinePanel.tsx — RoutineEngine's list of registered routines + on/off toggles.
  • PermissionReviewStatusCard.tsx — reviewer mode/status card.
  • ApprovalDock.tsx · QuestionOverlay.tsx — tool approvals and question cards. They are answered inside the tile that holds their conversation, and while one waits PendingAnswerDot.tsx puts a yellow dot on that conversation's row in the sidebar.
There are two separate sidebars
The main chat screen has a collapsible floating Sidebar — session, project, and plugin views live in it, and it can be collapsed and resized.src/ui/renderer/App.tsx renders it. The settings screen has its own nav column, separate from that one (src/ui/renderer/SettingsContent.tsx).