docs(m3-exit): M3 retrospective + TODO closure#52
Merged
Conversation
Closes M3 — User Environment (Plan §7.4). 8 PRs since m2-exit (#44 – #51), 303 workspace tests passing (up from M2's 267). Phase 7 is wired end-to-end: pearlite-userenv adapter (HM + Nix installer) → diff classifier emits UserEnvSwitch when HM-enabled users drift → engine dispatches the switch via HomeManagerBackend → state.toml's [[managed.user_env]] upserts the (user, generation, config_hash) triple. The next plan re-reads, sees no drift, emits no action — the loop closes. Three M3 carry-overs roll into M4: 1. Wire LiveNixInstaller as apply-time / bootstrap caller; ADR for where the installer script + SHA come from. 2. apply_plan ApplyOpts struct (9-arg signature past comfort). 3. Per-user nix.conf ADR. Other TODOs remain: forgotten_count field, envelope-shape freeze, fork-based fs crash tests, state.toml parse benchmark, KernelInfo population, ADR-001..007 backfill. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes M3 — User Environment (Plan §7.4).
m2-exit(feat(userenv): HomeManagerBackend trait + LiveHmBackend + MockHmBackend #44 – test(vm): vm-07 user-env apply + vm-08 user-env drift #51).pearlite-userenvfilled out from PR feat(userenv): HomeManagerBackend trait + LiveHmBackend + MockHmBackend #44 onward.Phase 7 is wired end-to-end:
pearlite-userenvadapter (HomeManagerBackend+NixInstaller)UserEnvSwitchwhen HM-enabled users drift (sha256 over the config dir)HomeManagerBackendstate.toml's[[managed.user_env]]upserts the(user, generation, config_hash)tripleM4 carry-overs
LiveNixInstalleras the apply-time / bootstrap caller (PR feat(userenv): NixInstaller trait + LiveNixInstaller + MockNixInstaller #45 shipped the adapter without a wired caller). Needs an ADR for where the installer script + SHA come from.apply_planparameter struct (9-arg signature past the comfort line).nix.confADR.Test plan
pearlite-audit check .passes.git tag -s m3-exit -m "M3 — User Environment"on the merge commit per Plan §3.4.🤖 Generated with Claude Code