Skip to content

Firstboot 2009 console theme#19

Draft
Deadbytes101 wants to merge 25 commits into
performance/randomx-sustained-hashfrom
ui/firstboot-2009-theme
Draft

Firstboot 2009 console theme#19
Deadbytes101 wants to merge 25 commits into
performance/randomx-sustained-hashfrom
ui/firstboot-2009-theme

Conversation

@Deadbytes101

Copy link
Copy Markdown
Owner

Purpose

Give the RIGOS firstboot selection flow a late-2000s / early-2010s appliance setup aesthetic while preserving the existing tty1 and whiptail architecture.

Tracks #18.

Design

  • deep blue root background
  • light gray / silver dialog panels
  • blue active selection rows and buttons
  • static ASCII-only appliance backtitle
  • SELECT, BACK, NEXT, APPLY, and CONTINUE button labels
  • no X11, Wayland, Electron, browser, framebuffer daemon, or new graphical stack

Implementation boundary

The Python firstboot workflow is unchanged. A dedicated wrapper:

  • exports deterministic NEWT_COLORS
  • adds the static non-secret backtitle
  • maps button labels by dialog type
  • executes the existing /usr/bin/whiptail

A systemd drop-in selects the wrapper through the already-supported RIGOS_WHIPTAIL environment variable. Image construction explicitly installs the wrapper as executable.

Safety

  • no persistent state schema change
  • no miner, MSR, SSH, runtime-render, identity, or config-engine behavior change
  • no secret material in title or backtitle
  • existing tty1 reset and VT deallocation remain authoritative
  • ASCII-only source for broad console compatibility

Verification added

Source tests assert:

  • systemd wiring
  • theme palette markers
  • backtitle and button mappings
  • continued use of whiptail
  • absence of graphical-runtime markers
  • executable installation wiring

Branch relationship

This is a stacked draft based on performance/randomx-sustained-hash at exact head 527fdbdc49f7b94b26aab2c2386463d261672cf4. It must not be merged into that branch while PR #15 physical endurance evidence is still being collected.

Copy link
Copy Markdown
Owner Author

Overnight engineering handoff

Current UI head:

2dc0b51160fe0b7ad0e5e45bd9f39d7a63b542ae

Completed in this pass:

  • dedicated ASCII-only whiptail presentation wrapper
  • deterministic blue/silver NEWT_COLORS palette
  • static non-secret appliance backtitle
  • dialog-specific button labels: SELECT, BACK, NEXT, APPLY, CONTINUE
  • systemd drop-in through the existing RIGOS_WHIPTAIL seam
  • explicit image executable installation
  • backend executable validation with fail-fast exit 127
  • injectable test backend while production remains /usr/bin/whiptail
  • static Rust contract tests
  • Unix behavioral test that executes the real wrapper against a fake backend
  • behavioral proof of backtitle, argument preservation, menu button mapping, and exact backend exit-code propagation
  • local preview harness at scripts/preview-firstboot-theme.sh

Boundary remains clean:

  • Python firstboot workflow unchanged
  • config, identity, persistent state, miner, MSR, SSH, and runtime authority unchanged
  • no X11, Wayland, Electron, browser, or new display stack
  • PR RandomX sustained-hash performance authority #15 and the physical performance soak are untouched

Current verification truth:

SOURCE_IMPLEMENTATION=COMPLETE
STATIC_TESTS=ADDED
BEHAVIORAL_TEST=ADDED
PREVIEW_HARNESS=ADDED
GITHUB_WORKFLOW_RUN=NOT_PRESENT
COMBINED_STATUS=EMPTY
SOURCE_GATE=NOT_YET_RUN
EXACT_IMAGE_PREVIEW=NOT_YET_RUN
PR=DRAFT_OPEN_UNMERGED

No PASS is claimed until the authoritative source gate runs on this exact head. The next action is to run the standard WSL/Linux source gate, then inspect a real whiptail preview before any image build.

Copy link
Copy Markdown
Owner Author

UI branch advanced: source gate and preview package ready

Exact current head:

490d1391bbd1d209194ddcd70d8984755012f23e

New work completed:

  • authoritative Linux source-gate workflow added for future base-branch execution
  • preview harness expanded to menu, input, confirm, message, and all
  • preview remains read-only and does not reference persistent state, systemd, miner, MSR, or config authority
  • preview safety contracts added
  • console-theme developer note added in README.TXT style
  • existing behavioral wrapper test retained

GitHub has not created a workflow run for this head because the new workflow is introduced by the pull request and is not present on the current base branch. The performance branch will not be modified merely to force CI.

Authorized local verification from the repository root:

powershell -ExecutionPolicy Bypass -File .\scripts\verify-wsl.ps1

Expected final marker:

RIGOS_WSL_SOURCE_GATE=PASS

Theme preview inside WSL/Linux:

bash scripts/preview-firstboot-theme.sh all

The preview does not activate, stop, or reconfigure mining. PR remains draft and unmerged until exact-head source verification and a real terminal visual inspection pass.

Copy link
Copy Markdown
Owner Author

First local verification failure analyzed and fixed

Operator evidence exposed two independent issues:

  1. cargo fmt --check rejected crates/rigos-config/tests/firstboot_theme.rs.
  2. WSL preview executed the extensionless shell wrapper with CRLF line endings, causing /bin/sh to reject set -eu.

A local branch-mapping mistake was also observed: git switch ui/firstboot-2009-theme failed, then git pull origin ui/firstboot-2009-theme fast-forwarded the currently checked-out local branch to the UI head. Remote PR #15 was not modified, but the local branch name must be repaired.

Fixes now on exact UI head:

5359482a8f5c54d5338b68bb632b85516b96bdfd
  • Rust test source formatted according to cargo fmt output
  • .gitattributes now pins rigos-firstboot-* runtime scripts to eol=lf
  • source test added so the LF contract cannot be removed silently
  • no change to PR RandomX sustained-hash performance authority #15, production image, miner, or physical node

Verification remains pending until the operator refreshes the local worktree from this head and reruns the WSL source gate and visual preview. No PASS is claimed yet.

Copy link
Copy Markdown
Owner Author

Visual review correction: remove synthetic slash separators

The first real terminal preview confirmed that the palette and layout are on target, but the // separators made the screen read like generated cyber styling rather than an authentic late-2000s setup utility.

Exact UI head now:

b3900e2379984bbb9b3e4b5e7ccf52b4637b8639

Changes:

  • backtitle is now RIGOS SETUP UTILITY LOCAL NODE CONFIGURATION
  • menu title is now FLIGHT SHEET SELECTION
  • input title is now NODE IDENTITY
  • confirmation title is now COMMIT CONFIGURATION
  • completion title is now SETUP COMPLETE
  • menu copy now says Choose how this node should be configured.
  • static tests reject // in service and wrapper presentation strings
  • preview tests reject // in all preview titles
  • final rustfmt-sensitive LF-contract assertion was rewritten to stable formatted source

The screenshot also confirms that blue root, gray panel, active-row highlight, button labels, and 80-column layout render correctly under WSL Terminal.

RIGOS_THEME_PREVIEW_EXIT=255 means the dialog was exited with Escape or its window was closed; it is not a renderer failure. Exact-head source verification remains pending.

Copy link
Copy Markdown
Owner Author

Visual review accepted; rustfmt-only gate fix pushed

The latest terminal screenshot is accepted as the visual baseline for the 2009-style firstboot selector:

  • plain setup-utility wording
  • no synthetic slash separators
  • blue root background
  • gray panel with blue border
  • readable selected-row highlight
  • stable 80-column layout
  • visible keyboard hints and button labels

The local branch mapping is now correct and clean:

ui/firstboot-2009-theme            b3900e2
performance/randomx-sustained-hash 527fdbd
wrapper EOL                        i/lf w/lf attr/text eol=lf

The latest source-gate failure was limited to two rustfmt line-wrap expectations. Those exact changes are now committed on:

f2660f62c9cedfe8389f3d8e12bb65ea5aac33dd

No behavior, theme color, runtime, image, miner, or performance-branch code changed in this fix. Exact-head source verification remains pending; PR stays draft and unmerged.

Copy link
Copy Markdown
Owner Author

Source-gate policy collision fixed without weakening policy

The exact-head WSL run reached the final repository policy scanner and failed only because the Rust integration test contained a literal Command::new("sh") inside crates/. The scanner correctly rejected it as a forbidden external command path.

Fix now on UI head:

fdce587592d36cde6eafc90cece7ba1693bddc7b

Changes:

  • removed shell process execution from the Rust crate test
  • retained Rust static contracts for theme wiring, LF policy, no GUI stack, and no slash separators
  • added scripts/verify-firstboot-theme-wrapper.sh
  • shell verifier proves exact argument order, button mapping, backend exit-code propagation, and fail-closed exit 127 for a missing backend
  • authoritative verify-wsl-entrypoint.sh now runs the shell verifier after the standard source gate
  • WSL tool preflight now explicitly requires cmp and diff
  • added a Rust contract proving the authoritative WSL gate invokes the behavioral verifier

The external-command policy scanner remains unchanged and no exception was added. No performance branch, miner, MSR, runtime authority, or image bytes changed.

Exact-head source verification is pending one rerun. PR remains draft and unmerged.

Copy link
Copy Markdown
Owner Author

Exact-head WSL source gate PASS

Verified exact UI head:

fdce587592d36cde6eafc90cece7ba1693bddc7b

Authoritative local WSL verification completed successfully:

RIGOS verification passed
RIGOS firstboot theme wrapper verification passed
RIGOS_WSL_SOURCE_GATE=PASS

Relevant results:

  • firstboot theme contract tests: 5/5 passed
  • read-only preview tests: 2/2 passed
  • firstboot tty release tests: 3/3 passed
  • runtime publication and gate tests passed
  • miner observer authority tests passed
  • miner stability tests passed
  • RandomX MSR authority tests passed
  • release build passed
  • repository policy scanner passed
  • shell behavioral verifier passed exact argument order, button mapping, exit-code propagation, and missing-backend fail-closed behavior

This closes the exact-head source gate for PR #19. Visual review is also accepted. Exact image construction and image-level verification remain pending. PR remains draft and unmerged.

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