Summary
The agentic loop reports cacheCreationInputTokens and cacheReadInputTokens on every ask's AskDiagnostics (populated since v0.9.0-rc.1 / quality-push Phase 1). Benchmark runs show a 99.6% cache-read ratio and ~70% input-token savings — a real cost win worth making visible.
Today none of those fields surface in the web UI. Operators have to parse AskDiagnostics by hand to see the savings.
What needs to happen
- On the Monitor page (admin LLM activity), add two new columns/rows for the agentic rows:
cache_read_tokens
cache_creation_tokens
- Add a derived "cache savings %" =
cache_read / (cache_read + cache_create + regular_input).
- On the dashboard home page, add a small stat card showing aggregate cache savings across the last 14 UTC days.
- No backend changes — the diagnostics already flow through
AskDiagnostics.
Where to look
web/src/app/(app)/admin/llm/page.tsx — LLM job list (target for the per-job view).
web/src/app/(app)/page.tsx — dashboard home (target for the aggregate stat).
web/src/lib/graphql/queries.ts — may need to add the new diagnostic fields to the query selection set.
internal/qa/types.go — AskDiagnostics with CacheCreationInputTokens + CacheReadInputTokens.
Acceptance
- The LLM activity page shows cache-read and cache-creation token counts per agentic job.
- A "cache savings" percentage is rendered per-row.
- The dashboard home shows an aggregate number.
Difficulty
Beginner-friendly for React/TypeScript developers. Similar shape to issue #6 (LLM cost rendering) — data is available, just needs to be displayed.
Summary
The agentic loop reports
cacheCreationInputTokensandcacheReadInputTokenson every ask'sAskDiagnostics(populated since v0.9.0-rc.1 / quality-push Phase 1). Benchmark runs show a 99.6% cache-read ratio and ~70% input-token savings — a real cost win worth making visible.Today none of those fields surface in the web UI. Operators have to parse
AskDiagnosticsby hand to see the savings.What needs to happen
cache_read_tokenscache_creation_tokenscache_read / (cache_read + cache_create + regular_input).AskDiagnostics.Where to look
web/src/app/(app)/admin/llm/page.tsx— LLM job list (target for the per-job view).web/src/app/(app)/page.tsx— dashboard home (target for the aggregate stat).web/src/lib/graphql/queries.ts— may need to add the new diagnostic fields to the query selection set.internal/qa/types.go—AskDiagnosticswithCacheCreationInputTokens+CacheReadInputTokens.Acceptance
Difficulty
Beginner-friendly for React/TypeScript developers. Similar shape to issue #6 (LLM cost rendering) — data is available, just needs to be displayed.