# Flimmer 0.7.0 „Hab ich" — Titel, die in der eigenen Sammlung liegen. Dazu die Nacharbeiten aus der Abnahme: das Docker-Image wurde zum ersten Mal wirklich gebaut und gestartet, und dabei kamen Fehler ans Licht, die nur der echte Containerstart zeigt. ### Hinzugefügt - **Eigene Sammlung**: Jeder Eintrag lässt sich als „hab ich" markieren, mit Angabe wo — Jellyfin, Plex, Emby, NAS, Blu-ray, DVD oder frei getippt. Bewusst getrennt vom Feld „wo schaue ich das": Streaming-Verfügbarkeit kommt und geht, der gekaufte Film auf dem Heimserver bleibt. Gerade die Titel, die nirgends mehr laufen, will man ja wiederfinden. - Abzeichen auf der Posterkachel und im Kopf der Detailseite - Auf der Detailseite steht die Sammlung **vor** der Streaming-Verfügbarkeit — was man hat, ist die verlässlichere Antwort auf „wo kann ich das schauen" - Eigener Filter in der Bibliothek samt Zähler - In Export (CSV und JSON), CSV-Import und REST-API (`?sammlung=1` beim Lesen, `owned` und `ownedSource` beim Ändern) ### Behoben - **Der Container konnte seine Migrationen nicht einspielen.** Das Laufzeitimage bekam die Prisma-CLI, indem einzelne Ordner aus `node_modules` kopiert wurden — dabei fehlten transitive Abhängigkeiten von `@prisma/config` (`effect` und weitere). Die CLI wird jetzt in einer eigenen Build-Stufe vollständig installiert und liegt im Laufzeitimage unter `/node_modules`, wo sie den getracten Abhängigkeitsbaum der Anwendung nicht stört. - **Der Build hing im Container am Schriftabruf.** `next/font/google` lädt Outfit beim Bauen von Google herunter — das macht den Build von einer Netzverbindung abhängig und blieb im Container hängen. Die variable Fassung liegt jetzt als Datei im Repository; weder beim Bauen noch zur Laufzeit geht eine Anfrage nach außen. Für eine selbst gehostete Anwendung ist das ohnehin das Richtige. - **npm blockierte Prismas Install-Skripte** (Voreinstellung seit npm 11), wodurch im Image die plattformpassende Engine fehlen konnte. Sie sind jetzt gezielt für `prisma` und `@prisma/engines` erlaubt statt pauschal. ### Hinzugefügt - **Erscheinungsmeldung für Watchlist-Filme.** Der Schalter dafür stand schon im Profil, verschickt wurde bisher nichts. Betrachtet wird ein Zeitfenster der letzten Tage statt eines Zustandswechsels — TMDB verschiebt Termine gelegentlich, und ein einmal verpasstes Datum soll die Meldung nicht für immer verhindern. - **Gitea-Actions-Workflows**: `ci.yml` prüft bei jedem Push Typen, Tests und Produktionsbuild gegen eine echte PostgreSQL-Instanz; `release.yml` legt beim Pushen eines Versions-Tags das Release mit den Notizen aus `releases/vX.Y.Z.md` an. - Diagrammfarben und ihre Prüfwerte in `docs/DESIGN.md` festgehalten; das öffentliche Profil in die Anleitung aufgenommen. ### Entfernt - Die ungenutzte `images`-Konfiguration in `next.config.ts`. `next/image` kommt nirgends zum Einsatz — damit entfällt auch das sicherheitsrelevant aussehende `dangerouslyAllowSVG`, das ohnehin wirkungslos war.