Files
boocode/openspec/changes/token-analyzer-ui/specs/token-analytics-dashboard/spec.md
indifferentketchup c935687725 chore(openspec): drop 9 superseded proposals + 11 stub archive files
Drop 9 batch proposals that are superseded by the boocode-lift-analysis
(boocontext-audit, conductor upgrades, self-healing/verify-gate skills):
add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform,
conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul,
agent-reliability.

Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only)
that provide zero documentation value over the existing CHANGELOG.md + git tags.
2026-06-07 22:15:38 +00:00

2.7 KiB

ADDED Requirements

Requirement: Token analytics page route

The web app SHALL expose a route at /analytics that renders the token analytics dashboard.

Scenario: Route resolves to Analytics page

  • WHEN the user navigates to /analytics
  • THEN the Analytics component renders without crashing
  • AND the sidebar nav button for "Token Analytics" shows as active

Requirement: Aggregate usage summary

The dashboard SHALL display an aggregate summary of token usage across all data sources.

Scenario: Summary cards show totals

  • WHEN the analytics page loads
  • THEN the page displays summary cards for: total input tokens, total output tokens, total cost (USD), and total sessions tracked
  • AND each card shows a numeric value with a short label

Requirement: Per-session token breakdown

The dashboard SHALL display a list or table of recent sessions with per-session token and cost data.

Scenario: Session list renders

  • WHEN GET /api/coder/sessions/:id/agent-sessions returns data
  • THEN the page renders a table with columns: session name, agent/provider, input tokens, output tokens, cost, last active

Requirement: Per-tool cost breakdown

The dashboard SHALL display per-tool token consumption stats.

Scenario: Tool stats table renders

  • WHEN the analytics page loads
  • THEN it fetches and renders the per-tool cost stats from /api/tools/cost_stats
  • AND displays: tool name, call count, avg prompt tokens, avg completion tokens, total avg tokens

Requirement: Context window utilization

The dashboard SHALL display context window utilization data across sessions where available.

Scenario: Context usage section renders

  • WHEN session message data with ctx_used/ctx_max fields is available
  • THEN a section shows average context utilization percentage across sessions

Requirement: Token breakdown by category

The dashboard SHALL display token breakdown by category (system/user/assistant/tools/reasoning) where token_breakdown JSONB data exists.

Scenario: Category breakdown renders

  • WHEN a session has token_breakdown data on its tasks
  • THEN the dashboard shows per-category token counts and a visual breakdown (e.g., stacked bar or pie segment)

Requirement: Loading and error states

The dashboard SHALL handle loading and error states gracefully.

Scenario: Loading state

  • WHEN data is being fetched
  • THEN a loading indicator is shown in each section

Scenario: Error state

  • WHEN an API call fails
  • THEN the affected section shows an error message and a retry button
  • AND other sections continue to render independently