ISO 1.28.0 source: the console stops showing the pairing code once bound (R-535)
gates / gates (push) Successful in 20s

Measured 2026-09-16: 25 minutes after a successful bind AND claim the console still
showed the pairing code under a line promising the screen refreshes itself.

print_bound_banner is printed the moment the bind delivery lands. It does NOT name
the dashboard URL: the one-shot delivery carries the customer id, passphrase and
mode, not the domain, so naming an address would mean inventing one. The residue —
the console still does not reflect the later CLAIM, because this unit has exited by
then — is recorded in the changelog rather than implied away.

Not published: the built image needs the release gate and the operator's yes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-16 17:05:35 +02:00
parent 638535b49b
commit c033b3b617
7 changed files with 145 additions and 1 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ set -euo pipefail
# does not exist: the ISO is a frozen artifact, while felhom-host-install.sh is fetched at RUN TIME
# from the website's git-sync of `main` (R-94/R-110), so whatever version an ISO carries, the script a
# box runs is always current. Coupling them would invent a constraint. The claim is corrected instead.
ISO_VERSION="1.27.1" # the ISO's own version. INDEPENDENT of felhom-host-install.sh's SCRIPT_VERSION,
ISO_VERSION="1.28.0" # the ISO's own version. INDEPENDENT of felhom-host-install.sh's SCRIPT_VERSION,
# which is fetched at run time from main and is not frozen into the image.
IMAGE="${FELHOM_ISO_ASSISTANT_IMAGE:-felhom-iso-assistant:trixie}"
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+22
View File
@@ -77,6 +77,27 @@ print_pairing_banner() {
} > "$CONSOLE_DEV" 2>/dev/null || printf 'Párosító kód: %s\n' "$code"
}
# print_bound_banner (R-535, v1.28.0) — the pairing banner is the LAST thing the console shows, and it
# stays there. Measured 2026-09-16 on a fresh box: 25 minutes after a successful bind AND claim, with
# four apps deploying, the monitor still read „a doboz keszen all, es a parosisara var" with a pairing
# code, under a line promising the screen refreshes itself. A volunteer watching that has no way to
# tell the box is finished, and waiting does not help.
#
# WHAT THIS CAN AND CANNOT SAY. The bind delivery carries the customer id, the passphrase and the mode
# — it does NOT carry the domain (see the emit() block in the 200 branch), so this banner cannot name
# the dashboard URL without inventing one. It says the true thing it knows: the box is connected and
# the setup is running. The address is in the e-mail the customer already has.
print_bound_banner() {
set_console_font
{ printf '\n================================================\n'
printf ' Felhom — a doboz össze van kötve. ✔\n\n'
printf ' A beállítás magától folytatódik, ez néhány percig tart.\n'
printf ' A vezérlőpult címét az e-mailben kapott levél tartalmazza.\n\n'
printf ' Ezen a gépen nincs több teendőd.\n'
printf '================================================\n\n'
} > "$CONSOLE_DEV" 2>/dev/null || printf 'A doboz össze van kötve.\n'
}
# install_felhom_issue (R-496, v1.27.0) — the text above the console login prompt is Felhom's, not
# Proxmox's. Measured 2026-09-14 (drill screen s29): the first thing a household read on a fresh box was
# `Welcome to the Proxmox Virtual Environment … connect to https://<ip>:8006/` — the operator admin UI,
@@ -501,6 +522,7 @@ run_pairing() {
case "$code" in
200)
log "bind DELIVERED — writing credentials to the env and switching to direct install"
print_bound_banner # R-535: replace the pairing code on the console with the truth
# Parse the one-shot delivery into shell-safe env assignments (never echo the passphrase).
local envtext
envtext=$(printf '%s' "$body" | python3 -c '