fix(playback): auto-skip unavailable tracks instead of parking on them

Tauri regression: the Svelte playbackService caught TrackUnavailable play
errors and called autoSkipToNext (bounded at 5 consecutive skips, issue
Tauri#467); the Slint port only logged and cleared the spinner, so the
queue cursor parked on the dead track and playback stopped.

play_audible's error arm now detects TERMINAL unavailability (substring
contract over the flattened ApiError Display: TrackUnavailable /
NonStreamable / NoQualityAvailable — transient errors keep NOT skipping,
the client already retries those), toasts, honors stop-after-this-song
on the failed track, and advances through the real machinery
(advance_to_playable + after_track_change, async recursion boxed).
Superseded fetches (user already picked another track) never skip.
Counter resets when audio actually starts. One new msgid x6 locales.

cc
This commit is contained in:
vicrodh committed 2026-07-06 19:55:49 -06:00
1 parent cb48e04395
commit 41d93e5e5f
7 files changed
+117

No files matched your search

@@ -4451,3 +4451,7 @@ msgstr "SONSTIGES"
msgid "Border"
msgstr "Rand"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "Keine verfügbaren Titel zum Abspielen"
@@ -4481,3 +4481,7 @@ msgstr "OTROS"
msgid "Border"
msgstr "Borde"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "No hay pistas disponibles para reproducir"
@@ -4451,3 +4451,7 @@ msgstr "AUTRE"
msgid "Border"
msgstr "Bordure"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "Aucune piste disponible à lire"
@@ -4440,3 +4440,7 @@ msgstr "その他"
msgid "Border"
msgstr "境界線"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "再生できるトラックがありません"
@@ -4451,3 +4451,7 @@ msgstr "OUTROS"
msgid "Border"
msgstr "Borda"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "Nenhuma faixa disponível para reprodução"
@@ -4464,3 +4464,7 @@ msgstr "ДРУГОЕ"
msgid "Border"
msgstr "Граница"
# Unavailable-track auto-skip (Tauri #467 parity)
msgid "No available tracks to play"
msgstr "Нет доступных треков для воспроизведения"