feat(lifecycle): auto-commit sweep of the machine flake before pull/rebuild/home
Some checks failed
Check / eval (push) Failing after 3m11s
Some checks failed
Check / eval (push) Failing after 3m11s
With settings.autoCommit on, only menu/theme mutations were committed (theme-sync pathspec-limits to theme-state.json by design), so hand edits to system.nix/home.nix and lock bumps stayed forever-dirty. New internal nomarchy-autocommit (nomarchy-lifecycle): live-reads the same flag, commits everything dirty as "nomarchy: auto-commit before <pull|rebuild|home switch>" with the swept file list in the body, fallback identity, never fatal (|| true at call sites). Called at the top of all three lifecycle commands; before the ff-only pull it also un-dirties the tree. Exposed via passthru.autocommit + package export; guarded by checks.lifecycle-autocommit (sandbox repos: sweep, no-op on clean/off/non-repo). Sync sweep: README, RECOVERY, ROADMAP, rofi toggle, control-center prompt, theme-sync docstring, JOURNAL. Verified: V1+ — flake check --no-build green; the new check builds; end-to-end run of the built nomarchy-rebuild (stubbed sudo/rebuild) against a copy of a real dirty ~/.nomarchy: 4 files → one commit, clean tree. No VM boot — no session-visible surface. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -806,7 +806,9 @@ ${themeRows}
|
||||
autocommit)
|
||||
# Toggle opt-in auto-commit: every menu/theme mutation also commits
|
||||
# theme-state.json (that file only) in the downstream flake, so
|
||||
# settings history is `git log`. Nothing in Nix consumes the flag —
|
||||
# settings history is `git log`; nomarchy-pull/-rebuild/-home
|
||||
# additionally sweep everything else dirty (hand edits, lock bumps)
|
||||
# into a commit first. Nothing in Nix consumes the flag —
|
||||
# the tool reads the live state on each write — so the toggle is
|
||||
# instant, no rebuild. The off-write commits too (the tool fires
|
||||
# when the flag was on before OR after), keeping history consistent.
|
||||
@@ -815,7 +817,7 @@ ${themeRows}
|
||||
notify-send "Auto-commit" "Off — menu changes stay uncommitted in your flake."
|
||||
else
|
||||
nomarchy-theme-sync --quiet set settings.autoCommit true --no-switch
|
||||
notify-send "Auto-commit" "On — each change commits theme-state.json in your flake."
|
||||
notify-send "Auto-commit" "On — menu changes commit; rebuilds sweep pending edits in too."
|
||||
fi
|
||||
exit 0 ;;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user