Entfernt den Windows-only-Guard in App.__init__, damit der Dialog mit
indeterminatem ttk.Progressbar auch unter Linux erscheint, wenn das Laden
länger als 500 ms dauert. Ersetzt das literale \u2026 im Label durch das
Zeichen … und passt Spec/Plan an den tatsächlichen Umsetzungsstand an
(Timeout-basierter Wartebalken statt tqdm-Monkey-Patch, da die Xet-Engine
Python-tqdm bypasst).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Circuit-breaker-Pattern: Nach erstem Fehler beim SMTC-Manager-Zugriff
bleibt _broken=true und verhindert alle weiteren Zugriff-Versuche.
Logs Warnung einmalig und cleart _paused.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
winsdk wird seit fast 3 Jahren nicht mehr gepflegt; pywinrt ist der
aktive Nachfolger. Alle Paketnamen, Imports und Dependencies aktualisiert,
API gegen echte pywinrt-Installation auf Windows verifiziert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Beim Ersetzen des Media-Controllers (z. B. wenn der User die
Checkbox deaktiviert) wurden ggf. noch pausierte Player nicht mehr
fortgesetzt. Jetzt wird resume() auf dem alten Controller aufgerufen,
bevor er ersetzt wird.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Nach dem ersten fehlgeschlagenen Bus-Connect wird der Controller
dauerhaft deaktiviert, statt bei jedem Hotkey-Druck einen neuen
Connect-Versuch zu starten.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design-Dokument für automatisches Pausieren laufender MPRIS-Player
während einer Whisper-Aufnahme, mit Resume nach Aufnahme-Stop.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
huggingface_hub nutzt jetzt Xet (Rust-Engine) fuer model.bin-Downloads,
welche Python-tqdm komplett bypassen. Der Dialog erschien deshalb nie.
Neuer Ansatz: Nach 500ms Wartezeit wird ein indeterminater Wartebalken
angezeigt -- sowohl bei Downloads als auch bei langsamer Initialisierung.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Dokumentiert Linux- und Windows-Setup, inklusive der zuvor fehlenden
System-Pakete libayatana-appindicator und gobject-introspection für
das Tray-Icon unter KDE/Wayland.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ohne python-gobject wählt pystray im uv-Venv das _xorg-Backend, das
unter KDE/Wayland kein funktionierendes Tray-Menü liefert. Mit
PyGObject als expliziter Linux-Dep greift pystray._appindicator
(libayatana-appindicator) und das Menü funktioniert.
System-Deps (nicht automatisch): libayatana-appindicator,
gobject-introspection — im README dokumentiert bzw. nachzutragen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>