feat: status command + windows toast notifications

- status: read-only report of deployed/repository revision, pending changes,
  skipped items (with reasons), unrecognized local items, binary version;
  --json machine-readable; exit 1 when local modifications block repository
  updates (headless drift checks)
- sync/status share a read-only prepare() front half
- notify package: windows toast via PowerShell script (go-toast mechanism,
  zero deps, build-tag gated), noop on linux/macos; cross-compile verified
- toast fires exactly once per sync with warnings, never for routine syncs;
  notification failures are logged and never fail the sync (fail-open)
This commit is contained in:
2026-08-23 10:40:25 +02:00
parent 63619b90a4
commit 949a431c4c
11 changed files with 496 additions and 6 deletions
+11
View File
@@ -0,0 +1,11 @@
//go:build !windows
package notify
// Noop drops every notification; Linux and macOS stay silent by design.
type Noop struct{}
func (Noop) Send(title, body string) error { return nil }
// Platform returns the no-op sender on Linux and macOS.
func Platform() Sender { return Noop{} }