-
Notifications
You must be signed in to change notification settings - Fork 3
Patching Walkthrough Deadline
Deadline-based patching is the default mode (MonthlyPatchingCadenceEnabled = false). The apply phase runs once per day whenever staged updates are waiting. Users can defer each prompt, but two escalating deadlines — a Focus deadline and a hard deadline — ensure updates are eventually installed regardless of deferral choices.
See also: Patching Walkthrough: Monthly Cadence Mode
| Preference Key | Default | What It Controls |
|---|---|---|
CheckIntervalHours |
4 hours | How often the version check runs |
StageIntervalHours |
4 hours | How often staged downloads are refreshed |
ApplyIntervalHours |
24 hours | Minimum time between apply attempts |
DeferralCountdownSeconds |
300 (5 min) | Timer on the deferral prompt before auto-action |
DeferralAutomaticAction |
defer |
What happens when the timer expires unattended |
DeferralTimerDefault |
1440 min (24 hrs) | Default deferral duration when timer expires |
DeferralTimerMenu |
5, 30, 60, 120, 480, 1440 | Minutes available in the Defer dropdown |
DeferralTimerFocus |
60 min (1 hr) | Auto-defer duration when Focus/DND is active |
DeadlineDaysFocus |
4 days | Days pending before Focus/DND is ignored |
DeadlineDaysHard |
14 days | Days pending before deferral is no longer allowed |
BlockingProcessAction |
prompt |
What happens when a required app is running |
BlockingProcessCountdownSeconds |
120 (2 min) | Timer on the blocking-process prompt |
Situation: Two third-party apps — Google Chrome and Zoom — have updates available. The user is an active Mac user who sometimes defers updates but eventually complies.
All times below are based on defaults with no time-window restrictions.
The scheduler daemon runs silently every 10 minutes. These background steps happen without any user interaction:
| When | What Happens |
|---|---|
| Day 1, 9:00 AM | Scheduler wakes; check detects Chrome and Zoom are out of date |
| Day 1, 9:05 AM |
stage downloads both installers to the local cache |
| Day 1, 9:05 AM |
firstPendingDate recorded — deadline clock starts from this moment |
Approximately 4 hours after staging, apply runs for the first time.
What the user sees:
A dialog appears in the center of the screen:
Third Party Patcher
You have 2 software updates that are ready to be installed. These updates have been pending for 0 days.
(Infobox: Days Pending: 0 · Times Deferred: 0)
[Defer ▾] [Continue]
Timer: 5:00 counting down
User choices and outcomes:
| Action | Result |
|---|---|
| Clicks Continue | Proceeds immediately to installation (see Installation) |
| Selects a duration and clicks Defer | Update postponed for chosen duration; prompt disappears |
| Does nothing (timer reaches 0:00) | Automatically deferred 24 hours (the DeferralTimerDefault); prompt dismisses itself |
In this example: The user selects Defer — 24 hours from the dropdown and clicks Defer. The dialog closes. No installation occurs.
24 hours later, the deferral expires. On the next scheduler wake after expiry, apply runs again.
What the user sees: The same dialog, with updated infobox:
(Infobox: Days Pending: 1 · Times Deferred: 1)
In this example: The user is busy and clicks Defer — 8 hours.
8 hours later the deferral expires. Apply runs again. The user clicks Defer — 24 hours.
The user has enabled Focus mode for a meeting. When apply runs and Focus is detected:
- No prompt is shown to the user.
- The update is automatically deferred 60 minutes (
DeferralTimerFocus). - This does not increment the deferral count — it is system-initiated, not user-initiated.
- After 60 minutes the cycle repeats until Focus clears.
Once Focus clears, the normal deferral prompt appears. The user defers 24 hours.
At Day 4, DeadlineDaysFocus (4 days) is reached. From this point:
- Focus/DND is ignored. Apply runs and shows the prompt even if the user has Focus active.
- The user can still click Defer — the hard deadline has not been reached yet.
What the user sees: The prompt is the same, but it will appear even during Focus or DND.
In this example: The user sees the prompt mid-afternoon and defers 24 hours.
The user continues to defer once per day. Each time the prompt appears with the updated count:
| Day | Infobox Shown | User Action |
|---|---|---|
| Day 5 | Days Pending: 4 · Times Deferred: 4 | Defers 24 hrs |
| Day 8 | Days Pending: 7 · Times Deferred: 7 | Defers 24 hrs |
| Day 11 | Days Pending: 10 · Times Deferred: 10 | Defers 24 hrs |
| Day 13 | Days Pending: 12 · Times Deferred: 12 | Defers 24 hrs |
At Day 14, DeadlineDaysHard (14 days) is reached. The user can no longer defer.
What the user sees:
Third Party Patcher
You have 2 software updates that are ready to be installed.
Installation is required — the maximum deferral deadline has been reached.
(Infobox: Days Pending: 14 · Times Deferred: 13)
[Continue]
The Defer button is gone. The user must click Continue — or the 5-minute countdown will expire and installation will begin automatically.
When the user clicks Continue (or the hard deadline fires), the progress window appears:
Third Party Patcher
There are 2 updates waiting.
The following updates are being applied:
App Status 🌐 Google Chrome ⟳ Installing… 📹 Zoom ⏳ Waiting Progress: [██████░░░░] Installing [1/2] Google Chrome…
[Running…] (button disabled during install)
After both apps complete:
App Status 🌐 Google Chrome ✅ → 125.0.6422.78 📹 Zoom ✅ → 6.3.0 Complete — 2 updates applied successfully
[Done]
The user clicks Done (or the window auto-closes after 60 seconds). The deferral count resets to zero. The firstPendingDate is cleared.
If Chrome is running when the installer tries to update it, a separate prompt appears:
Google Chrome Update Paused
Google Chrome needs to be updated, but Google Chrome is currently running.
Please save your work and quit Google Chrome before the timer expires, or click Skip to postpone this update.
Timer: 2:00 counting down
[Skip Update] [Quit Google Chrome]
| Action | Result |
|---|---|
| Clicks Quit Google Chrome | Chrome is force-quit; installation proceeds immediately |
| Clicks Skip Update | Chrome update skipped this cycle; Zoom still installs |
| Timer reaches 0:00 | Chrome is force-quit automatically; installation proceeds |
A skipped item will be retried on the next apply cycle (the following day, assuming defaults).
Day 1 ─── Updates found and staged ──────────────────────── [First prompt: user defers]
Day 2 ─────────────────────────────────────────────────────── [Prompt: user defers]
Day 3 ─────────────────────────── Focus active ──────────── [Auto-deferred, then user defers]
Day 4 ─── Focus deadline ──────────────────────────────────── [Prompt shown despite Focus: user defers]
...
Day 14 ─── Hard deadline ──────────────────────────────────── [Defer button gone: install required]
Administrator note: The deferral count in
patcherreport deferralsgives you a per-label record of every prompt the user was shown, what they did, and when. If a user claims they never saw a notification, this log is your source of truth.