Skip to content

refactor(modules): Tier 2 roadmap (palette, services/compat, desktop guards, hw/platform split)#10

Merged
UnbreakableMJ merged 1 commit into
mainfrom
refactor/tier2
Jun 24, 2026
Merged

refactor(modules): Tier 2 roadmap (palette, services/compat, desktop guards, hw/platform split)#10
UnbreakableMJ merged 1 commit into
mainfrom
refactor/tier2

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Executes Tier 2 of the bravais-next.texi roadmap (Tier 1 already merged). Four
structural cleanups, all semantically neutral.

Changes

  • S9 — single-source palette: add lib/colors.nix (canonical), flake.nix imports it as
    steelborePalette; delete dead lib/default.nix (dup palette + unused mkSteelboreModule).
  • S13 — relocate services/compat: podmanmodules/services/podman.nix
    (steelbore.services.podman), appimagemodules/compat/appimage.nix
    (steelbore.compat.appimage); packages/system.nix is now packages-only. (nix-ld/envfs stay
    in core.)
  • S11 — desktop guard assertions: modules/desktops/assertions.nix asserts
    leftwm.enable -> services.xserver.enable (real X11 invariant, satisfied today). Kitchen-sink
    multi-DE setup unchanged.
  • S8 — split hardware/platform: modules/platform/x86-64.nix owns the x86-64 ISA level + all
    compiler/linker flags under steelbore.platform.x86_64; modules/hardware/intel.nix is now
    vendor-only (kvm-intel, microcode). Host pins
    steelbore.platform.x86_64 = { enable = true; marchLevel = "v3"; }.

Verification

  • bravais-thinkpad toplevel drvPath unchanged (ql9gwmrs…) — proves the build is
    byte-identical after all four changes.
  • bravais-thinkpad-unstable config evaluates clean (shares the modules).
  • nixfmt --check clean on all changed/new files.
  • podman.enable & programs.appimage.enable still true; RUSTFLAGS still
    target-cpu=x86-64-v3; all config.assertions pass; old steelbore.hardware.intel.marchLevel
    option removed.
  • Docs synced: PRD.md, TODO.md.

🤖 Generated with Claude Code

… guards, hw/platform split

Execute Tier 2 of the bravais-next roadmap (bravais-next.texi). All four
changes are semantically neutral: the bravais-thinkpad toplevel derivation
path is unchanged (ql9gwmrs…), proving the built system is byte-identical.

- S9 single-source palette: add lib/colors.nix (canonical) and import it in
  flake.nix as steelborePalette; delete the dead lib/default.nix (duplicate
  palette + unused mkSteelboreModule).
- S13 relocate services/compat out of packages/system.nix: new
  modules/services/podman.nix (steelbore.services.podman) and
  modules/compat/appimage.nix (steelbore.compat.appimage); system.nix is now
  packages-only. Toggles enabled in hosts/common.nix; modules wired in flake.nix.
  (nix-ld/envfs stay in core — foundational, not optional compat.)
- S11 desktop guard assertions: new modules/desktops/assertions.nix asserting
  leftwm.enable -> services.xserver.enable (the genuine X11 invariant; satisfied
  today). Imported by modules/desktops/default.nix. Kitchen-sink multi-DE intact.
- S8 split hardware/platform: new modules/platform/x86-64.nix owns the x86-64
  ISA level + all compiler/linker flags under steelbore.platform.x86_64 (enable +
  marchLevel); modules/hardware/intel.nix is now vendor-only (kvm-intel, microcode).
  hosts/thinkpad pins steelbore.platform.x86_64 = { enable = true; marchLevel = "v3"; }.

Docs: PRD.md and TODO.md updated for the new module layout and the
steelbore.hardware.intel.marchLevel -> steelbore.platform.x86_64.marchLevel path.

Verified: stable drvPath unchanged; unstable config evaluates; nixfmt --check
clean; podman/appimage still enabled; RUSTFLAGS still target-cpu=x86-64-v3; all
assertions pass; the old intel.marchLevel option is gone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@UnbreakableMJ UnbreakableMJ merged commit 2bc5a49 into main Jun 24, 2026
1 check passed
@UnbreakableMJ UnbreakableMJ deleted the refactor/tier2 branch June 24, 2026 13:49
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