Feature: Manuelle Dateinamen-Eingabe fuer nicht verarbeitete Dateien (FAILED/SKIPPED) #31
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Aktuell ist der Dateiname-Editor nur bei erfolgreich verarbeiteten Dateien (Status DONE) aktiv. Bei FAILED- und SKIPPED-Eintraegen ist das Feld deaktiviert, ohne Erklaerung und ohne Alternative.
Gewuenschter Workflow
Der Benutzer soll auch bei nicht verarbeiteten Dateien eingreifen koennen:
Der Benutzer uebernimmt damit die Rolle der KI und hilft der Anwendung, doch noch ein sinnvolles Ergebnis zu produzieren.
Unterschied zu DONE-Fall
Offene UX-Frage
Noch zu entscheiden: Ob ein eigener Button ('Kopie erstellen') oder derselbe Button ('Dateiname uebernehmen') mit interner Fallunterscheidung sinnvoller ist. Das ist vor der Implementierung zu klaeren.
Status-Aenderung
Nach erfolgreicher manueller Kopie wird der Eintrag auf Status DONE gesetzt. Der urspruengliche FAILED/SKIPPED-Grund bleibt intern in der DB erhalten (Audit-Trail), ist aber fuer den Benutzer nicht mehr im Vordergrund.
Prioritaet
Mittel – wichtiges UX-Feature fuer den vollstaendigen Review-Zyklus.
Produkttest-Befund: Fallunterscheidung verfeinert
Die ursprüngliche Issue-Beschreibung behandelt FAILED und SKIPPED gleich. Das ist nicht korrekt – es gibt zwei grundlegend verschiedene Fälle:
Fall A: SKIPPED
Fall B: FAILED
Erforderliche Programm-Logik
Das Programm muss erkennen, ob zwischen Quelldatei und Zielordner bereits eine Beziehung besteht (DB-Abfrage), und darauf basierend den passenden Fall A oder B anwenden.
Akzeptanzkriterien (ergänzt)
Ergänzung nach Code-Analyse
Claude Code hat den Domain-Code analysiert. Ergebnis: Die Unterscheidung existiert bereits – aber sie wird zur GUI hin weggeworfen.
Was der Code bereits hat
Im Domain-Code gibt es zwei saubere Zustände:
ProcessingStatus.SKIPPED_ALREADY_PROCESSED– Dokument erfolgreich übersprungen (Zieldatei liegt vor)ProcessingStatus.SKIPPED_FINAL_FAILURE– Dokument aufgegeben (alle Retries ausgeschöpft)Das Problem
Die Observer-Schnittstelle
DocumentCompletionStatuskollabiert beide zu einem einzigenSKIPPED. Die GUI sieht damit nicht mehr, welcher Fall vorliegt. Das ist die eigentliche Ursache für das schlechte UX-Verhalten.Konsequenz für die Implementierung
Keine neue Architektur nötig – die Information existiert bereits. Sie muss nur durchgereicht werden:
DocumentCompletionStatusumSKIPPED_ALREADY_PROCESSEDundSKIPPED_FINAL_FAILUREerweitern (statt des pauschalenSKIPPED)SKIPPED_ALREADY_PROCESSED→ Umbenennen möglich (Zieldatei liegt vor), Hinweis auf früheren LaufSKIPPED_FINAL_FAILURE→ Manueller Name → Kopie ins Ziel, Fehlergrund sichtbar