Files
Melo/BACKLOG.md
T
Hermes (Server)andClaude Opus 5 5c9bfe2001 Backlog: uebersprungenen Widget-Test und offene Punkte festhalten
Neu: BACKLOG.md. Haelt fest, was bewusst zurueckgestellt wurde, damit es
nicht stillschweigend liegen bleibt.

- song_detail_sheet_test.dart haengt und ist uebersprungen: inklusive der
  vier bereits widerlegten Verdachtsmomente (runWithClient erreicht das
  Sheet, drift unter testWidgets, einzelne Provider) und dem naechsten
  Schritt. Fachlich deckt metadaten_uebernahme_test.dart den Zweck ab.
- Kein Wiederherstellen einzeln geloeschter Titel (Papierkorb am Server
  waere denkbar, bewusst nicht gebaut).

Das TODO im Test verweist jetzt auf die Datei.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FpPu4nuKjKKeX1RpdDeX81
2026-08-21 10:06:12 +02:00

2.6 KiB

Backlog

Bekannte offene Punkte, die bewusst zurückgestellt wurden. Nichts hier ist vergessen — es ist entschieden, es später zu machen. Erledigtes wandert raus (die Geschichte steht im CHANGELOG).


🧪 Widget-Test song_detail_sheet_test.dart hängt (übersprungen)

Stand: 2026-08-21 · Auswirkung: nur Tests, die App ist nicht betroffen

Der Test Übernahme eines Online-Vorschlags setzt metadataEdited bleibt beim Aufbau des Widget-Baums hängen und kommt nie zurück — auch nach 13+ Minuten kein Abbruch. Da flutter test alle Dateien in einem Lauf abarbeitet, blockierte er den gesamten Testlauf. Er ist deshalb mit skip: true und einem TODO im Code markiert; der Lauf ist damit wieder in ~20 Sekunden durch.

Fachlich ist nichts ungeprüft: Was der Test absichern sollte, prüft test/library/metadaten_uebernahme_test.dart ohne Widgets — inklusive der Regel, dass eine übernommene Online-Korrektur metadataEdited setzt und den nächsten Bibliotheks-Scan damit überlebt.

Was schon eingegrenzt ist:

Verdacht Ergebnis
http.runWithClient erreicht den State im Modal-Sheet nicht widerlegt — eigene Sonde zeigt MockClient auch im Sheet
drift unter testWidgets blockiert (fehlendes runAsync) widerlegt — upsertSongs + watchSongs().first laufen durch
Einer der Provider blockiert pumpWidget widerlegt — MeloDb, CategoryService, AppSettings einzeln geprüft
Zusammenspiel showModalBottomSheet + Providerbaum offen — der Hänger tritt zwischen pumpWidget und dem ersten tap auf

Nächster Schritt: Den Testkörper schrittweise abspecken (Providerbaum minimieren, Sheet durch eine normale Route ersetzen) bis der Hänger verschwindet — die letzte entfernte Zutat ist die Ursache. Ein tester.pumpWidget(const SizedBox()) mit anschließendem pump() am Testende hat bei online_screen_test.dart einen verwandten Aufräum-Timer von drift gelöst und ist einen Versuch wert.


📥 Kein Wiederherstellen gelöschter Titel

Stand: 2026-08-21 · Auswirkung: Datenverlust im Fehlerfall möglich

Löschungen wirken über den Geräte-Abgleich in beide Richtungen. Gegen versehentliche Massenlöschung schützt die Sicherheitsbremse (loeschBremseGreift), aber eine einzelne irrtümliche Löschung ist endgültig: Datei und Navidrome-Verknüpfung sind weg, sobald kein Konto den Titel mehr aktiv hat.

Denkbar wäre ein Papierkorb am Server (Datei erst nach X Tagen wirklich löschen). Bewusst nicht gebaut — erst beobachten, ob es in der Praxis gebraucht wird.