Fix: Server-Bibliothek lädt nicht + Tab '🌐 Server' abgeschnitten

Bug 2 (Laden schlägt fehl trotz 'ping ok'): Der Code ignorierte das Subsonic-
status-Feld. Navidrome liefert bei falschem Passwort HTTP 200 mit
status:"failed" — ping() meldete dadurch fälschlich Erfolg, getAlben/getArtists
behandelten die Fehlerantwort still als leer ("Erneut versuchen").
- parseSubsonic() wirft NavidromeException bei status:"failed" (mit Servermsg).
- ping() prüft jetzt den Body statt nur HTTP 200.
- getAlben/getArtists reichen den Fehler durch (rethrow) statt [] zu liefern.
- getAlben nutzt getAlbumList2 (ID3, wie getArtists) statt getAlbumList (Folder).
- Server-Tab zeigt die echte Fehlermeldung statt "Keine Alben geladen".

Bug 1 (Tab abgeschnitten -> nur "Serve"): TabBar labelPadding verkleinert
(engere Abstände), Schriftgröße unverändert.

Neue Tests: test/navidrome_parse_test.dart (5). 84/84 grün, analyze sauber.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tr2UwurtxyJUpWpBSeVmBm
This commit is contained in:
Hermes (Server)
2026-08-20 02:24:37 +02:00
co-authored by Claude Opus 4.8
parent 61e28d128f
commit 3d39e8b922
4 changed files with 183 additions and 33 deletions
+19
View File
@@ -5,6 +5,25 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### 🐛 Server-Bibliothek lädt + Tab abgeschnitten (2026-08-20)
- 🐛 **Server-Bibliothek lud nicht ("Erneut versuchen"):** Ursache war, dass
der Code das Subsonic-`status`-Feld ignorierte. Navidrome liefert auch bei
falschem Passwort **HTTP 200** mit `status:"failed"``ping()` meldete
dadurch fälschlich „Login ok", und `getAlben`/`getArtists` behandelten die
Fehlerantwort still als „leer".
- 🔧 `ping()` prüft jetzt den Body (`status`) — kein Fehlalarm mehr beim Login.
- 🔧 `getAlben`/`getArtists` werfen bei `status:"failed"` eine
`NavidromeException` mit Server-Meldung statt still `[]` zurückzugeben.
- 🔧 Der Server-Tab zeigt die echte Server-Fehlermeldung (z. B. „Wrong
username or password") statt nur „Keine Alben geladen".
- 🔧 Album-Abruf nutzt jetzt den ID3-Endpoint `getAlbumList2` (konsistent zu
`getArtists`) — der alte Folder-Endpoint `getAlbumList` liefert bei
tag-organisierten Libraries leer.
- 🐛 **Tab „🌐 Server" war abgeschnitten** (nur „Serve" sichtbar): Die 4 festen
Tabs waren zu eng. `labelPadding` verkleinert (engere Abstände) —
Schriftgröße unverändert.
- 🧪 Neue Tests: `test/navidrome_parse_test.dart` (5). 84/84 grün, analyze sauber.
### 🔧 Log-Upload System - Fixes (2026-08-19)
-**ERROR-Level Logging**: Fehler werden SOFORT zum Server hochgeladen (async/await Fixed)
-**Navidrome-Service Error Logging**: Alle API-Fehler (ping, getAlben, getSongs, getFavorites, getArtists, getArtistSongs, getLyrics, scrobble, getBookmarks, getPlaylists, getPlaylistSongs) werden jetzt mit `logger.error()` zum Server geloggt (statt nur debugPrint)