Skip to content

Harden Apple Silicon first login and snapshot setup - #372

Open
scottjones wants to merge 10 commits into
quattrofrom
fix/first-login-wrapper-permissions
Open

Harden Apple Silicon first login and snapshot setup#372
scottjones wants to merge 10 commits into
quattrofrom
fix/first-login-wrapper-permissions

Conversation

@scottjones

@scottjones scottjones commented Sep 7, 2026

Copy link
Copy Markdown

Summary

This is the accumulated desktop companion branch used by the fresh M3 installer test.

  • Provide software-GL Electron wrappers when Apple Silicon has no render GPU, including 1Password setup, and avoid privileged chmod when an existing wrapper already has the correct permissions.
  • Refuse boot-to-ESP migration for ISO/shared/UUID-private boot layouts instead of moving files into an incompatible layout.
  • Correct first-run timezone notification argument handling and add coverage.
  • Detect non-btrfs roots explicitly during Snapper setup. On btrfs, retain real setup diagnostics and exit status instead of hiding missing/broken Snapper as an unsupported filesystem.
  • Add focused Snapper setup regressions and actual package-staging coverage for every first-run user service.

Verification

  • Focused Snapper tests pass; all eight stable/development × ARM/x86 × current-source/actual-stable-pin package-staging cases pass with the companion package changes.
  • Earlier focused wrapper, boot-layout, and timezone tests passed. Command metadata validation (461 commands), shebang-aware syntax checks, and whitespace checks passed in isolated QA.
  • Full aggregate QA is not entirely green: three environment-dependent failures remained (inherited NO_COLOR, sandbox network access, and inherited Git signing). Baseline checks or isolated reruns identified these limitations; this PR does not claim a clean aggregate run.
  • SWE → QA → review completed, including a second round testing the actual stable source pin.
  • A full ISO/rootfs rebuild with these sources completed a fresh encrypted M3 (j613) install. First-run completed, Snapper and the factory snapshot were present, and required services were enabled with no failed units. Tester subsequently confirmed reboot, acceptable UI responsiveness, 1Password installation, and no repeated first-boot alerts.

Dependencies and review scope

Hardware validation covers one M3 with 7.2.2-omarchy-wip72+, not all Apple Silicon models.

scottjones and others added 9 commits September 5, 2026 17:02
M3 has DCP scanout but no AGX render node, so Chromium and 1Password die
in the GPU process and stay running with no window. PATH wrappers on
/usr/local/bin add --ozone-platform=wayland --disable-gpu at launch when
renderD* is missing, and become a no-op once a render GPU appears.
omarchy-notification-send rejects a quoted whole command so it cannot
be split. The toast then exits 1, first-run skips the timezone card,
and a Mac left on UTC never gets asked. Match wifi.sh and welcome.sh.
Comment thread bin/omarchy-cmd-electron-gl-wrap Outdated
Comment thread bin/omarchy-cmd-electron-gl-wrap
@malik-na

malik-na commented Sep 9, 2026

Copy link
Copy Markdown
Member

The source changes are coherent, but test/all is red because the settings-unit test needs the companion recipes. Pin or merge omarchy-pkgs#341 in CI as #377 does, rerun, and clarify whether #372 or #377 is the merge path.

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.

2 participants