25-Mar-2026
Added a recent-window DDM resolver that prefers authoritative
install.logdeclarations over simple last-match parsing, reducing bad reminders caused by stale or mixed update state.The reminder and bundled Jamf EAs now fail closed on conflicting or invalid declarations instead of surfacing the wrong macOS version or deadline.
- Merged
main(2.6.0) into3.0.0while preserving2.6.0runtime behavior, including post-deadline restart workflow, KB support-assistance controls, and deadline/infobox urgency highlighting. - Consolidated localization coverage across runtime and config generation, including FR-25 parity plus ES/PT/JA support (
LanguageOverride, localized key families, localized infobox labels, and restart/deadline/support-assistance copy paths). - Expanded locale-aware deadline date rendering so
%a/%binDateFormatDeadlineHumanReadablefollow the resolved dialog language (de,fr,es,pt,ja, fallbacken) across standard, padded past-due, and demo-mode flows. - Hardened
reminderDialog.zshDDM resolution by replacing the oldEnforcedInstallDate | tail -n 1heuristic with a recent-window resolver that:- prioritizes
default applicable declarationandFound DDM enforced installover genericEnforcedInstallDatematches - suppresses the reminder when declaration state is missing, conflicting, invalid, or no longer maps to an available update
- only accepts
setPastDuePaddedEnforcementDatewhen it safely matches the resolved declaration - adds explicit suppression logging for
conflict,noMatch, and invalid-version cases
- prioritizes
- Added an internal
installLogPathOverridefixture-testing hook for local validation ofreminderDialog.zshand the bundled Jamf EAs. - Updated
Resources/JamfEA-Pending_OS_Update_Date.zshandResources/JamfEA-Pending_OS_Update_Version.zshto use the same fail-closed trust model as the runtime resolver, while keeping Jamf inventory execution lightweight. - Updated
Resources/README.md,Diagrams/, and related diagram PNG exports to document the hardened resolver, fail-closed EA behavior, correcteddorm.zshclient-script paths, and current beta-series behavior. - Updated
Resources/createPlist.zshandResources/sample.plistfor restart-policy plus localization-key parity, then regenerated release artifacts from merged source.
Full Changelog: v3.0.0b1...v3.0.0b2
What's Changed
- 2.4.0 by @dan-snelson in #71
- 2.5.0 by @dan-snelson in #73
- 2.6.0 by @dan-snelson in #79
Full Changelog: v2.6.0...v3.0.0b2