Real notifications, not osascript banners
Session ends are announced with an osascript banner, which works but is the wrong architecture and is the one thing holding awake back from being told about widely.
UNUserNotificationCenter is structurally unavailable to a launchd agent: TCC only arbitrates that permission for apps launched by LaunchServices in user context. Verified empirically, a Developer ID signature, lsregister and an LS launch all still end in UNErrorDomain Code=1 under launchd.
The path that respects the constraint is the two-process split Apple DTS points at: a small awake-notifier.app bundled inside the main bundle, launched per event with open -g and its message as an argument, posting from user context (its first launch triggers the real TCC prompt), then exiting. The daemon keeps launchd KeepAlive, which is load-bearing because it IS the crash-restore story; only the notification hop changes.
Consequence today: banners ride Script Editor's notification permission, so if that is ever switched off, screen alerts vanish with no indication. The out-of-band hook is the only channel that is actually dependable.
- 2026-08-09proposed
- 2026-08-09โ building
- 2026-08-09โ planned
- 2026-08-09โ building
- 2026-08-09โ planned
discussion ยท 0
sign in to join the discussion