# 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.