14-Aug-2026
- Fixed controlled
All,Script, andUninstallreset flows so a PID-validated active DDM OS Reminder runtime and its owned descendants receive a termination request before runtime assets are removed, preventing older reminder dialogs from surviving redeployment alongside the replacement version. - Added runtime termination traps and owned swiftDialog/threshold-monitor cleanup so current deployments exit cleanly when controlled redeployment stops an active run, without broadly terminating unrelated swiftDialog processes.
- Hardened assembly so source lines containing backslash escapes remain byte-faithful in generated deployment scripts, and made embedded-runtime drift or syntax failures block artifact generation.
- Added explicit normal-resolver status/source/reason logging before fallback evaluation, plus distinct fallback evaluation, update-required contribution, actual reminder activation, and Software Update handoff records.
- Limited the decisive Missing-DDM fallback selection warning to actual reminder display; compliant Macs now log that fallback evaluation did not drive a reminder.
- Added fallback version/deadline/source logging after deployment writes the validated plist, and classified swiftDialog exit code
15as external termination rather than user interaction. - Documented collection of current and rotated
install.logfiles for update-causality reviews and distinguished Apple declaration-selectionfallbackwording from DDM OS Reminder's Missing-DDM Emergency Fallback. - Added an opt-in Missing-DDM Emergency Fallback using Script Parameters 5 and 6, with strict fail-closed validation, atomic RDNN-scoped plist persistence, exact-
missingresolver eligibility, confirmed-DDM precedence, and direct past-deadline evaluation. (Issue #120) - Hardened LaunchDaemon installation for macOS 27 by validating a fresh adjacent temporary plist, atomically replacing the target, removing only
com.apple.quarantine, and failing deployment when bootstrap or label-specific verification fails. (Issue #117) - Added actionable runtime heartbeat recovery logging for missing, quarantined, or unloadable LaunchDaemon plists without changing trust metadata outside the controlled installer path.
- Updated
Resources/monitorRemoteSession.zshto report LaunchDaemon quarantine state and documented fleet audit plus targeted remediation guidance. - Fixed interactive assembly so custom
InfoButtonTextvalues also updateInfoButtonTextLocalized_en, preventing stale sample English text from overriding admin-entered button labels. (Issue #118; thanks for the heads-up, @macpancakes!) - Added
Resources/JamfEA-DDM-OS-Reminder-Next-Scheduled-Reminder.zshso Jamf Pro administrators can inventory the device-localNextScheduledRemindervalue as a Date Extension Attribute, with documented sentinel dates for non-date scheduler states.
What's Changed
- 4.1.0 by @dan-snelson in #126
Full Changelog: v4.0.0...v4.1.0