244-    }
245:    async handleMissingFilesQueueAll({ refreshOnly } = {}) {
246-        if (refreshOnly) {
247-            await this.queueRefreshAllMissingFiles();
248-            return enum_1.JobStatus.Success;
249-        }
250-        this.logger.log(`Scanning for missing files...`);
251-        const assetPaths = this.integrityRepository.streamAssetPathsForMissingFiles();
252-        let total = 0;
253-        for await (const batchPaths of (0, misc_1.batched)(assetPaths, constants_1.JOBS_LIBRARY_PAGINATION_SIZE)) {
254-            await this.jobRepository.queue({
255-                name: enum_1.JobName.IntegrityMissingFiles,
256-                data: {
257-                    items: batchPaths,

deleted one original (the 5th by name)
report rows before: 0
== 13:54:39 queue IntegrityMissingFilesQueueAll on integrityCheck (no key, no login)
queued 1
missing_file rows after 0.44 s: 1
== the report, READ from the database, joined to what a household note needs (name + date taken + owner):
missing_file|gen-004.jpg|2026-01-03 01:00|household@example.invalid

