nas-burnin/app/routes
Brandon Walter 6b2367b892
Some checks are pending
Security scan / pip-audit (push) Waiting to run
Security scan / bandit (push) Waiting to run
Security scan / gitleaks (push) Waiting to run
Security scan / mypy (push) Waiting to run
feat: vital-signs strip above per-pattern meters (1.0.0-46)
The drawer's surface_validate area now leads with a row of operator
vitals computed from data already in the response:

- Temp: drive temperature with cool/warm/hot colour (≥48 red, ≥42 yellow)
- Speed: live MB/s, NULL until second progress sample arrives
- Elapsed: time since stage started_at
- ETA: extrapolated from overall progress; suppressed under 0.5%
  to avoid the "47 days remaining" artefact early in pattern 1

Live MB/s comes from a new bb_mbps column on burnin_stages, computed
in the badblocks parser as (delta_overall_pct / 800) * size_bytes / dt.
Skipped on phase transitions (per-phase pct resets) and sub-second
samples (noisy).

Drawer endpoint now passes drive.temperature_c through; JS stashes
the latest drive object in _DRAWER_LAST_DRIVE so the burn-in renderer
can pull it for the vitals row without changing call signatures.

Tightened table CSS in this same session is unrelated and shipped
already in earlier rounds via the bind-mounted app.css.
2026-05-08 23:13:58 -07:00
..
__init__.py fix: address Codex routes-split follow-up review (1.0.0-39) 2026-05-03 15:04:38 -05:00
_drives_helpers.py refactor: extract drives + burnin routes (1.0.0-37) 2026-05-03 09:59:15 -04:00
_helpers.py feat: rate limiter + mypy + lifecycle tests + routes/ split (1.0.0-33/-34) 2026-05-03 09:29:53 -04:00
audit.py refactor: extract history + audit + stats + report routes (1.0.0-35) 2026-05-03 09:44:22 -04:00
auth.py feat: rate limiter + mypy + lifecycle tests + routes/ split (1.0.0-33/-34) 2026-05-03 09:29:53 -04:00
burnin.py refactor: extract drives + burnin routes (1.0.0-37) 2026-05-03 09:59:15 -04:00
drives.py feat: vital-signs strip above per-pattern meters (1.0.0-46) 2026-05-08 23:13:58 -07:00
history.py refactor: extract history + audit + stats + report routes (1.0.0-35) 2026-05-03 09:44:22 -04:00
report.py refactor: extract history + audit + stats + report routes (1.0.0-35) 2026-05-03 09:44:22 -04:00
settings.py refactor: extract settings routes (1.0.0-36) 2026-05-03 09:48:24 -04:00
stats.py refactor: extract history + audit + stats + report routes (1.0.0-35) 2026-05-03 09:44:22 -04:00
system.py infra: rename truenas-burnin → nas-burnin (1.0.0-41) 2026-05-04 07:16:02 -07:00