Version 0.8.0
CI / pruefen (pull_request) Canceled after 0s

Passkeys und die Jellyfin-Anbindung als groessere Bausteine, dazu vier
Nacharbeiten aus dem Betrieb. Changelog, Release-Notiz, DEVLOG und die
bebilderte Anleitung nachgezogen.

Die Anleitung hat zwei neue Abschnitte samt Screenshots: „Anmelden per
Passkey" und ein Bild im Jellyfin-Abschnitt. Beide Aufnahmen brauchen
Gegenstellen — einen Authenticator und einen Medienserver. Damit
`npm run screenshots` reproduzierbar bleibt, stellt das Skript sie jetzt
selbst bereit: der virtuelle Authenticator kommt ueber CDP vom Browser, der
Jellyfin-Nachbau sind ein paar Zeilen HTTP im Skript. Beide Spuren raeumt es
nach der Aufnahme ueber die Oberflaeche wieder weg.

Der Merkposten zum Entwicklungsmodus in CLAUDE.md war zu absolut: dass unter
Playwright nichts hydratisiert, stimmt nicht durchgehend — im
Screenshot-Lauf gegen denselben Dev-Server funktionierten die Klicks. Der
Eintrag beschreibt jetzt das Beobachtete statt einer Regel, die nicht traegt,
und nennt die Pruefung, mit der sich der Zustand feststellen laesst. Dazu neu:
APP_URL muss zum aufgerufenen Port passen, sonst scheitern Passkeys am
Ursprungsabgleich.

Alle Screenshots neu aufgenommen — die Einstellungsseite hatte sich durch die
neuen Abschnitte ohnehin geaendert.
This commit is contained in:
Florian Wilde
2026-09-02 10:35:43 +02:00
parent 2deb7e1aa5
commit 0f9ad6e29d
27 changed files with 455 additions and 10 deletions
+45 -1
View File
@@ -103,6 +103,49 @@ Alle Zeiten per `date`-Befehl erfasst (Europe/Berlin), nicht geschätzt.
---
## Issue-Runde (v0.8.0)
Ab hier lief die Arbeit issue-getrieben: jede Aufgabe mit eigenem Branch,
Zeiterfassung in Gitea und Freigabe durch Florian. Die Zeiten unten sind die
gemessenen Stopwatch-Werte, nicht die Wanduhr — dazwischen lagen Pausen.
| # | Issue | Dauer | Was passiert ist |
|---|---|---|---|
| 8.1 | #2 Titelraster | 6 min | Titelblock auf zwei Zeilen festgenagelt; vorher und nachher vermessen |
| 8.2 | #4 Standardreihenfolge | 15 min | Feld war da und wurde ausgewertet — es fehlte nur der Weg, es zu setzen |
| 8.3 | #5 Gesehen zurücknehmen | 10 min | Der Knopf war ein `<p>`; die Gegenfunktion für Filme fehlte ganz |
| 8.4 | #3 Träge Suche | 7 min | Das Ladesignal wurde erzeugt und weggeworfen; zwei Verdächtige durch Messung entlastet |
| 8.5 | #6 Passkeys | 20 min | WebAuthn als dritter Weg in dieselbe Sitzung, geprüft mit virtuellem Authenticator |
| 8.6 | #1 Jellyfin | 19 min | Bestand und Sichtungen über die TMDB-Kennung, Stufe 1 und 2 |
**Issues gesamt: 1 h 17 min** (2026-09-01 21:22 – 2026-09-02 07:25)
Dazu ohne Zeiterfassung: die Nacharbeit an `update.sh` (Rückfall auf den
Container-Healthcheck), die Merkposten in `CLAUDE.md` und diese Version
selbst — Changelog, Screenshots, Release.
### Was dabei auffiel
1. **Zwei eigene Vermutungen hielten der Messung nicht stand.** Bei #3 hatte
ich Facetten-Abfragen und blockierende Poster als Ursachen benannt. Gemessen
an 2000 Einträgen kosten die Facetten 12 ms, und bei künstlich um 1500 ms
verzögerten Bildern stehen die Treffer 891 ms vor den Bildern im DOM. Beide
blieben deshalb unangetastet.
2. **Ein Nebenpunkt in einem Issue war schlicht falsch.** Ich hatte bei #5
behauptet, die Einblendung biete ein wirkungsloses Zurücknehmen an — sie
prüft aber längst auf `ids.length > 0`.
3. **Der Changelog zu 0.7.1 beschrieb eine Funktion, die es nicht gab.** Die
Rückfallprüfung über den Container-Healthcheck stand dort, war aber nie
umgesetzt. Jetzt ist sie es.
4. **Ein Abgleich mit null Treffern war kein Fehler.** Der erste Jellyfin-Lauf
gegen die Beispieldaten übernahm keine einzige Sichtung — korrektes
Entdoppeln, die Episoden waren im Seed längst abgehakt.
5. **Sitzungen über nacktes HTTP gehen nicht.** Das Cookie ist in der
Produktion `Secure`; auf einer LAN-IP kommt man deshalb gar nicht herein,
ohne Fehlermeldung. Nicht behoben, festgehalten.
---
## Gesamtübersicht
| Etappe | Version | Dauer |
@@ -114,8 +157,9 @@ Alle Zeiten per `date`-Befehl erfasst (Europe/Berlin), nicht geschätzt.
| 5 — Dashboard, Kalender, Statistik | 0.5.0 | 15 min |
| 6 — Benachrichtigungen, Sync, Import/Export, API, PWA | 0.6.0 | 31 min |
| Nacharbeiten — Docker verifiziert, eigene Sammlung | 0.7.0 | 51 min |
| Issue-Runde — Passkeys, Jellyfin, vier Nacharbeiten | 0.8.0 | 77 min |
**Gesamtentwicklungszeit: 3 h 07 min** (187 min, 2026-09-01, 18:09 – 21:16)
**Gesamtentwicklungszeit: 4 h 24 min** (264 min, 2026-09-01 18:09 – 2026-09-02 07:25)
### Womit die Zeit verging