feat: add automation control center UI

Preserve monotonic source-cleanup requirements while excluding ambiguous job identities from Main payloads, and reconcile mixed add responses only across globally unique jobs that were actually sent.

Render the automation status card, localized fixed-column metrics, read-only test overlay, queue-limit and reconciliation controls, and persistent finish-and-pause or resume action from immutable automation snapshots.

Add hidden Electron coverage for cleanup siblings, Main fingerprints, German and English states, keyboard focus, Escape and inert behavior, responsive 760-pixel layouts, and snapshot-gated upload controls.
This commit is contained in:
Sucukdeluxe
2026-08-26 13:20:40 +02:00
parent 28a475401e
commit 325a20d3fb
5 changed files with 1372 additions and 111 deletions
+55
View File
@@ -250,6 +250,61 @@
['Wartezeit zwischen Runden', 'Delay between rounds'],
['Minuten · jede weitere Runde wartet entsprechend länger', 'Minutes · each additional round waits proportionally longer'],
['Ordnerüberwachung', 'Folder monitoring'],
['Ordnerüberwachung testen', 'Test folder monitoring'],
['Test der Ordnerüberwachung', 'Folder monitoring test'],
['Ordner wird geprüft…', 'Scanning folder…'],
['Der Test verändert weder Queue noch Einstellungen.', 'The test does not change the queue or settings.'],
['Prüft den aktuellen Ordner schreibgeschützt mit denselben Regeln.', 'Checks the current folder read-only with the same rules.'],
['Ordnerüberwachung konnte nicht getestet werden.', 'Folder monitoring could not be tested.'],
['Maximale automatische Queue-Größe', 'Maximum automatic queue size'],
['Abgleichintervall', 'Reconciliation interval'],
['Abschließen und pausieren', 'Finish and pause'],
['Fortsetzen', 'Resume'],
['Pausiert', 'Paused'],
['Queue-Limit erreicht', 'Queue limit reached'],
['Ordner getrennt', 'Folder disconnected'],
['Überwachung läuft seit', 'Monitoring since'],
['Ordner erreichbar', 'Folder reachable'],
['Letzte erkannte Datei', 'Last detected file'],
['Heute erkannt', 'Detected today'],
['Heute eingereiht', 'Queued today'],
['Heute übersprungen', 'Skipped today'],
['Wegen Queue-Limit zurückgestellt', 'Deferred by queue limit'],
['Aktuelle Queue-Auslastung', 'Current queue usage'],
['Letzter Abgleich', 'Last reconciliation'],
['Nächster Abgleich', 'Next reconciliation'],
['Letzter Fehler', 'Last error'],
['Nie', 'Never'],
['Ja', 'Yes'],
['Nein', 'No'],
['Keine Datei erkannt', 'No file detected'],
['Gefundene Dateien', 'Files found'],
['Passend zum Dateifilter', 'Matching file filter'],
['Bereits verarbeitet', 'Already processed'],
['Fehlend, leer oder nicht lesbar', 'Missing, empty, or unreadable'],
['Durch Größenlimits ausgeschlossen', 'Excluded by size limits'],
['Entstehende Upload-Jobs', 'Resulting upload jobs'],
['Verfügbare Jobs bis zum Queue-Limit', 'Available jobs before queue limit'],
['Aktuell zurückzustellende Dateien', 'Files currently deferred'],
['0 = unbegrenzt', '0 = unlimited'],
['Unbegrenzt', 'Unlimited'],
['1 Minute', '1 minute'],
['5 Minuten', '5 minutes'],
['15 Minuten', '15 minutes'],
['30 Minuten', '30 minutes'],
['60 Minuten', '60 minutes'],
['Automatik konnte nicht pausiert werden.', 'Automation could not be paused.'],
['Automatik konnte nicht fortgesetzt werden.', 'Automation could not be resumed.'],
['Ordnerüberwachung konnte nicht pausiert werden', 'Folder monitoring could not be paused'],
['Ordnerüberwachung fehlgeschlagen', 'Folder monitoring failed'],
['Ordner nicht erreichbar', 'Folder unavailable'],
['Ordnerscan fehlgeschlagen', 'Folder scan failed'],
['Keine Ordnerkonfiguration vorhanden', 'No folder configuration is available'],
['Jobs konnten nicht eindeutig bestätigt werden.', 'Jobs could not be confirmed unambiguously.'],
['Jobs konnten nicht hinzugefügt werden.', 'Jobs could not be added.'],
['Automatische Aufnahme konnte nicht abgeschlossen werden.', 'Automatic admission could not be completed.'],
['Upload läuft bereits.', 'An upload is already running.'],
['Keine startbaren Jobs vorhanden.', 'No startable jobs are available.'],
['Inaktiv', 'Inactive'],
['Ordnerpfad', 'Folder path'],
['Wählen', 'Choose'],