lab onboarding flow on a fresh Ubuntu 24 box has multiple gaps and one hard breakage #281
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_skills#281
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
On a brand-new Ubuntu 24 root account, following the documented install path (curl one-liner →
lab user init→lab install core) hits four distinct issues that combine to make the first-run experience unworkable. Reproduced on a freshssh root@<vm>Ubuntu 24.04 LTS install.Environment
crates/lab/README.mdlabversion installed:lab 0.1.0Issues
1.
install.shfinishes, butlab pathdoesn't work yetAfter
curl … install.sh | bash,labis installed at~/hero/bin/laband on PATH. The README implies users should next runlab path(or eval it) to load the Hero env. But:Two problems in one:
lab pathhas a hard prerequisite (lab user init) that neitherinstall.shnor the README mentions. A new user follows the README, runslab path, gets this output, and has no idea what to do —lab user initis nowhere in the install instructions.echo … >&2 / exit 1) is appropriate when piped througheval, but interactively it's confusing — looks like the binary is printing source code at the user.Fix:
install.sh: print a clear "next: runlab user init" line, and ideally add the canonical PATH export to~/.bashrcautomatically.lab user initan explicit step between install and "use".lab pathshould detect a TTY and print a normal stderr error in that case; emit the eval-friendly form only when piped.2.
lab user initsilently skips secrets import — but the token is already collectedlab user initasks for the FORGE_TOKEN, validates it, clones the secrets repo — and then refuses to import the secrets intohero_proc"because hero_proc isn't running." But:lab user initcould either (a) start hero_proc at the end of init or (b) defer the import to the first hero_proc start.Instead it prints a warning that looks like an error, then prints the success banner. The user has no obvious next step to fix it.
Fix: either auto-import the secrets at the end of the next
hero_procstart, or change the wording to "secrets will be imported on next hero_proc start (runlab install corenext)" so it doesn't read as a failure.3.
lab install coreis killed mid-install when systemd self-upgrades over SSHlab install coreinvokessudo apt-get install …for ~166 packages in the foreground. The package list includessystemd,systemd-sysv,udev,libsystemd-shared, etc. Upgrading systemd on a live host triggers a systemd re-exec, which restarts sshd. The SSH session terminates,SIGHUPpropagates to the shell's process group, andaptdies mid-install — leaving dpkg in a broken state.Reproduce:
The subsequent retry fails immediately with
Unmet dependencies. Try 'apt --fix-broken install' with no packages— i.e., lab leaves the host in a state it can't self-recover from.Two coupled bugs:
hero_proc_serverstart becausescreen(one of the missing 651 packages) was never installed.Workaround that made it succeed
Running
lab install coredetached survives the sshd restart:This should not be required from the documented onboarding flow.
Priority
All four are blockers for the new-user experience. #3 is the most severe — it leaves the host in a broken state with no obvious recovery path.
Closed as solved by PR #286