status: consolidate CDN/upstream status into the header pill + tap panel

- pill label now shows KB/s when degraded ('cdn 23 KB/s'); tap opens a
  panel (replaces the transient toast) with origin/CDN state, KB/s,
  a sparkline of the ~1h /api/cdn hist, and last-updated age
- 60s poll while the page is visible (was: load/play/failure only)
- playback failure overlay appends CDN context when degraded/down
- buffer gauge + spinner untouched: client buffer state, not CDN state
- server unchanged: /api/cdn already returned everything
- tests: 3 hermetic browser tests (mocked /api/cdn via page.route —
  the throwaway server's probe runs live upstream, so its data is
  mocked out of the assertions); 37 passed
- docs: README + SPEC synced
This commit is contained in:
jozamudi committed 2026-09-20 23:53:47 +00:00
1 parent 63a677f028
commit 778bf2bfc1
5 files changed
+235 -37

No files matched your search

+4
View File
@@ -61,6 +61,10 @@ proxy is the way in. See [SPEC.md](SPEC.md) for the rest.
![detail](docs/img/detail.png)
- **Status** — the header pill shows upstream/CDN health (dots +
label); tap opens a panel with detail + the ~1h throughput trend.
A failure overlay names the CDN when it's the likely culprit.
- **Stats** — `?stats`: watch minutes, episodes, streaks, sub/dub
split, weekday/per-day heatmaps, top-10 shows, top searches
(30–365 day windows).