feat: Add update deadline prompt system#1132
Open
rtylerdavis wants to merge 2 commits intoRomanitho:developfrom
Open
feat: Add update deadline prompt system#1132rtylerdavis wants to merge 2 commits intoRomanitho:developfrom
rtylerdavis wants to merge 2 commits intoRomanitho:developfrom
Conversation
Adds configurable update deadline enforcement to WAU. When WAU_UpdateDeadlineDays > 0, instead of silently installing updates, WAU tracks deadlines per-app and presents a WPF dialog to the user with options to update now, select specific apps, or snooze. New files: - WAU-UpdatePrompt.ps1: WPF dialog via ServiceUI.exe - WAU-UpdateNow.ps1: processes user-initiated updates - functions/Get-UpdateDeadlines.ps1: reads/purges deadline registry - functions/Set-UpdateDeadline.ps1: creates/updates deadline entries - functions/Start-UpdatePromptTask.ps1: writes JSON, fires prompt task - WAU-Notifier.admx/adml: ADMX policy definitions for Intune/GPO Modified files: - Winget-Upgrade.ps1: deadline mode branch around main update loop - WAU-MSI_Actions.ps1: registers UpdatePrompt and UpdateNow tasks Features: - Per-app deadline clock (never resets on version bumps) - Per-app selective update via checkboxes - Final-day enforcement: auto-checked, locked, red highlight, no snooze - Color-coded urgency (red/amber/white) - User-context app support - Whitelist/blacklist respected - Custom company branding (WAU_CompanyName) - Self-healing (stale entries purged automatically) - X button blocked, auto-dismiss timer Resolves Romanitho#1121. See Romanitho#1130 for full proposal.
Owner
|
Nice, massive piece of work! I'll need some time to review and approve the code. It won't be part of the next release, but I'll target the one after that. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the update deadline prompt system proposed in #1130. When
WAU_UpdateDeadlineDaysis configured, WAU presents a WPF dialog to logged-in users listing pending updates with per-app deadlines instead of silently installing. Fully backward-compatible -- zero effect when not configured.Features
WAU_ReminderIntervalDays)WAU_CompanyName)WAU_UserContext)Configuration
WAU_UpdateDeadlineDays0(disabled)WAU_ReminderIntervalDays2WAU_CompanyNameDedicated
WAU-Notifier.admx/.admlincluded for Intune/GPO deployment. Uses a separate ADMX namespace (WAUNotifier.Policies) to coexist with the existingWAU.admx. The three settings are also added to the upstreamWAU.admx/.admlfor single-file deployments.Files Changed
Modified:
Winget-Upgrade.ps1-- deadline mode if/else branch around main update loopconfig/WAU-MSI_Actions.ps1-- registers/unregisters UpdatePrompt and UpdateNow tasksNew:
WAU-UpdatePrompt.ps1-- WPF dialog, user interaction, partial update logicWAU-UpdateNow.ps1-- processes updates from pending-updates.jsonfunctions/Get-UpdateDeadlines.ps1-- reads/purges deadline registry entriesfunctions/Set-UpdateDeadline.ps1-- creates/updates deadline entriesfunctions/Start-UpdatePromptTask.ps1-- writes JSON, fires prompt taskWAU-Notifier.admx/WAU-Notifier.adml-- ADMX policy definitionsTesting
Tested on x64 and ARM64 (Snapdragon Surface Laptop) via both manual install and Intune deployment. Full test plan covering install/uninstall lifecycle, deadline creation, prompt interaction, overdue enforcement, user-context apps, whitelist/blacklist, ADMX policy delivery, and edge cases.
Related: #1121