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
2.7 KiB
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
./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:vllmallok(gateway's agent still answers — the job isok; only the page hides it, which is the point: thedisks:gatewayhealth record must not be touched by the API filter, andstatusis the proof).- Signed-in
GET /api/disks/snapshot: nogatewayentry,deskworkanddriveripperpresent with theirsmartctl_available: truepayloads;GET /api/summary: the disks block'shosts_totalis 2, the per-host rows are the two, and thesystemblock still lists all three hosts (the filter is/disks-scoped only — asystemhost list that lost gateway would be the over-reach the pin must catch). - Browser on
/disks(invariant 10): the fleet header reads the two-host sum; gateway has no card and no why-line; deskwork'snvme0n1and driveripper's 16 drives render exactly as before the phase (the live SMART numbers from the fleet record); a screenshot indata/logs/. - The
None-arm check: no live host is currentlyNone(all three agents post-date the SMART pass), so theNonearm 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
POSTto the fleet, noupsdcommand, no unit change — a live test that writes is not a test (AGENTS.md testing policy)
Completion Criteria
./scripts/dev-server.sh status— nine sourcesok, includingdisks:gateway(the job is healthy; only the page hides it)/api/disks/snapshothas no gateway entry;/api/summary's system block still lists gateway (screenshot or transcript indata/logs/)- the
/diskspage shows the two live hosts with their pre-phase numbers (screenshot indata/logs/) - the full suite +
bash .agents/validate.shgreen