P6-03 repo size trend + agent-update UI fix + dashboard polish #21
@@ -371,7 +371,25 @@ Sizes: **S** = under a day, **M** = 1–3 days, **L** = 3–7 days.
|
||||
> `v0.9.0-11-gccaccd8-dirty` → `v9.9.9-smoke` in <5s; `.old` preserved
|
||||
> on disk; chip and hero tile cleared on reconnect; audit row landed.
|
||||
> Screenshots in `_diag/p6-update-sweep/`.
|
||||
- [ ] **P6-03** (M) Repo size trend graphs (sparkline on host card, full chart on repo page). _(Was P4-06.)_
|
||||
- [x] **P6-03** (M) Repo size trend graphs (sparkline on host card, full chart on repo page). _(Was P4-06.)_
|
||||
|
||||
> **As shipped (2026-05-07, branch `tidy-up-last-backup-projection`):**
|
||||
> Spec `docs/superpowers/specs/2026-05-07-p6-03-repo-size-trend-design.md`,
|
||||
> plan `docs/superpowers/plans/2026-05-07-p6-03-repo-size-trend.md`.
|
||||
> Migration 0023 introduces `host_repo_stats_history` (one row per
|
||||
> host per UTC day, last-write-wins per column via COALESCE — a
|
||||
> prune-only or check-only patch never nulls a backup-time size
|
||||
> we already captured). WS handler in `internal/server/ws/handler.go`
|
||||
> writes a history row alongside the existing `UpsertHostRepoStats`
|
||||
> call; failure is best-effort, logged at WARN. New `internal/web/sparkline`
|
||||
> package emits inline SVG (sparkline + two-axis chart with hover
|
||||
> dots and bytes/count formatting); golden-file tests, deterministic
|
||||
> output. Dashboard host row gains a 30d sparkline cell between
|
||||
> Repo size and Snapshots; host repo page gains a Trend panel with
|
||||
> server-rendered `30d | 90d | 1y` range pills (htmx outerHTML
|
||||
> swap, helper `buildRepoTrendView` shared between page-load and
|
||||
> fragment endpoint). No new dependencies, no client JS, no agent
|
||||
> change. CI green; in-browser smoke walk-through pending operator.
|
||||
- [ ] **P6-04** (M) Prometheus `/metrics` endpoint: per-host gauges (last backup timestamp, last backup status, repo size, snapshot count, agent online), server gauges (active alerts, build info), job duration histograms; protected by bearer token or IP allow-list. _(Was P4-08.)_
|
||||
- [ ] **P6-05** (S) Document Prometheus integration + sample Grafana dashboard JSON. _(Was P4-09.)_
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user