Review-Fix: abmelden() setzte _verbleibend bisher nicht zurück,
anders als GastZugang.verwerfen() (_verbleibend = null). Ohne den
Fix bliebe nach einem Account-Wechsel (z.B. Baka -> Tinker) der
alte Kontingent-Stand sichtbar, bis der nächste Download einen
frischen Stand liefert. Aktuell folgenlos (verbleibend ist bis zum
Server-Rollout ohnehin immer null), aber ein latenter Bug.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012A2pmbnVNPiHdyf2GW8eLP
BakaAuth bekommt verbleibend/merkeVerbleibend analog zu GastZugang.
YtDownloadService liest cloud_remaining bei Cloud-Zugriff (nicht bei
Gast-Zugriff — Felder bleiben getrennt). UI zeigt "Noch N von 100
heute" für angemeldete Cloud-Accounts. Reine App-Seite, wirkungslos
bis der Server (separates Vorhaben) cloud_remaining liefert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012A2pmbnVNPiHdyf2GW8eLP
Dustin hat beim Durchsprechen der Proxy-Architektur bestätigt: auch
Dustin/Baka/Tinker bekommen ein Tages-Limit (100 statt 5 bei Gästen),
nicht mehr unbegrenzt. Serverseitiger Vertrag (cloud_quota-Tabelle,
cloud_remaining-Feld) und App-Seite (BakaAuth.verbleibend, UI-Text)
dokumentiert, analog zum bestehenden Gast-Limit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012A2pmbnVNPiHdyf2GW8eLP
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
Analog zum Download-Tab: echte Gäste sehen zusätzlich zum
bestehenden Hinweis den Button "Als Gast fortfahren (5
Downloads/Tag)"; im Gast-Modus ersetzt ein Zähler den Hinweis.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Echte Gäste sehen jetzt zwei Buttons: "Beim Baka-Konto anmelden"
und "Als Gast fortfahren (5 Downloads/Tag)". Im Gast-Modus wird
der Cookie-Schalter ausgeblendet (Server erzwingt cookies=false
für Gast-Zugriffe ohnehin) und ein Zähler "noch N von 5 heute"
gezeigt, sobald der Server ihn meldet.
_YouTubeBereich.build() beobachtet jetzt app-weit GastZugang; das
Qualitäts-Gate deckte auf, dass hauptmenue_test.dart und
home_shell_test.dart eigene Provider-Bäume ohne GastZugang bauen
(sie spiegeln main.dart nach, statt es zu importieren) — dort
GastZugang ergänzt, analog zum bestehenden Muster für die anderen
Dienste.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neue Instanz wird beim Start geladen (gespeicherten Gast-Token
wiederherstellen), an YtDownloadService/YtSearchService gereicht
und als Provider bereitgestellt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Analog zu YtDownloadService: optionaler gast-Parameter, X-Guest-
Token statt Authorization, automatisches Token-Nachholen bei 401.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Optionaler gast-Parameter (GastZugang) — sendet bei fehlender
Baka-Anmeldung X-Guest-Token statt Authorization, übernimmt
guest_remaining aus der Erfolgsantwort, holt bei 401 automatisch
einen neuen Gast-Token nach.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Analog zu BakaAuth, aber ohne Passwort: holt/speichert einen
geräte-gebundenen Gast-Token vom neuen /api/guest-token-Endpunkt
(siehe docs/superpowers/specs/2026-08-26-youtube-guest-quota-design.md).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_$(uuidgen | cut -d- -f1)