diff --git a/frontend/src/components/Chat/InputArea.tsx b/frontend/src/components/Chat/InputArea.tsx index 2d147c94..bc51f355 100644 --- a/frontend/src/components/Chat/InputArea.tsx +++ b/frontend/src/components/Chat/InputArea.tsx @@ -133,7 +133,7 @@ export function InputArea() { setStreamState({ isStreaming: true, - phase: 'Connecting...', + phase: 'Generating...', elapsedMs: 0, activeToolCalls: [], content: '', diff --git a/frontend/src/components/Chat/SystemPanel.tsx b/frontend/src/components/Chat/SystemPanel.tsx index 6995b4e6..e83b2e9b 100644 --- a/frontend/src/components/Chat/SystemPanel.tsx +++ b/frontend/src/components/Chat/SystemPanel.tsx @@ -109,8 +109,8 @@ export function SystemPanel() { Session
- - + +
diff --git a/frontend/src/components/Chat/XRayFooter.tsx b/frontend/src/components/Chat/XRayFooter.tsx index af2d7c72..4aad1e58 100644 --- a/frontend/src/components/Chat/XRayFooter.tsx +++ b/frontend/src/components/Chat/XRayFooter.tsx @@ -20,13 +20,14 @@ export function XRayFooter({ usage, telemetry }: Props) { if (telemetry?.model_id) parts.push(telemetry.model_id); if (telemetry?.total_ms) parts.push(formatMs(telemetry.total_ms)); if (usage && (usage.prompt_tokens || usage.completion_tokens)) { - parts.push(`${usage.prompt_tokens} in \u00B7 ${usage.completion_tokens} out`); + parts.push(`${usage.prompt_tokens} input tokens`); + parts.push(`${usage.completion_tokens} output tokens`); } if (parts.length === 0 && !usage?.total_tokens) return null; // Fallback: just show total tokens if no telemetry - const summary = parts.length > 0 ? parts.join(' \u00B7 ') : `${usage!.total_tokens} tokens`; + const summary = parts.length > 0 ? parts.join(' - ') : `${usage!.total_tokens} tokens`; // Build expanded rows const rows: Array<{ label: string; value: string; color?: string }> = []; diff --git a/frontend/src/components/Dashboard/EnergyDashboard.tsx b/frontend/src/components/Dashboard/EnergyDashboard.tsx index dd996934..26a2a05b 100644 --- a/frontend/src/components/Dashboard/EnergyDashboard.tsx +++ b/frontend/src/components/Dashboard/EnergyDashboard.tsx @@ -9,6 +9,7 @@ import { ResponsiveContainer, } from 'recharts'; import { Zap, Activity, Thermometer, Hash } from 'lucide-react'; +import { fetchEnergy, fetchTelemetry } from '../../lib/api'; interface EnergySample { timestamp: string; @@ -75,10 +76,9 @@ export function EnergyDashboard() { const fetchData = useCallback(async () => { try { - const base = import.meta.env.VITE_API_URL || ''; const [energyRes, telRes] = await Promise.allSettled([ - fetch(`${base}/v1/telemetry/energy`).then((r) => r.ok ? r.json() : null), - fetch(`${base}/v1/telemetry/stats`).then((r) => r.ok ? r.json() : null), + fetchEnergy().catch(() => null), + fetchTelemetry().catch(() => null), ]); if (energyRes.status === 'fulfilled' && energyRes.value) { diff --git a/frontend/src/components/Sidebar/Sidebar.tsx b/frontend/src/components/Sidebar/Sidebar.tsx index 284fed1d..4f594f23 100644 --- a/frontend/src/components/Sidebar/Sidebar.tsx +++ b/frontend/src/components/Sidebar/Sidebar.tsx @@ -145,7 +145,7 @@ export function Sidebar() { {selectedModel || serverInfo?.model || 'Select model'} {modelLoading && ( - + Loading model... )}