docs(backlog) + fix(login-banner): B-0835 — installer config-bugs cluster (CORE: post-boot fully-operational chain without operator login; 5 sub-failures; CRITICAL self-reg didn't happen)#5349
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…ster (CORE REQUIREMENT: post-boot fully-operational chain without operator login; 5 sub-failures empirically anchored) Per operator 2026-05-26 across 5 messages from active physical hardware-support test: CORE REQUIREMENT: "i should not have to log in for any of this to start that defeats the purpose the machine should be fully operational after usb install and reboot no need for me to login it self registers and creates/joins cluster without intervention." Sub-failures empirically anchored: - Bug 1: hostname is `control-plane` not unique `node-<6hex>` (iter-5.2.2 code path didn't fire OR flake hardcodes hostName) - Bug 2: gh login not respected (auth chain broken; likely cascade with Bug 4) - Bug 3a: login banner shows password text (display) - Bug 3b: custom password operationally ignored — ROOT CAUSED: zeta-install.sh writes to /mnt/etc/zeta/ but initial-password.nix reads /etc/zeta/ via builtins.readFile at flake eval time; pure-mode + path-mismatch falls back to default hash - Bug 4 (CRITICAL): self-registration to maintainers/aaron/cluster-nodes/ did NOT happen (verified via gh api: dir doesn't exist on repo) Per operator's CORE REQUIREMENT framing, Bug 4 is the actual failure; Bugs 1-3 are sub-noise relative to "auto-operational chain doesn't work." ALSO LANDS: small login-banner.nix fix (Bug 3a) — replaces hardcoded `password: zeta-change-me` line with neutral text. Doesn't fix Bug 3b (operational) but does fix the display-leak that violates security discipline (banner exposes password text to anyone with physical screen access). Bug 3b + Bug 4 require separate fixes in subsequent PRs: - Bug 3b: rework initial-password.nix to read at activation-time (NixOS activationScripts) OR pass hash via --impure-flag invocation OR write hash to flake source tree before nixos-install eval - Bug 4: diagnose where cluster-register chain breaks (composes with B-0834 install log preservation for diagnostic substrate) Five empirical anchors in one physical hardware-support test session (B-0832 + B-0833 + B-0834 + B-0835 with 4 sub-bugs = 7 substrate- engineering targets) — strong validation of B-0831's reframing. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
920feaa to
a67a05a
Compare
There was a problem hiding this comment.
Pull request overview
This PR documents the B-0835 installer configuration bug cluster from a physical hardware-support test and makes a small NixOS login-banner change to stop displaying a default password on running systems.
Changes:
- Adds a new P1 backlog row for installer hostname, gh-auth, password, and self-registration failures.
- Adds B-0835 to the generated backlog index.
- Updates the NixOS getty login banner to avoid showing
zeta-change-me.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
full-ai-cluster/nixos/modules/login-banner.nix |
Replaces the displayed default password with install-time-only guidance. |
docs/backlog/P1/B-0835-installer-config-bugs-cluster-hostname-not-unique-gh-auth-not-respected-banner-password-disclosure-empirical-aaron-2026-05-26.md |
Adds the backlog row describing the installer bug cluster and diagnostics. |
docs/BACKLOG.md |
Adds the B-0835 entry to the P1 backlog index. |
Comment on lines
+15
to
+24
| - B-0833 | ||
| - B-0834 | ||
| tags: [installer, first-boot, hostname, gh-auth, login-banner, password-disclosure, operator-ux, physical-hardware-support-test, empirical-anchor, bug-cluster] | ||
| --- | ||
|
|
||
| ## Problem | ||
|
|
||
| Three install-config bugs surfaced in the same 2026-05-26 physical | ||
| hardware-support test session (4th, 5th, 6th empirical anchors after | ||
| B-0832 nmtui WiFi + B-0833 auth-tension + B-0834 log preservation). |
Comment on lines
+22
to
+23
| Three install-config bugs surfaced in the same 2026-05-26 physical | ||
| hardware-support test session (4th, 5th, 6th empirical anchors after |
Comment on lines
+48
to
+55
| - The flake's `control-plane` attribute hardcodes | ||
| `networking.hostName = "control-plane"` and overrides the | ||
| `injected-hostname.nix` module's `mkDefault` setting | ||
|
|
||
| Diagnosis: check whether `/etc/zeta/cluster-node-id` exists on the | ||
| installed system AND check `cat /etc/hostname`. If the file exists | ||
| but `/etc/hostname` shows `control-plane`, the module-vs-flake | ||
| priority is wrong. |
Comment on lines
+70
to
+71
| operator's GH user; check `/etc/zeta/operator-ssh-keys.nix` for | ||
| populated pubkey array; check `git -C /etc/zeta remote -v` for the |
|
|
||
| ```bash | ||
| ls -la /root/.config/gh/ # gh state directory | ||
| cat /etc/zeta/operator-ssh-keys.nix # injected pubkeys |
Comment on lines
+192
to
+194
| shows `control-plane` → flake-priority override; fix `injected- | ||
| hostname.nix` module priority OR change `control-plane.nix` flake | ||
| host attribute to not hardcode `networking.hostName` |
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
Per operator 2026-05-26 across 5 messages from active physical hardware-support test:
CORE REQUIREMENT: "i should not have to log in for any of this to start that defeats the purpose the machine should be fully operational after usb install and reboot no need for me to login it self registers and creates/joins cluster without intervention."
5 sub-failures empirically anchored
Bug 3b root cause
Timing mismatch in
initial-password.nix:zeta-install.shwrites hash to/mnt/etc/zeta/initial-hashedpassword✓initial-password.nixreads/etc/zeta/initial-hashedpasswordviabuiltins.readFileat flake EVAL TIME/mnt/etc/zeta/as/etc/zeta/; falls back to default hashfallbackHashWhat this PR lands
password: zeta-change-meline (Bug 3a; security/UX gain at every login)What this PR does NOT land (needs follow-up):
5 empirical anchors in 1 physical test session
B-0832 + B-0833 + B-0834 + B-0835 with 4 sub-bugs = 7 substrate-engineering targets surfaced from one physical hardware-support test — strong validation of B-0831's reframing.
🤖 Generated with Claude Code