docs: Changelog, Release-Notes und DEVLOG für 0.2.0
This commit is contained in:
+36
-1
@@ -7,6 +7,40 @@ die Versionierung [Semantic Versioning](https://semver.org/lang/de/).
|
||||
|
||||
## [Unveröffentlicht]
|
||||
|
||||
## [0.2.0] — 2026-09-01
|
||||
|
||||
Metadaten: Flimmer spricht mit TMDB.
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **TMDB-Anbindung** für Suche (gemeinsam über Serien und Filme oder getrennt),
|
||||
Detailabruf, Staffeln und Episoden, offizielle Collections sowie die
|
||||
Streaming-Verfügbarkeit in der eingestellten Region. Zugang wahlweise über
|
||||
den klassischen API-Schlüssel oder das Bearer-Token.
|
||||
- **Gemeinsamer Katalog**: Titel werden über (Typ, TMDB-ID) dedupliziert — bei
|
||||
mehreren Nutzern liegt jede Serie samt Episodenliste nur einmal in der
|
||||
Datenbank. `ensureTitle` holt einen Titel nur, wenn er fehlt oder veraltet ist,
|
||||
und fällt bei einem TMDB-Ausfall auf den lokalen Stand zurück.
|
||||
- **Bild-Cache**: Poster und Hintergrundbilder werden einmal geholt und danach
|
||||
über `/api/image` vom eigenen Server ausgeliefert. Größe und Pfad werden
|
||||
streng geprüft, damit der Endpunkt kein offener Proxy wird.
|
||||
- **Suchseite** mit Typfilter; die Anfrage steht in der URL und ist damit
|
||||
teilbar. Getippte Eingaben werden kurz gesammelt, bevor gesucht wird.
|
||||
- **Detailseite** je Titel mit Backdrop, Kopfdaten, Genres, Streamingdiensten
|
||||
(mit den Akzentfarben der großen Anbieter) und aufklappbaren Staffeln samt
|
||||
Episodenliste.
|
||||
- **Testlauf ohne Schlüssel**: nachgebildete TMDB-Antworten unter `tests/` und
|
||||
`npm test` prüfen den kompletten Importpfad gegen eine echte Datenbank.
|
||||
|
||||
### Behoben
|
||||
|
||||
- `importSeries` gab den Titel zurück, bevor Staffel- und Episodenzähler
|
||||
geschrieben waren — die Zähler standen dadurch auf 0.
|
||||
- Poster und Dienstlogos zeigten das kaputte Bildsymbol des Browsers, wenn ein
|
||||
TMDB-Pfad ins Leere lief. Die Rückfalldarstellung liegt jetzt dauerhaft
|
||||
darunter statt an einem `onError`-Handler zu hängen, der bei einem früh
|
||||
gescheiterten Bild gar nicht mehr feuert.
|
||||
|
||||
## [0.1.0] — 2026-09-01
|
||||
|
||||
Erste lauffähige Etappe: Gerüst, Marke, Datenmodell und Anmeldung.
|
||||
@@ -46,5 +80,6 @@ Erste lauffähige Etappe: Gerüst, Marke, Datenmodell und Anmeldung.
|
||||
dass weitere Sprachen als zusätzliche Datei dazukommen können.
|
||||
- **Seed-Skript** mit Demo-Konten sowie README und Design-Dokumentation.
|
||||
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.1.0...HEAD
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.2.0...HEAD
|
||||
[0.2.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.2.0
|
||||
[0.1.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.1.0
|
||||
|
||||
@@ -80,9 +80,28 @@ Statistiken, Benachrichtigungen, REST-API, PWA. Oberflächensprache **Deutsch**.
|
||||
- [ ] Optional per ENV: OIDC/SSO (Authelia, Keycloak)
|
||||
- [ ] Registrierung durch Admin abschaltbar; erster Nutzer wird Admin
|
||||
|
||||
## Wichtige technische Merkposten
|
||||
|
||||
- **Next 16**: Request-APIs sind async (`cookies()`, `headers()`, `params`,
|
||||
`searchParams`). `middleware.ts` heißt jetzt `proxy.ts`. Turbopack ist Standard.
|
||||
Breaking Changes stehen in `node_modules/next/dist/docs/01-app/02-guides/upgrading/version-16.md`.
|
||||
- **Prisma 7**: keine `url` im Schema — Treiber-Adapter (`@prisma/adapter-pg`)
|
||||
im Client, URL in `prisma.config.mjs`. Generator ist `prisma-client`
|
||||
(TypeScript-Ausgabe nach `src/generated/prisma`, gitignored).
|
||||
Config bewusst `.mjs`, damit die CLI im Produktionsimage ohne TS-Loader läuft.
|
||||
- **Tailwind v4**: `@theme inline` reicht die `--fl-*`-Variablen durch,
|
||||
`@custom-variant dark` hängt an `[data-theme="dark"]`.
|
||||
- **Zwei Verläufe**: `--fl-gradient` für Flächen, `--fl-gradient-ink` für Text
|
||||
(im Light Mode abgedunkelt, sonst kein AA). Logo-Stops `--fl-brand-1/2/3`.
|
||||
- **Dev-Umgebung**: Postgres auf `localhost:5439` (`docker-compose.dev.yml`),
|
||||
Dev-Server auf **Port 3011** (3000 und 3010 sind von anderen Projekten belegt).
|
||||
- **Screenshots**: `node scripts/shot.mjs <url> <ziel.png> [w] [h] [theme]`.
|
||||
- Next hängt selbst einen Block an diese Datei an — der bleibt drin.
|
||||
|
||||
## Fortschritt
|
||||
|
||||
- Stand: **Etappe 1 läuft** (Start 2026-09-01 18:09)
|
||||
- ✅ **Etappe 1** (v0.1.0, released) — Gerüst, Branding, Docker, Schema, Auth. 38 min.
|
||||
- ⏳ **Etappe 2** — TMDB-Anbindung
|
||||
|
||||
<!-- BEGIN:nextjs-agent-rules -->
|
||||
|
||||
|
||||
@@ -21,10 +21,24 @@ Alle Zeiten per `date`-Befehl erfasst (Europe/Berlin), nicht geschätzt.
|
||||
|
||||
---
|
||||
|
||||
## Etappe 2 — TMDB-Anbindung (v0.2.0)
|
||||
|
||||
| # | Start | Ende | Dauer | Arbeitsschritt |
|
||||
|---|---|---|---|---|
|
||||
| 2.1 | 18:47 | 18:51 | 4 min | TMDB-Client: Suche, Serien-, Film- und Staffelabruf, Collections, Anbieterlisten; kurzer Antwortspeicher |
|
||||
| 2.2 | 18:51 | 18:54 | 3 min | Katalogschicht: Import von Titeln, Staffeln, Episoden und Streamingdiensten; Bild-Cache mit eigenem Ausliefer-Endpunkt |
|
||||
| 2.3 | 18:54 | 18:57 | 3 min | Oberfläche: Suchseite mit Typfilter, Detailseite mit Staffeln, Poster- und Anbieterkomponenten |
|
||||
| 2.4 | 18:57 | 19:01 | 4 min | Nachgebildete TMDB-Antworten und Testlauf (7 Tests); dabei zwei Fehler gefunden und behoben: veraltete Zähler nach dem Serienimport, kaputtes Bildsymbol statt Rückfallkachel |
|
||||
|
||||
**Etappe 2 gesamt: 14 min** (2026-09-01, 18:47 – 19:01)
|
||||
|
||||
---
|
||||
|
||||
## Gesamtübersicht
|
||||
|
||||
| Etappe | Version | Dauer |
|
||||
|---|---|---|
|
||||
| 1 — Gerüst, Branding, Docker, Schema, Auth | 0.1.0 | 38 min |
|
||||
| 2 — TMDB-Anbindung | 0.2.0 | 14 min |
|
||||
|
||||
**Bisher gesamt: 38 min**
|
||||
**Bisher gesamt: 52 min**
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Flimmer 0.2.0
|
||||
|
||||
Metadaten: Flimmer spricht mit TMDB.
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **TMDB-Anbindung** für Suche (gemeinsam über Serien und Filme oder getrennt),
|
||||
Detailabruf, Staffeln und Episoden, offizielle Collections sowie die
|
||||
Streaming-Verfügbarkeit in der eingestellten Region. Zugang wahlweise über
|
||||
den klassischen API-Schlüssel oder das Bearer-Token.
|
||||
- **Gemeinsamer Katalog**: Titel werden über (Typ, TMDB-ID) dedupliziert — bei
|
||||
mehreren Nutzern liegt jede Serie samt Episodenliste nur einmal in der
|
||||
Datenbank. `ensureTitle` holt einen Titel nur, wenn er fehlt oder veraltet ist,
|
||||
und fällt bei einem TMDB-Ausfall auf den lokalen Stand zurück.
|
||||
- **Bild-Cache**: Poster und Hintergrundbilder werden einmal geholt und danach
|
||||
über `/api/image` vom eigenen Server ausgeliefert. Größe und Pfad werden
|
||||
streng geprüft, damit der Endpunkt kein offener Proxy wird.
|
||||
- **Suchseite** mit Typfilter; die Anfrage steht in der URL und ist damit
|
||||
teilbar. Getippte Eingaben werden kurz gesammelt, bevor gesucht wird.
|
||||
- **Detailseite** je Titel mit Backdrop, Kopfdaten, Genres, Streamingdiensten
|
||||
(mit den Akzentfarben der großen Anbieter) und aufklappbaren Staffeln samt
|
||||
Episodenliste.
|
||||
- **Testlauf ohne Schlüssel**: nachgebildete TMDB-Antworten unter `tests/` und
|
||||
`npm test` prüfen den kompletten Importpfad gegen eine echte Datenbank.
|
||||
|
||||
### Behoben
|
||||
|
||||
- `importSeries` gab den Titel zurück, bevor Staffel- und Episodenzähler
|
||||
geschrieben waren — die Zähler standen dadurch auf 0.
|
||||
- Poster und Dienstlogos zeigten das kaputte Bildsymbol des Browsers, wenn ein
|
||||
TMDB-Pfad ins Leere lief. Die Rückfalldarstellung liegt jetzt dauerhaft
|
||||
darunter statt an einem `onError`-Handler zu hängen, der bei einem früh
|
||||
gescheiterten Bild gar nicht mehr feuert.
|
||||
Reference in New Issue
Block a user