GlotzBox 7.1.2 – Nachtrag aus dem ODROID-Test

Zwei Korrekturen, beide klein und unabhängig voneinander.

1. movies.py: _load_movies_remote_meta() hat die Felder "fetched" und
   "fetched_at" weggeworfen. Der 60-Sekunden-Shortcut in
   _get_merged_movie_list() rechnete dadurch mit Zeitstempel 0 und konnte
   NIE greifen. Jede Filmliste kostete deshalb einen vollen .sha1-Roundtrip
   zur Seedbox (ODROID-Messung: ~350 ms), obwohl der Dienst Sekunden vorher
   genau dasselbe schon geprüft hatte.
   Fehler stammt aus 7.1.0, in 7.1.1 übersehen. Serien und Favoriten waren
   nicht betroffen -- die lesen ihr Meta als rohes Dict.

2. service.py: Die Studio-SkinHelper-Brücke lief rund um die Uhr mit 4 Hz
   und wertete pro Durchlauf mindestens vier InfoLabels aus, auch wenn
   GlotzBox gar nicht geöffnet war. Jetzt: 0.25 s solange ein
   GlotzBox-Container aktiv ist, sonst 2.0 s. Zusätzlich wird der billigste
   Test (Container.FolderPath) zuerst ausgewertet, wodurch im Normalfall
   drei weitere InfoLabel-Abfragen pro Durchlauf entfallen.
   Im geschlossenen Zustand sinkt die Grundlast von 16 auf ~0.5
   InfoLabel-Auswertungen pro Sekunde.

Hintergrund zu Punkt 2
----------------------
Am 13.09.2026 um 20:52:37 ist Kodi auf der ODROID mit SIGSEGV abgestürzt,
83 Sekunden nach der letzten GlotzBox-Interaktion. Der Stack liegt
vollständig in Kodis GUI-Thread (CGUIMultiImage::UpdateVisibility ->
Skin-Variable -> CGUIMediaWindow::GetCurrentListItem -> CGUIControlLookup::
GetControl), kein einziger Python-Frame. Das ist kein GlotzBox-Fehler.

Die Brücke ist aber die einzige GlotzBox-Komponente, die aus einem
Hintergrund-Thread heraus genau die Skin-Helper-Properties schreibt, die
Aeon MQ8 in seinen Skin-Variablen auswertet. Die Drosselung reduziert die
Exposition, beweist aber nichts. Sollte der Absturz wiederkehren, ist der
nächste Schritt, die Brücke testweise komplett abzuschalten
(_start_studio_skinhelper_bridge() im Service auskommentieren) und zu
schauen, ob er dann ausbleibt.

Unverändert offen
-----------------
- _watch_signature() ist weiterhin global. Im Testlog sichtbar: eine
  gesehene Folge -> due=37 Serien -> 5.6 s Rechenzeit und sechs volle
  Schreibvorgänge des Progress-Caches. Blockiert die Anzeige nicht mehr,
  ist aber Arbeit ohne Gegenwert.
- Film- und Serienlisten beenden weiterhin mit cacheToDisc=False.
- ~700 Zeilen toter Code hinter KODI_TEXTURE_DB_ACCESS_ENABLED=False.

Bekanntes Verhalten, kein Fehler
--------------------------------
Nach jeder Wiedergabe verwirft Kodi den warmen Python-Interpreter, weil
der Playback-Monitor als Thread weiterläuft ("CPythonInvoker(N): waiting
on thread" im Log). Der erste Klick nach einem Film oder einer Folge
kostet deshalb wieder den vollen Kaltstart (ODROID: 0.35-0.57 s), jede
weitere Navigation danach 0.014-0.06 s.
