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 ChatView. SessionTodoPanel · MessageQueuePanel stack directly above the composer, and ChatView reads session/queue/TODO state together through useChatContext().
App + Sidebar + main content region
ChatView
MessageQueuePanel + SessionTodoPanel
① CustomTitleBar + MainToolbar
Window controls + session/plugin/permission toolbar. Mounted by
src/ui/renderer/App.tsx.② ChatView body
Conversation + tool cards + thinking + question cards.
src/ui/renderer/ChatView.tsx.③ Queue + TODO panels
External signal queue + session TODOs. They sit directly above the composer (
src/ui/renderer/components/ChatComposerDock.tsx) and draw nothing when they have no items.The actual screen
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.
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).