fix: Gast-Zugang-Sperre, veralteter Token, Doppel-Tap, Hinweistext (Branch-Review)

Behebt die Findings aus dem abschließenden Gesamt-Branch-Review für
feature/youtube-gast-zugang, alle in einem Rutsch:

- KRITISCH: Gast-Modus war eine Einbahnstraße — einmal "Als Gast
  fortfahren" getippt, war _AnmeldeDialog (einziger Baka-Login-Einstieg,
  auch für Melo-Cloud-Sync) dauerhaft unerreichbar. Neu:
  GastZugang.verwerfen() plus "Anmelden"-Knopf neben der Gast-Statuszeile
  in beiden Screens.
- WICHTIG: zugriffOk prüfte den rohen gast.hatToken statt istGastModus —
  ein alter Gast-Token konnte den Auto-Login-Rückfallweg für Server-User
  verdecken. istGastModus wird jetzt vor zugriffOk berechnet und dort
  verwendet.
- WICHTIG: CHANGELOG ergänzt — der Server-Endpunkt POST /api/guest-token
  fehlt noch (separates Vorhaben).
- Doppel-Tap-Schutz für den Gast-Button in beiden Screens.
- Widersprüchlicher Hinweistext im YT-Suche-Tab (verlangte Baka-Login
  direkt über dem Gast-Button) korrigiert.
- Zwei Gast-Tests in youtube_search_screen_test.dart bekommen jetzt
  echtes gast:-Wiring in YtSearchService/YtDownloadService.
- 2 neue Regressionstests fürs Anmelden-Escape-Hatch.

Getestet: volle Suite grün (602 Tests, 1 skipped, 0 failed),
flutter analyze ohne Befund.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcDiyJdVRqh1TtJk5JiabX
This commit is contained in:
Hermes (Server)
2026-08-26 22:17:03 +02:00
co-authored by Claude Sonnet 5
parent b32f3198f8
commit d20f01adee
6 changed files with 175 additions and 23 deletions
+39
View File
@@ -5,8 +5,47 @@ Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
## [Unreleased]
### 🐛 Gast-Zugang: Fixe aus dem Branch-Abschluss-Review (2026-08-26)
- 🔓 **Gast-Modus war eine Einbahnstraße.** Einmal "Als Gast fortfahren"
angetippt, blieb `gast.hatToken` dauerhaft `true` (Token steckt im
Secure Storage, wird bei jedem App-Start wiederhergestellt) — und damit
war `_AnmeldeDialog`, der EINZIGE Einstieg in der App für die
Baka-Anmeldung (auch für den Melo-Cloud-Sync-Login!), unerreichbar.
Neu: `GastZugang.verwerfen()` verwirft den Token wieder, und ein
"Anmelden"-Knopf neben der Gast-Statuszeile (Download-Tab und
YT-Suche-Tab) ruft ihn auf.
- 🔀 **Ein alter Gast-Token hat den Auto-Login-Rückfallweg für
Server-User verdeckt.** `zugriffOk` prüfte bisher den rohen
`gast.hatToken` statt `istGastModus` — ein Gerät, das früher mal als
Gast lief und jetzt als Server-User mit fehlgeschlagenem Auto-Login
dasteht, bekam die Fehlermeldung dazu nie zu sehen und lud still über
den (limitierten) Gast-Pfad. `istGastModus` wird jetzt vor `zugriffOk`
berechnet und dort statt des rohen Tokens verwendet.
(`lib/downloads/downloads_screen.dart`,
`lib/downloads/youtube_search_screen.dart`)
- ⏱️ **Doppel-Tap auf "Als Gast fortfahren" konnte zwei Anfragen
gleichzeitig auslösen.** Beide Screens sperren den Button jetzt während
`holeToken()` läuft (`_gastLaeuft`).
- 📝 **Widersprüchlicher Hinweistext im YT-Suche-Tab behoben** — der Text
über dem Gast-Button verlangte fälschlich eine Baka-Anmeldung.
- ⚠️ **CHANGELOG ergänzt:** der Abschnitt zum Gast-Zugang unten macht jetzt
klar, dass die Server-Seite (`POST /api/guest-token`) noch fehlt.
-**Getestet:** 2 neue Regressionstests fürs "Anmelden"-Escape-Hatch
(`test/downloads/online_screen_test.dart`,
`test/downloads/youtube_search_screen_test.dart`), 2 bestehende Gast-Tests
im YT-Suche-Tab jetzt mit echtem `gast:`-Wiring in
`YtSearchService`/`YtDownloadService`. Volle Suite grün, `flutter
analyze` ohne Befund.
### 📺👤 YouTube-Gast-Zugang: bewusste Wahl + Tages-Zähler (Download-Tab + YT-Suche-Tab) (2026-08-26)
- ⚠️ **Braucht noch die Server-Seite.** Der neue Endpunkt `POST
/api/guest-token` und die Quota-Logik in `yt_proxy.py` existieren noch
nicht (separates Vorhaben, siehe
`docs/superpowers/specs/2026-08-26-youtube-guest-quota-design.md`). Bis
die Server-Seite steht, liefert der "Als Gast fortfahren"-Button
zuverlässig einen 404-Fehler.
- 👤 **Echte Gäste (kein Baka-Konto, kein Melo-Server) sehen jetzt zwei
Buttons** statt nur der Anmeldung: "Beim Baka-Konto anmelden" und neu
"Als Gast fortfahren (5 Downloads/Tag)". Der Gast-Button holt sich per