Repository navigation
speedwatch v0.2.0 — UI overhaul
A full pass over the web UI focused on usability and information density.
Dashboard & navigation
- New dashboard landing page: headline stats (passes today, fastest today, over-limit count, vehicles tracked, confirmed speeders), a "needs your attention" work queue (plateless passes, visual clusters to merge, low-confidence reviews), a top-vehicle leaderboard, and a recent-passes strip. The passes table now lives at
/passes. - Left sidebar navigation replaces the thin top navbar — all sections plus a Calibrate/Settings group, live pipeline status, and the app version.
Readability
- Speed banding across every view — green under the warn threshold, amber up to the limit, red over it. Configurable via
SPEED_LIMIT_MPH(default 20) andSPEED_WARN_MPH(default 16). - Passes list decluttered: dropped low-value columns, added Today/Yesterday day dividers, relative timestamps, and "over X mph" / "no plate only" filters.
- Vehicle page: fixed-size representative-image hero, banded stat tiles, and the dense grouping card split into clear "Similar plates" and "Visually similar" sections.
- Session page: entry/exit stills shown once at a consistent size with a trajectory inset (no more duplicate images at arbitrary sizes).
- Cover-fit images now crop from the top, keeping the vehicle visible when frames are scaled down.
New
- Light/dark theme toggle (persisted, no flash on load).
- Read-only /settings page showing the running configuration.
Fixes
- Invalid placeholder colour value; passes empty-state colspan.