Skip to content

cwb: answer the install boot's card page, or nothing installs - #122

Merged
tinic merged 1 commit into
mainfrom
cwb/installdrive-pick
Oct 1, 2026
Merged

tinic merged 1 commit into
mainfrom
cwb/installdrive-pick

Conversation

@tinic

@tinic tinic commented Sep 30, 2026

Copy link
Copy Markdown
Owner

tools/classicwb.sh cannot install anything today, and this is the two-word fix.

What happens

The install boot runs with no network board on purpose and a ClassicWB snapshot carries no DEVS:Networks, so hardware detection and the installed-driver fallback both come back empty. The card page opens with its ten checkboxes and none of them ticked, the harness's click loop presses Proceed at every page, and the Installer refuses the lot.

Measured 2026-09-30 on playhouse3: 145 clicks, the 150-poll cap, install_status=20, nothing installed. The failure then hides itself, because an empty drive passes every "this file is absent" assertion the harness makes.

Why

install/test/installdrive.c has carried DRIVE_PICK_OPTIONS and DRIVE_PICK_ID since it was written. Nothing ever passed them — the compile line handed it DRIVE_LEVEL, DRIVE_RUNS and DRIVE_YES_LABEL, which answers a yes/no page and cannot address a page of ten options.

knob value why that value
PICK_OPTIONS 10 the card page's option count
PICK_ID 4 gadget 4 is "A2065" — the board BOARD stages for the standing boot

The second row is the one that matters: because the tick is the same board tools/sana2-stage.sh stages, it cannot disagree with the driver_match gate that runs after the install. Both are env-overridable, since the option count and gadget order belong to Install-AmiNetXDuo's script rather than to this harness.

Why it went unnoticed

Nothing runs this path. ci.yml lists tools/classicwb.sh in a lint file list, not in a job, so no CI run has reached this line since the harness was last touched.

Evidence

With the two knobs set on playhouse3: the install completes, all five gates report ok, and the instance comes up on the network with its web shell. Without them: the run above.

One file, tools/classicwb.sh. No shipping surface — tools/ is not on it, so the changelog gate wants this in the git log.

🤖 Generated with Claude Code

The install boot runs with no network board on purpose and a ClassicWB
snapshot carries no DEVS:Networks, so hardware detection and the
installed-driver fallback both come back empty.  The card page then opens
with its ten checkboxes and none of them ticked, the run clicks Proceed at
every page, and the Installer refuses the lot: measured 2026-09-30, 145
clicks, the 150-poll cap, nothing installed.  An empty drive passes every
"this file is absent" assertion this harness makes, so that reads as a
harness that never got started rather than as the page it could not answer.

installdrive has carried DRIVE_PICK_OPTIONS and DRIVE_PICK_ID since it was
written, and nothing ever passed them: the compile line below handed it
DRIVE_LEVEL, DRIVE_RUNS and DRIVE_YES_LABEL only, which answers a yes/no
page and cannot touch a page of ten options.  Pass ten options and gadget 4,
"A2065" -- the board BOARD stages for the standing boot, which is what keeps
the tick in agreement with the driver_match gate that runs after the
install.  Both are knobs, because the option count and the gadget order
belong to Install-AmiNetXDuo's script rather than to this harness.

The path was unexercised for so long because nothing runs it: ci.yml lists
tools/classicwb.sh in a lint file list, not in a job, so no CI run has
reached this line since the harness was last touched.

Verified on playhouse3 with the two knobs set: the install completes, all
five gates report ok and the instance comes up on the network.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@tinic
tinic merged commit 314fd35 into main Oct 1, 2026
42 of 43 checks passed
@tinic
tinic deleted the cwb/installdrive-pick branch October 1, 2026 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant