Commit fb17d49
feat(status-pages): restore third-party visual table with sparkline
Ports the uptime sparkline and filtered table output from PR #83 into
the Rust implementation. The previous Rust code dumped raw JSON and
silently ignored --search/--active flags.
- Add typed structs for updog.ai response deserialization
- Implement filter_providers() — case-insensitive search on provider_name
or display_name, optional active-outage-only filter
- Implement build_sparkline() — 30-day colored chart (green=operational,
red=outage, dim·=pre-monitoring), time-injectable for testability
- Replace comfy-table with a hand-rolled ASCII table: comfy-table counts
ANSI escape bytes as visible width, inflating the UPTIME column; the
manual renderer computes column widths from plain strings and inserts
the sparkline verbatim so ANSI codes never distort alignment
- Wire --search and --active flags through to third_party_list() in both
main.rs and test_commands.rs
- Add 14 unit tests covering filtering, sparkline edge cases, and table
layout (headers, data, block chars)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 45ccc84 commit fb17d49
3 files changed
Lines changed: 421 additions & 8 deletions
0 commit comments