Repository navigation
Frontend Architecture
github-actions[bot] edited this page Oct 13, 2026
·
2 revisions
Canonical source:
docs/FRONTEND_ARCHITECTURE.md— this page is rendered from it on every publish; edit the source.
Date: 2026-04-07 Scope: Frontend pages, components, UX patterns, wiring, trust signals, accessibility
| Page | Route | Status | Loading | Empty | Error |
|---|---|---|---|---|---|
| Login | /login | REAL | Y | N/A | Y |
| Dashboard | /dashboard | REAL | Y | N | Y |
| Chat List | /chat | REAL | Y | Y | Y |
| Thread Detail | /chat/[threadId] | REAL | Y | Y | Y |
| Connectors | /connectors | REAL | Y | Y | Y |
| Connector Detail | /connectors/[id] | REAL | Y | N | Y |
| Models Catalog | /models | REAL | Y | Y | Y |
| Local Models | /models/local | REAL | Y | Y | Y |
| Routing | /routing | REAL | Y | Y | Y |
| Memory | /memory | REAL | Y | Y | Y |
| Context Packs | /context | REAL | Y | Y | Y |
| Files | /files | REAL | Y | Y | Y |
| Observability | /observability | REAL | Y | Y | N |
| Audits | /audits | REAL | Y | Y | N |
| Logs | /logs | REAL | Y | Y | N |
| Admin | /admin | REAL | Y | N | N |
| Settings | /settings | REAL | Y | N/A | Y |
| Component | File | Status | Notes |
|---|---|---|---|
| MessageComposer | components/chat/message-composer.tsx | REAL | Model selector present, NO file attachment |
| MessageBubble | components/chat/message-bubble.tsx | REAL | Provider/model badges, feedback, regenerate |
| ModelSelector | components/chat/model-selector.tsx | REAL | Grouped by provider, Auto option |
| ThreadSettings | components/chat/thread-settings.tsx | REAL | System prompt, temp, tokens, model. NO context packs |
| RoutingTransparency | components/chat/routing-transparency.tsx | REAL | Confidence, reasons, privacy/cost class |
| ThinkingIndicator | components/chat/thinking-indicator.tsx | REAL | Shown during polling |
| ThreadListItem | components/chat/thread-list-item.tsx | REAL | Pin, archive, message count |
| FileUploadZone | components/files/file-upload-zone.tsx | REAL | Drag-and-drop, click upload |
| ConnectorCard | components/connectors/connector-card.tsx | REAL | Health, sync, edit, delete |
| # | Gap | Impact | Status |
|---|---|---|---|
| F1 | No file attachment in message composer | Users can't use uploaded files in conversations | Backend supports fileIds, frontend doesn't send them |
| F2 | No context pack selector in thread settings | Context packs are disconnected from threads | Backend now has contextPackIds, frontend doesn't expose it |
| F3 | ChatThread type missing contextPackIds | Type out of sync with backend schema | Backend added field, frontend type not updated |
| F4 | CreateMessageRequest missing fileIds | Can't send file references with messages | Backend supports it, frontend doesn't |
| # | Gap | Impact |
|---|---|---|
| F5 | No memory influence indicator on messages | Users can't see which memories influenced the response |
| F6 | Polling instead of SSE for message updates | Higher latency, unnecessary requests |
| F7 | No file processing status in chat | Users don't know if attached files are ready |
| # | Gap | Impact |
|---|---|---|
| F8 | Limited aria-live regions | Async updates not announced to screen readers |
| F9 | No onboarding wizard | New users don't know where to start |
| F10 | No keyboard shortcuts | Power users can't navigate efficiently |
- Dark mode: CSS variables with system preference detection, persistent
- i18n: 13 languages (EN, AR, DE, ES, FA, FR, HI, IT, JA, PT, RU, TH, ZH) with RTL support for Arabic
- Mobile responsiveness: Collapsible sidebar, responsive grids, hidden text on small screens
- Routing transparency: Full decision visibility (confidence, reasons, privacy/cost class, fallback)
- Provider/model attribution: Every assistant message shows which model answered
- Model selector: Grouped dropdown with Auto + provider groups
- Feedback system: Thumbs up/down on every message
- Structured logging: Batched, redacted client logs sent to backend
Add a file picker to the message composer that lets users select from their uploaded files.
Changes needed:
- Update
CreateMessageRequesttype to includefileIds?: string[] - Create
FileAttachmentPickercomponent (dialog showing user's uploaded files) - Add paperclip button to
MessageComposer - Wire selected fileIds into
sendMessagecall - Show attached file badges above textarea
Add a multi-select for context packs in thread settings.
Changes needed:
- Update
ChatThreadtype to includecontextPackIds: string[] - Update
CreateThreadRequestandUpdateThreadRequestto includecontextPackIds - Create
ContextPackSelectorcomponent - Add to
ThreadSettingscomponent - Wire into
useThreadSettingshook save handler
Sync frontend types with backend schema changes.
- Always show the model badge — even during "thinking" state, show which model is being queried
- Routing reason in plain language — translate reason tags to human-readable sentences
- File usage indicator — when files influence a response, show a small "grounded in: filename.pdf" tag
- Memory usage indicator — when memories influence a response, show "informed by N memories" tag
- Confidence meter — visual indicator (not just number) for routing confidence
- Degraded mode banner — when health service reports issues, show a banner
| Gate | Status |
|---|---|
| All pages have loading states | PASS |
| All pages have empty states | PASS (most) |
| All pages have error handling | PARTIAL (some missing) |
| File attachment in chat | FAIL (not implemented) |
| Context pack selection in threads | FAIL (not implemented) |
| Mobile responsive | PASS |
| Dark mode works | PASS |
| i18n complete | PASS (13 languages) |
| Routing transparency visible | PASS |
| Provider/model attribution | PASS |
ClawAI Wiki · source-controlled under wiki/ · generated/mirrored from the current repository knowledge layer.
ClawAI Wiki
Product
- Product-Vision
- Flagship-Features
- Business-Overview
- Requirements-Register
- Drift-Log
- Runtime-Managed-Connector-Providers
- Threads
- ADR-Index
Architecture
- System-at-a-Glance
- Architecture-Map
- System-Architecture
- Message-Flow
- End-to-End-Data-Flow
- Routing-Engine
- Event-Bus
- Security-Architecture
Platform
- Backend-Services
- Frontend-Architecture
- Shared-Packages
- Database-Reference
- API-Reference
- Provider-Catalog
- Memory-and-Context-Architecture
- File-Support-Architecture
- Research-and-Web-Crawling
Runtime & Ops
- Docker-Guide
- Nginx-Reference
- CI-CD-Pipeline
- Logging-and-Observability
- Operational-Runbooks
- Troubleshooting
Quality
Engineering OS
- AI-Native-Engineering-OS
- Generated-Manifests
- Rules-Catalog
- Skills-Catalog
- Context-Layer
- Engineering-Memory
- Tooling-and-Automation
- Scripts-and-Operations
- ESLint-and-Architecture-Enforcement
- Extended-Work-Skills
Agents
Reference