30-Sep-2026
- Added same-day reminder suppression after the user schedules the required update with Update Tonight. Normal reminders stop until local midnight once
/var/log/install.logconfirms that macOS accepted the request (Issue #133).- Detection requires daemon-side success evidence:
SUOSUInstallTonightManager: Queued … macOS <version>must exactly match the active DDM (or DDM Emergency Fallback) target version, and a followingSUOSUScheduler: ARMED (… simulated=NO)line must appear. TheClicked to queue available updates for laterbutton event and untimestamped continuation lines (for exampleScheduleUpdateForLater = 1;) are ignored, because the user can still cancel the authentication prompt. - Evidence must be from the current local day and newer than the last boot. Any later disarm, dequeue,
Updated install tonight state (enabled = false …), different-version queue, or unrecognizedSUOSUScheduler:/SUOSUInstallTonightManager:line fails closed, and the invalidating line is logged at[NOTICE]. - Pre-deadline threshold reminders, past-deadline aggressive mode, and Force mode bypass suppression. Suppression does not apply when the effective deadline is at or before local midnight, because DDM enforcement would come before the overnight installation window.
- Suppressed runs schedule the first
DailyReminderTimesslot after midnight, or an earlier pending pre-deadline threshold. Expiration never forces an immediate dialog. - Starter-launched runs record
UpdateTonightSuppressionUntilindor-state.plistand log[NOTICE]when suppression activates, expires, or is cleared. Manual and demo runs do not write scheduler state. - No preference keys, defaults, or precedence rules changed.
- Detection requires daemon-side success evidence:
- Fixed baseline reminder-slot resolution skipping an entire day of
DailyReminderTimesslots when a run occurred after 23:00 on the night before a spring-forward DST transition; next-day slots now resolve by calendar day instead of adding 86,400 seconds, which also covers Update Tonight suppression scheduling and preserves configured00:00slots (PR #137 review; thanks, Copilot!)