Dashboard: Show stale-data reason inline using Trackbox status language #22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The 'Stalled' badge appears on shipment cards next to the status badge, but its meaning is only revealed on hover via a
titletooltip. On touch devices there is no hover, so the badge is completely opaque. In the live instance, 8 out of 10 active shipments show 'Stalled' — it is the dominant state yet the least explained.Expected behavior
Users should understand without hovering what 'Stalled' means and why. There are two stall reasons:
scrape_failures— scraping was disabled after N consecutive failuresretention_expired— carrier tracking window has elapsedImplementation
File:
frontend/src/pages/Dashboard.tsx— theShipmentCardcomponent around line 72.Replace the current badge:
With a badge that includes a short inline reason:
scrape_failures→ show "Stalled · scrape errors"retention_expired→ show "Stalled · expired"Use a
⚠orAlertTrianglelucide icon (h-3 w-3) before the text to reinforce the warning visually.The
titletooltip can remain for the longer explanation, but the badge text itself must convey the category without requiring hover.Acceptance criteria
stall_reasonBrand identity alignment
This issue should turn the current generic amber
Stalledchip into a Trackbox-specific data transparency cue. The brand brief defines Trackbox as a calm logistics control plane: the UI must explain uncertainty and data staleness without alarmist or playful language.Use the status-language direction from the brief:
Delivery may be delayedwhen the latest carrier event is older than expected.Carrier data unavailableorNo new eventswhen scraping has stopped or no fresh source data exists.AlertTriangleicon so status is not color-only.Brand-compliant implementation notes
Last sync failed,Carrier retention window expired, orNo new carrier events.Last sync/Sourcemetadata, not only in the card tooltip.Additional acceptance criteria
Stalledalone.Migrated from GitHub issue #1: https://github.com/bullitt186/trackbox/issues/1
Original author: @bullitt186
Original created: 2026-06-27T13:22:06Z
Original labels: ux
Dashboard: Explain 'Stalled' badge inline — tooltip-only is not enoughto Dashboard: Show stale-data reason inline using Trackbox status languageImplemented in commit
bd6b0e7. The stalled badge now shows inline reason text with an AlertTriangle icon — "Stalled · scrape errors" for scrape_failures, "Stalled · expired" for retention_expired, and "Stalled" otherwise. No hover required, works on touch devices. Brand-aligned: amber color only on the badge, operational language, no alarmism.