SetNextBackup counted "tomorrow" from the day the server started, using the
newest backup file as the last backup, so a restart between midnight and the
backup time (every Thursday reboot), a manual backup, or a backup finishing
after midnight skipped a day. The next backup is now simply the next time the
backup time comes round on the server's clock. A time that happens twice when
the clocks go back runs at the first one only. Tested with a minute-by-minute
simulation over both daylight saving changes (one backup every day; the old
code skipped days) and on the local server. Changelog line; two Deferred
entries (dead inputs, safe headers missing on handler 500s).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The backup time is stored as the UTC moment it meant on the day it was set
and was run at that UTC hour every day, so on servers with daylight saving it
ran an hour off the chosen time for part of the year. SetNextBackup now
recovers the clock time with the stored date's offset and runs it on the
server's local days. No migration. Backup manual page and changelog.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>