3.3 KiB
3.3 KiB
Renderer Process
React application running in Chromium.
Structure
App.tsx- Root layoutmain.tsx- React entry pointindex.css- Global styles with Tailwindcomponents/- UI components by featurestore/- Zustand state (slices pattern)hooks/- Custom React hooksutils/- Renderer utilitiestypes/- Renderer type definitionsconstants/- CSS variables (cssVariables.ts), layout constants (layout.ts), team colors (teamColors.ts)contexts/- React contexts (TabUIContext.tsx,useTabUIContext.ts)
Component Organization
components/
├── chat/ # Chat display, message items, viewers, context panel
├── common/ # Shared components (badges, dropdowns, token display)
├── dashboard/ # Dashboard views
├── layout/ # Layout components (headers, shells)
├── notifications/ # Notification panels and badges
├── search/ # Search UI and results
├── settings/ # Settings UI
└── sidebar/ # Sidebar navigation
Types (types/)
data.ts- Core data types (ParsedMessage, SemanticStep, SessionMetrics)groups.ts- Chat groups (UserGroup, AIGroup, SystemGroup, AIGroupDisplayItem union)contextInjection.ts- Context tracking (ContextInjection union, ContextStats, ContextPhaseInfo)claudeMd.ts- CLAUDE.md injection typespanes.ts- Pane layout typestabs.ts- Tab management typesnotifications.ts- Notification typesapi.ts- API types
Utils (utils/)
contextTracker.ts- Visible context tracking (computeContextStats, processSessionContextWithPhases)claudeMdTracker.ts- CLAUDE.md injection detectionaiGroupEnhancer.ts- AI group enrichment (linkToolCallsToResults, buildDisplayItems)aiGroupHelpers.ts- AI group utility functionsdisplayItemBuilder.ts- Display item constructiondisplaySummary.ts- Display summary generationformatters.ts- Display formattinggroupTransformer.ts- Chat item groupinglastOutputDetector.ts- Last output detectionmodelExtractor.ts- Model name extractionpathDisplay.ts- Path display formattingpathUtils.ts- Path utility functionsslashCommandExtractor.ts- Slash command extractionstringUtils.ts- String utility functionstoolLinkingEngine.ts- Tool call/result linkingtoolRendering/- Tool rendering helperstoolContentChecks.ts- Tool content validationtoolSummaryHelpers.ts- Tool summary formattingtoolTokens.ts- Tool token utilities
Hooks
useAutoScrollBottom- Auto-scroll chat to bottomuseKeyboardShortcuts- Keyboard shortcutsuseTabNavigationController- Turn navigation with highlightinguseTabUI- Per-tab UI state accessuseTheme- Dark/light theme toggleuseVisibleAIGroup- Viewport-aware AI group trackinguseZoomFactor- Zoom level managementnavigation/utils.ts- Navigation utility functions
Contexts
contexts/TabUIContext.tsx- Per-tab UI state isolationcontexts/useTabUIContext.ts- Context consumer hook
State Management
Zustand store with slices pattern:
- Each domain has data, selectedId, loading, error
- Actions grouped by domain
- Selectors for derived state
Virtual Scrolling
Use @tanstack/react-virtual for large lists (sessions, messages).