Backup -> Hourly doesn't work properly

Shotcut 26.02.26, Windows 10 x64

(I’m creating a separate topic from the discussion here)

I have Backup → Hourly enabled but it doesn’t seem to actually work as intended.
I’ve opened Shotcut with one project roughly 4 hours ago and I have manually saved (regular save) multiple times since opening it but there is one backup file so far.

Here’s an exact timeline:

14:38 → started Shotcut
14:38:51 → there is a backup .mlt for my project created (I’ve quickly saved after a small change as a test)
17:34 → no other backup was created, saved 14 times since opening (from filtering for “save” in application log), including right now
//for context, as there are no timestamps, there are 174 matches for “isMemoryLow” in the logs
18:43 → back from a break, saved manually, still no backup
19:19 → (now) another save but still no backup file, last one is still the one from 14:38:51

I’ve had this 1 hour option selected (almost) since it was added, and searching for all .mlt files matching this project that I’ve created 2 weeks ago, I have only 6 backup files (which I actually think were saved manually by me).

It also requires that something has changed.

Yes, I made changes in the timeline during this time.

I just tested it overnight (14 hours) and about 90 minutes later this morning, and it worked for me.

[Info   ] <MainWindow::showStatusMessage> "Saved backup C:/Users/ddenn/OneDrive/Videos/test1 2026-03-06T21-06-56.mlt" 
[Info   ] <MainWindow::showStatusMessage> "Saved C:\\Users\\ddenn\\OneDrive\\Videos\\test1.mlt" 
...
[Info   ] <MainWindow::showStatusMessage> "Saved backup C:/Users/ddenn/OneDrive/Videos/test1 2026-03-07T07-14-29.mlt" 
[Info   ] <MainWindow::showStatusMessage> "Saved C:\\Users\\ddenn\\OneDrive\\Videos\\test1.mlt" 

If your project file name matches the following regular expression it will not backup. This is to prevent creating a backup of a backup, which is confusing for the human to parse and understand branches.

static QRegularExpression kBackupFileRegex("^(.+) "
"([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2["
"0-3]|[01][0-9])-([0-5][0-9])-([0-5][0-9]).mlt$");