Skip to content

dashboard: ingest-health is fetched once on mount, so a suppressed session started later is never shown #131

Description

@pitimon

What

getIngestHealth() is fetched once, from a mount-time effect in
dashboard/src/pages/DashboardPage.jsx (the effect around :191-205, no timer and no refresh
dependency). Start a Claude CLI session with --no-session-persistence after the dashboard is
already open and the notice never appears until a reload.

Why it matters

The notice exists to say "your tokens are not being counted right now". The realistic sequence is
the opposite of the one currently covered: a dashboard left open on a second monitor all day, and
a suppressed session started at some point during that day. tokentracker doctor is current on
demand; the dashboard is current only at page load.

This is disclosed as a known gap in #129's description — filing it so it does not live only there.

Suggested shape

Fold getIngestHealth() into the existing manual/auto refresh cycle, or poll at roughly the
detector's 30s TTL (DEFAULT_TTL_MS in src/lib/transcript-suppression.js) with an in-flight
guard so a slow response cannot stack requests. The server side already caches, so polling at the
TTL costs one cached read per interval rather than a process spawn.

Related precedent: #46 fixed exactly this class for the Pulse card — a new hook was added and never
wired into refreshAll(), so manual refresh left it stale.

Context

Found during the QA gate on #129: #129 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions