github dan-snelson/DDM-OS-Reminder v4.0.0b17
DDM OS Reminder (4.0.0b17)

pre-release3 hours ago

29-Jun-2026

  • Reworked daemon orchestration so /Library/LaunchDaemons/<rdnn>.dor.plist now runs lightweight dor-starter.zsh every 60 seconds instead of launching the main reminder script directly.
  • Added runtime scheduler assets /Library/Management/<rdnn>/dor-starter.zsh, dor-state.plist, and dor.pid, with NextScheduledReminder / DaemonLastTriggered state managed through PlistBuddy.
  • Added DailyReminderTimes preference (HH:MM CSV, local time) so baseline reminder slots are admin-controlled through deployed .plist / .mobileconfig content, with default 08:00,12:00,16:00.
  • Added MinutesBeforeDeadlineReminderSchedule preference (45,30,15,10,5 by default) for discrete final-minute reminders before the effective DDM enforcement deadline, with per-threshold delivery state stored in dor-state.plist.
  • Added pre-deadline threshold dialog copy keys, localized sample strings, preview support, and quiet-period bypass logic so configured 45/30/15/10/5-minute reminders are not suppressed by earlier interactions.
  • Added default-on past-deadline aggressive mode with AggressiveModePastDeadlineHours, AggressiveModeFrequencyMinutes, update-focused aggressive title/message localization, demo/preview support, exact redisplay scheduling through dor-state.plist, and support kill switch /Library/Management/<rdnn>/dor-aggressive-kill.
  • Tightened aggressive-mode scheduling so daemon-managed reminder runs continue exact redisplay cadence even after the user clicks Open Software Update, preserving persistent prompting until compliance or support suppression.
  • Added color-safe pre-deadline threshold emphasis placeholders so final-minute warning and action sentences render red on swiftDialog builds with markdown color support.
  • Added automatic refresh for open daemon-managed reminder dialogs when a configured final-minute threshold becomes due, closing the stale swiftDialog process and immediately queuing the latest due threshold reminder.
  • Fixed post-dialog pre-deadline scheduling so if a threshold dialog remains open while later thresholds pass, the latest due threshold is queued immediately instead of falling back to the baseline schedule.
  • Fixed rendered deadline punctuation so relative times such as Today, 5:50 a.m. do not gain a duplicate period when managed copy adds sentence punctuation after the deadline placeholder.
  • Updated runtime scheduling to honor exact quiet-period redisplay times, while keeping direct/manual/demo runs from mutating daemon scheduler state.
  • Updated All, LaunchDaemon, and Uninstall reset paths to unload and remove every discovered DDM OS Reminder LaunchDaemon plist before recreating the current heartbeat daemon.
  • Added an assemble.zsh source-version guard so artifacts fail fast when the wrapper, assembler, and embedded reminderDialog.zsh versions are out of sync.
  • Updated Resources/sample.plist, Resources/reminderDialogPreferenceTest.zsh, README.md, Resources/README.md, and AGENTS.md to document the heartbeat starter architecture and new dor- runtime asset names.
  • Updated deadline display placeholders and infobox Deadline / Day(s) Remaining values to follow the effective enforcement deadline, including trusted padded enforcement dates, so reminder copy matches macOS managed-update notifications.

What's Changed

Full Changelog: v3.3.0...v4.0.0b17

Don't miss a new DDM-OS-Reminder release

NewReleases is sending notifications on new releases.