fix(B-0835 Bug 4+5 — Aaron 2026-05-27 control-plane install): storage probe filters 0B devices + gh CLI in installed system PATH#5385
Merged
AceHack merged 1 commit intoMay 27, 2026
Conversation
…al anchors): zeta-install.sh storage probe filters 0B devices + common.nix adds gh CLI to systemPackages Two empirical anchors from Aaron's iter-5.4 install of `node-e5a176` (PR #5380 self-registered) where install completed but operator hit two distinct gaps on first login: Bug 4 — `/dev/sda 0B` zero-size storage device in node.yaml ================================================================ The storage probe in zeta-install.sh (line 781) emitted EVERY block device from lsblk, including 0-byte placeholder devices (empty SD card readers, empty optical bays, removable-media readers without media). Aaron's Intel Core Ultra 9 185H node has /dev/sda 0B (likely the laptop's empty SD card reader) which got registered as "storage" — Copilot P1 finding on PR #5380. Fix: add `$2 != "0B"` filter to the awk pipeline so zero-size placeholders are excluded from the spec.hardware.storage list. - STORAGE_LINES=$(lsblk -ndo NAME,SIZE,TYPE -e7 2>/dev/null | - awk '$3=="disk"{print "..."}' || echo "") + STORAGE_LINES=$(lsblk -ndo NAME,SIZE,TYPE -e7 2>/dev/null | + awk '$3=="disk" && $2!="0B"{print "..."}' || echo "") This prevents reconcilers reading spec.hardware.storage from treating 0-byte devices as usable storage targets. Bug 5 — gh CLI not in installed system's PATH after reboot ================================================================ Operator framing: "when i log in gh command is not found" The installer ISO had gh in PATH (used by iter-5.4.0 for `gh auth login` during Step 6.8) but common.nix systemPackages did not include gh, so post-reboot the auth tokens stored in ~/.config/gh are useless without the binary. The gap surfaced empirically on Aaron's first login to the freshly-installed node-e5a176. Fix: add `gh` to common.nix environment.systemPackages so the installed system has it for ongoing operator workflows (re-auth, ssh-key sync, future register/deregister-node tooling, kubectl helpers that wrap gh, etc.). Composes with: B-0813 (cluster-node schema), B-0817 (register-node tool), iter-5.4 install cascade. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two empirical anchors from Aaron's iter-5.4 install of `node-e5a176` (PR #5380 self-registered cleanly) where post-reboot login surfaced two distinct gaps:
Bug 4 — `/dev/sda 0B` zero-size device in node.yaml
Storage probe at zeta-install.sh:781 emitted every block device, including 0-byte placeholders (empty SD card readers, optical bays). Aaron's Intel Core Ultra 9 185H node registered `/dev/sda 0B` → Copilot P1 on PR #5380.
Fix: `awk '$3=="disk" && $2!="0B"{...}'` filter excludes zero-size devices.
Bug 5 — `gh: command not found` on first login
Operator: "when i log in gh command is not found". Installer ISO had gh (iter-5.4.0 used it for `gh auth login` during install) but `common.nix` systemPackages didn't include it — auth tokens in `~/.config/gh` were stranded without the binary.
Fix: add `gh` to `common.nix` `environment.systemPackages` so the installed system has it for re-auth + ssh-key sync + future register/deregister tooling.
Test plan
Composes with
🤖 Generated with Claude Code