• mward4 released this 2026-05-26 02:32:38 -04:00 | 38 commits to main since this release

    OpenPXE v0.4.63

    Three UI fixes operators flagged on v0.4.62, plus the queued PXE-theme
    research note for the next release. No backend behaviour changes.

    Settings card alignment

    The SSO header now sits in the same 4-column grid as the Administrator
    account card above it — display name / IdP logo URL / Metadata source /
    IdP metadata URL, column-for-column aligned with Current password /
    New username / New password / Confirm. Previously the SSO row used a
    3-column grid that didn't line up with the 4-column row above and the
    metadata URL hung underneath in its own row.

    When the operator picks "Metadata XML" the URL column collapses out and
    the multi-line <EntityDescriptor> textarea drops onto its own
    full-width row below — there's no way to fit a 6-row textarea into a
    single grid cell without making everything around it look stretched.

    Enable-single-sign-on checkbox now actually paints

    <meta name="color-scheme" content="dark light"> in index.html was
    telling the browser "default to dark form chrome on a tie" — which
    forced the SSO enable-checkbox to render as an opaque black square in
    light mode regardless of the accent-color CSS hint. (Specs are
    specs: accent-color only repaints the check mark, not the
    container.)

    Two things land in v0.4.63:

    1. CSS color-scheme tracks data-theme directly — dark when the
      OpenPXE theme is dark, light when it's light. Overrides the meta
      so the rest of the native chrome (date pickers, scroll bars) also
      follows the active palette.
    2. The checkbox itself is now custom-styled — 16x16 rounded square,
      accent fill + tick on :checked, hover ring, focus glow. Chrome,
      Firefox and Safari now render the control identically across both
      palettes; we no longer depend on whichever WebKit happens to honour
      accent-color.

    Dropdown affordance restored

    With -webkit-appearance: none on inputs and selects (used to bring
    password/text inputs to a consistent baseline), the native dropdown
    arrow disappeared on <select>. That's why "Metadata source" looked
    squished — there was no visible cue the field was a picker. v0.4.63
    paints a chevron back in via a data-URI SVG (themed light/dark) and
    reserves 30 px of right-padding for it.

    Spacing under the action buttons

    Update credentials and Save SSO settings now sit with explicit
    margin above them so they no longer butt against the input row above.

    Queued: iVentoy-style PXE menu theming

    docs/queued/ipxe-pxe-menu-theme-research.md captures the design for
    the next release:

    • iVentoy uses iPXE's console --picture with baked-in per-resolution
      PNGs (1024×768 default, plus 1280×1024 and 1920×1080 selectable in
      its Configuration tab). No EDID auto-detect — daemon-side resolution
      pick.
    • The same primitive is already wired in crates/http-api/src/ipxe_script.rs.
    • Plan: extend the existing pxe_logo.rs compositor to emit
      per-resolution framed PNGs with title bar + footer painted into the
      background, then console --left/--right/--top/--bottom insets the
      iPXE menu into the framed window. This lands once the
      IMAGE_PNG-enabled iPXE rebuild ships on native x86_64 hardware.

    Container image

    • gitea.milesward.dev/mward4/openpxe:0.4.63
    • gitea.milesward.dev/mward4/openpxe:latest

    linux/amd64; static-musl /openpxe binary unchanged.

    Quality

    • 142 tests passing (unchanged from v0.4.62).
    • cargo clippy --workspace --all-targets -- -D warnings clean.

    Compatibility

    • Existing deployments upgrade in place. No data-file format changes;
      auth.json, branding.json, sso.json, hosts.json, meta.json
      all read identically.
    • Browser cache-bust from v0.4.62 carries the new asset URLs into
      every session without a hard refresh.
    Downloads