fix: keep SharePoint sync from blocking Home Manager activation

Preserve an in-flight timer job during service switching instead of restarting the oneshot and waiting for a potentially long synchronization. Herdr config installation succeeds; the activation timeout occurs later in reloadSystemd.

Verified the native keep-old behavior in pinned sources and a focused sd-switch dry run. Formatting, flake evaluation, Zenith build and whitespace checks passed. No live services changed; full activation remains user-controlled.
This commit is contained in:
kiri committed 2026-09-09 18:33:52 +02:00
1 parent a85cb5a928
commit 4949aef927
2 files changed
+20 -3

No files matched your search

+18 -3
View File
@@ -169,9 +169,24 @@ the installed Herdr 0.9.0 default config and current upstream documentation.
Interactive delivery through Kitty remains for user acceptance after activation. Interactive delivery through Kitty remains for user acceptance after activation.
Reload Herdr with its existing Ctrl+B then Shift+R binding after activating Nix. Reload Herdr with its existing Ctrl+B then Shift+R binding after activating Nix.
Verification: repository formatting, rendered TOML parsing, flake evaluation, Verification: repository formatting, rendered TOML parsing, flake evaluation,
Zenith no-link system build and whitespace checking passed. No tests, activation Zenith no-link system build and whitespace checking passed. No tests or live Herdr
or live Herdr session changes performed. Next input is the user's activation and session changes performed by the agent. The user's activation installed the Herdr
combined feedback on pane/workspace movement, the pickers and agent jumps. config and preserved `config.toml.bak`, but Home Manager later timed out (below).
After retrying activation, reload Herdr and gather combined feedback on
pane/workspace movement, the pickers and agent jumps.
Activation fix (2026-09-09): Home Manager's service switch stopped and restarted
the running SharePoint oneshot, then waited until Home Manager's five-minute start
timeout. Service-state inspection identified SharePoint as the sole pending user
job; its oneshot start timeout is unlimited. This was not a Herdr file collision.
Set `Unit.X-SwitchMethod = "keep-old"` in `sharepoint-reference.nix` so activation
leaves an in-flight sync running; subsequent timer runs use the updated unit.
Verified against pinned Home Manager/sd-switch source. Formatting, flake evaluation,
Zenith build and whitespace checks passed; the focused sd-switch dry run reported
`Keep active sharepoint-reference-sync.service`, with no restart planned. No live
units were changed and no company content or credentials were read. The user must
retry activation to verify the full switch; sync health/content completeness were
not investigated.
Mail search remains unresolved. The workbench's custom mail reader, inventory Mail search remains unresolved. The workbench's custom mail reader, inventory
pilot, justfile and old README are archived; native Garden/kubectl/K9s now own the pilot, justfile and old README are archived; native Garden/kubectl/K9s now own the
@@ -16,6 +16,8 @@
Unit = { Unit = {
Description = "Refresh the local SharePoint reference mirror"; Description = "Refresh the local SharePoint reference mirror";
ConditionPathExists = rcloneConfig; ConditionPathExists = rcloneConfig;
# Let an in-flight sync finish; activation must not restart and wait for it.
X-SwitchMethod = "keep-old";
}; };
Service = { Service = {