Files
dashboards/.agents/phases/todo/22_disks_hide_unconfigured/02_verification.md
T
ducoterra f9b1565abb chore(agent): phase roadmap from TODO.md, 5 phases
Convert the 11 TODO items to phases 20-24 (masthead/nav polish,
page cleanups, /disks hiding unconfigured hosts, LLM rate window,
dev mTLS rollout). TODO.md cleared; items now live in
.agents/phases/todo/.

LLM-Generated: true
2026-10-20 18:06:46 -04:00

2.7 KiB

Task 02 — Live verification: gateway gone, the rest intact

Phase: 22_disks_hide_unconfigured · Source: TODO.md:13 — "VMs that don't have smartctl enabled disks should not show up. Gateway shouldn't even be a host on the disks page." Story: n/a

Objective

The gate is proven on the live fleet, read-only: the dev server (invariant 10: ./scripts/dev-server.sh restart, sign in with testpass) answers /api/health with all nine sources ok, the /disks page shows deskwork and driveripper only, and every number that used to render still renders. No fleet change is made — this task dials the fleet and screenshots it.

Work

  1. ./scripts/dev-server.sh restart — the dev server up on http://127.0.0.1:8090; ./scripts/dev-server.sh status — the nine-source table: host:driveripper, host:deskwork, host:gateway, disks:driveripper, disks:deskwork, disks:gateway, nut, llm:gufo, llm:vllm all ok (gateway's agent still answers — the job is ok; only the page hides it, which is the point: the disks:gateway health record must not be touched by the API filter, and status is the proof).
  2. Signed-in GET /api/disks/snapshot: no gateway entry, deskwork and driveripper present with their smartctl_available: true payloads; GET /api/summary: the disks block's hosts_total is 2, the per-host rows are the two, and the system block still lists all three hosts (the filter is /disks-scoped only — a system host list that lost gateway would be the over-reach the pin must catch).
  3. Browser on /disks (invariant 10): the fleet header reads the two-host sum; gateway has no card and no why-line; deskwork's nvme0n1 and driveripper's 16 drives render exactly as before the phase (the live SMART numbers from the fleet record); a screenshot in data/logs/.
  4. The None-arm check: no live host is currently None (all three agents post-date the SMART pass), so the None arm is proven by the task-01 pins only — state that in the notes rather than fabricating a live case.

Testing & Quality

  • Coverage: n/a (verification task; the gate's coverage is task 01's)
  • The read-only rule: no POST to the fleet, no upsd command, no unit change — a live test that writes is not a test (AGENTS.md testing policy)

Completion Criteria

  • ./scripts/dev-server.sh status — nine sources ok, including disks:gateway (the job is healthy; only the page hides it)
  • /api/disks/snapshot has no gateway entry; /api/summary's system block still lists gateway (screenshot or transcript in data/logs/)
  • the /disks page shows the two live hosts with their pre-phase numbers (screenshot in data/logs/)
  • the full suite + bash .agents/validate.sh green