@Stenis Because PhotoLab has lodged an “interest” in the directory with the operating system and the operating system “sees” all. BUT if the modified date has not changed since the last time PhotoLab “dealt” with the image it will ignore the event.
I tested the ‘Projects’ “issue” with PhotoLab yesterday. I created a number of directories with one image to add to the test case I created to test your problem and added those images to a ‘Project’ and left PhotoLab with that ‘Project’ selected.
I then used IMatch to set or change the Keywords for those images one by one and then used the command to “flush” all the updates out to the files
There was a flurry of activity shown in ‘FolderMonitor’ but I deliberately refrained from checking the PhotoLab screen and then I saw the DOP activity I was watching for, that showed that PhotoLab had been informed by the Windows that a “change of interest to PhotoLab” had occurred
I am a little concerned about the size of the request to the OS for large projects containing images from many different directories, e.g. the maximum size of the request (or requests) that can be made but I have no intention to try to determine what that limit might be.
Here is a sample of the Log of data from the OS from my Python version of ‘FolderMonitor’
and yes you can submit a request to the OS to return all activity for a drive!
PS sorry that last snapshot is not good for the eyes this might be better
2026-03-31 00:42:33.517243 PFM starting
2026-03-31 00:43:45.885812 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-1\\P1140869.xmp', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:43:46.020934 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-2\\P1140870.xmp', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:43:46.054966 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-3\\P1140871.xmp', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:43:46.234127 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-1\\P1140869.RW2', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:43:46.318204 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-1\\P1140960.JPG', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.511428 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-2\\P1140870.RW2', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.520437 FileModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-3\\P1140871.RW2', dest_path='', event_type='modified', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.780674 FileCreatedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-1\\P1140869.xmp_exiftool_tmp', dest_path='', event_type='created', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.793685 FileCreatedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-2\\P1140870.xmp_exiftool_tmp', dest_path='', event_type='created', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.804695 FileCreatedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-3\\P1140871.xmp_exiftool_tmp', dest_path='', event_type='created', is_directory=False, is_synthetic=False)
2026-03-31 00:48:00.814704 DirModifiedEvent(src_path='N:\\_____DXOT\\___DXO PL9 - Tests\\Test 45 - Keyword Tests - PL9\\Imatch-1', dest_path='', event_type='modified', is_directory=True, is_synthetic=False)