fix: prevent folder-monitor reuploads after completion

Discover base, daily, session, and fallback upload logs across configured, Desktop, and application-data locations without blocking the Electron main process.

Treat in-session completion keys as authoritative automation evidence so removing finished rows cannot cause periodic reconciliation to enqueue and upload the same file again.

Add real handler and done-remove-reconcile regressions covering custom extensions, mixed-case log names, fallback paths, stale evidence, and asynchronous log reads.
This commit is contained in:
Sucukdeluxe
2026-08-27 13:22:35 +02:00
parent c0153acfb2
commit 58b92856a6
6 changed files with 182 additions and 27 deletions
+16 -1
View File
@@ -1,6 +1,6 @@
const { test } = require('node:test');
const assert = require('node:assert');
const { normalizeLogMode, resolveLogFileName, formatDateStamp, formatSessionStamp } = require('../lib/log-mode');
const { normalizeLogMode, resolveLogFileName, formatDateStamp, formatSessionStamp, isManagedUploadLogFileName } = require('../lib/log-mode');
// --- normalizeLogMode ---
@@ -88,6 +88,21 @@ test('resolveLogFileName: unknown mode is treated as single', () => {
);
});
test('managed upload-log discovery includes session logs and excludes unrelated logs', () => {
assert.equal(typeof isManagedUploadLogFileName, 'function');
const options = { baseName: 'fileuploader', ext: '.log' };
assert.equal(isManagedUploadLogFileName('fileuploader.log', options), true);
assert.equal(isManagedUploadLogFileName('fileuploader-2026-08-27.log', options), true);
assert.equal(isManagedUploadLogFileName('fileuploader-session-2026-08-27_05-40-59-1234.log', options), true);
assert.equal(isManagedUploadLogFileName('27-08-2026-mdu-session-05-40-599797.log', options), true);
assert.equal(isManagedUploadLogFileName('FILEUPLOADER-2026-08-27.LOG', options), true);
assert.equal(isManagedUploadLogFileName('27-08-2026-MDU-SESSION-05-40-599797.LOG', options), true);
assert.equal(isManagedUploadLogFileName('upload-audit.log', options), false);
assert.equal(isManagedUploadLogFileName('account-rotation.log', options), false);
assert.equal(isManagedUploadLogFileName('upload-debug.log', options), false);
assert.equal(isManagedUploadLogFileName('27-08-2026-mdu-session-05-40-599797.txt', options), false);
});
// --- stripModeStampFromFileName ---
const { stripModeStampFromFileName } = require('../lib/log-mode');