Capture the current local data snapshot and planning artifacts alongside this development batch so the workspace state matches the code changes. This preserves the reference materials and generated files that were kept in the working tree. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
Notes: Dual Telemetry Control Panel
Working Assumptions
- The chat page already has a persistent right-side
OrchestrationPanel. - Existing chat streaming already emits real
progress,chunk, anderror-style events. - The user wants the panel to feel like an active system console, not a static status card.
Design Intent
- Upper telemetry block: real machine metrics with micro line charts
- Lower telemetry block: session activity waveform tied to current chat execution
- Keep the visual language in the current sci-fi / HUD style
- Avoid heavy chart libraries or full dashboard aesthetics
Constraints
- Do not invent fake system numbers
- Do not persist telemetry history into conversation history
- Keep the main chat surface dominant
- MVP should use the fewest new moving parts possible
Current Code Findings
src/components/chat/OrchestrationPanel.vue
- Already owns the visual shell for the right-side control panel
- Has logical places to insert additional stacked sections above the agent bus and event feed
- Current UI is text-forward and would benefit from live numeric/sparkline blocks
src/pages/chat/composables/useChatView.ts
- Already maintains transient orchestration state per request
- Is the right place to derive a session activity waveform from
progress,tool, andchunkevents - Can own polling lifecycle for system metrics if we want chat page-local state
Backend status route
- No dedicated system metrics endpoint has been confirmed yet
- Minimal new backend contract can be a polling endpoint like
/api/system/status - Suggested payload:
cpu_percentmemory_percentdisk_percenttimestamp
Planning Implications
- Add a tiny backend router/service for system telemetry rather than overloading conversation APIs
- Add a reusable lightweight sparkline component in frontend for consistent rendering
- Keep system telemetry and session telemetry separate in state and UI
- Limit retained chart points (for example 20-30) to keep rendering simple and responsive