Repository navigation
docs(hardware): record the OS release line, not the point release - #253
Conversation
`prometheus` and `oracle` were both recorded as Ubuntu 24.04.3 while both were
running 24.04.4 — `lsb_release -ds` on each, 2026-09-03. check_docs.py could
not see it: assertion 5 compares hardware.md's compute table against
network.md's segment tables, and the two copies were stale together.
Correcting the four cells would buy about as long as the next point release, so
the fix is to stop recording a fact that changes without anyone touching this
repository. The tables now name the release line — `Ubuntu Server 24.04 LTS`,
`Proxmox VE 9` — which changes only on a decision to rebuild. The running
version is already collected on every Linux host as
node_os_info{pretty_name="Ubuntu 24.04.4 LTS"}, from the same Alloy agents that
produce everything else, so nothing is lost by not duplicating it here.
Saruman's `Proxmox VE 9.2.11` goes the same way for the same reason. VLAN 30 is
not reachable from the monitoring host, so that row is truncated rather than
re-verified — but node_os_info reports it as Debian 13 (trixie) on a
7.0.14-12-pve kernel, which is PVE 9, so the shorter claim is the one the
telemetry actually supports.
A third version component in either table is now a check failure rather than a
house rule nobody can see, with the message naming node_os_info as the place to
look for the patch level. Verified by reintroducing 24.04.4 in each document in
turn and watching the check fail on it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new point-release detection in check_docs.py can miss point releases when a host appears multiple times in docs/network.md because it only inspects the first occurrence per host.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the documentation to record OS release lines (e.g., “Ubuntu 24.04 LTS”, “Proxmox VE 9”) instead of point releases, and extends the docs consistency check to fail if a point release is recorded in either docs table.
Changes:
- Update OS entries in
docs/network.md,docs/hardware.md, anddocs/architecture.mdto remove point-release pinning. - Extend
scripts/check_docs.pycompute-table check to reject OS cells containing a 3+ component version (point release), with a clearer assertion message.
File summaries
| File | Description |
|---|---|
| scripts/check_docs.py | Adds a guard to reject point-release OS values in compute/network docs tables. |
| docs/network.md | Replaces Ubuntu/Proxmox point releases with release-line values in segment tables. |
| docs/hardware.md | Replaces point releases with release-line values and documents the rationale in prose. |
| docs/architecture.md | Updates the Saruman OS mention to “Proxmox VE 9” to match the new rule. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Overlaps with #252, which edits the same two rows for a different reason — the |
…he first Review on #253: the guard read `seen`, which was built with `setdefault`, so it only ever saw a host's first row. `morpheus` has eight rows across the segment tables, and a point release written into any of the other seven would have passed. The dedupe belongs to the cross-document OS comparison, which needs one OS per host; the guard needs every row. Each row's OS cell is now tested as it is parsed, and identical (host, cell) pairs collapse into a set so one mistake is reported once rather than eight times. Verified by injecting `FreeBSD 15.0.1` into morpheus's sixth row — the check fails on it, where before it would not have been looked at. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
prometheusandoraclewere both recorded as Ubuntu 24.04.3 while both wererunning 24.04.4 —
lsb_release -dson each, 2026-09-03.check_docs.pycould not see it: assertion 5 compares
hardware.md's compute table againstnetwork.md's segment tables, and the two copies were stale together. Foundwhile checking
oraclefor #94.Which of the two fixes
Correcting the four cells buys about as long as the next point release, so this
takes the other option: stop recording a fact that changes without anyone
touching this repository.
prometheus,oracleUbuntu Server 24.04.3Ubuntu Server 24.04 LTSSarumanProxmox VE 9.2.11Proxmox VE 9The release line changes only on a decision to rebuild, which is an edit to
this repository. The running version is already collected on every Linux host
as
node_os_info{pretty_name="Ubuntu 24.04.4 LTS"}, from the same Alloy agentsthat produce everything else here, so nothing is lost by not duplicating it.
Sarumangets the same treatment for the same reason. VLAN 30 is not reachablefrom the monitoring host, so that row is truncated rather than re-verified —
but
node_os_inforeports it as Debian 13 (trixie) on a7.0.14-12-pvekernel, which is PVE 9, so the shorter claim is the one the telemetry actually
supports and the longer one never was.
The recurrence guard
A third version component in either table is now a check failure rather than a
house rule nobody can see, and the message names
node_os_infoas the place tolook for a patch level.
os_key()needed no change — it already comparesfamily and version rather than the string, and
24.04compares equal acrossthe two documents' different phrasings.
Verified the way a new rule should be: reintroducing
24.04.4in each documentin turn, and watching it fail on that document.
make lintandmake validateboth pass.🤖 Generated with Claude Code