# Abnahme ## Etappe 1 | Kriterium | Nachweis | Stand | | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------- | | Frischer Checkout startet ohne Cloudron | `npm ci` erfolgreich; README-Setup und lokaler Produktionsstart ausgeführt | erfüllt am 21.10.2026 | | Typprüfung und Build erfolgreich | `npm run check`, `npm run build` | erfüllt am 21.10.2026 | | Theme bleibt nach Neuladen erhalten | Playwright: System auf Hell wechseln, Reload, DOM und Schalterzustand prüfen | erfüllt am 21.10.2026 | | Testdaten überleben Neustart | Gebauten Server zweimal gegen `.data/sendewerk.sqlite` gestartet; Fundusdaten und `/healthz` jeweils vorhanden | erfüllt am 21.10.2026 | | Migration wiederholt ausführbar | lokal mehrfach ausgeführt; Verhaltenstest führt Migration zweimal in temporärer DB aus | erfüllt am 21.10.2026 | | Seed reproduzierbar | lokal und im Verhaltenstest zweimal ausgeführt; danach 4 Pieces, 1 Sendung und 3 Verwendungen | erfüllt am 21.10.2026 | | Tests verwenden getrennte Daten | Vitest und Playwright erzeugen je eigene Datenbank im Betriebssystem-Tempdir | erfüllt am 21.10.2026 | | Desktop und Smartphone ohne horizontales Scrollen | 8 Playwright-Abläufe bei 390, 768, 960, 1280 und 1440 Pixeln; Screenshots visuell kontrolliert | erfüllt am 21.10.2026 | | Kompakte Arbeitsoberfläche in beiden Farbmodi | 390, 768 und 1440 Pixel jeweils in Light/Dark; einspaltige Mobilkarten, lange Titel, Metadatenumbrüche und Leerzustände | erfüllt am 21.10.2026 | | Cloudron-Pfade und Healthcheck vorbereitet | Manifestpfad `/app/data/sendewerk.sqlite`, `/healthz`, `start.sh`; JSON-Kernfelder und Bash-Syntax geprüft | vorbereitet; Container offen | | Echte Cloudron-Prüfung | Installation, Backup/Restore, Proxy und read-only Laufzeit | offen, kein Serverzugang | ## Ausgeführte Prüfungen - `npm ci`: erfolgreich, 190 Pakete geprüft, 0 gemeldete Schwachstellen - `npm run setup`, anschließend erneute Migration und erneuter Seed: erfolgreich - `npm test`: 2 Verhaltenstests erfolgreich - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run test:e2e`: 8 von 8 Browsertests erfolgreich; 390, 768 und 1440 Pixel jeweils in Light- und Darkmode sowie Tastaturbedienung, feste Navigation, einspaltige Funduskarten, lange Inhalte und Überläufe geprüft - Zwei getrennte `npm start`-Läufe: Healthcheck und persistente Daten erfolgreich - `bash -n start.sh` und programmatische Manifest-Kernfeldprüfung: erfolgreich ## Nicht erfolgreich oder nicht ausführbar - `docker build -t sendewerk:local .`: nicht ausgeführt, weil der installierte Docker-Client keinen laufenden Daemon unter `/var/run/docker.sock` erreichen konnte. - Echte Cloudron-Installation: mangels Serverzugang nicht ausgeführt. - Ein zusätzlicher Python-Playwright-Lauf: nicht gestartet, weil das optionale Python-Modul `playwright` nicht installiert war. Die projektgebundene TypeScript-Playwright-Suite lief stattdessen vollständig erfolgreich. ## Etappe 2 | Kriterium | Nachweis | Stand | | ------------------------------- | ----------------------------------------------------------------------------------- | --------------------- | | Erstadmin danach geschlossen | Browser-Setup sowie wiederholter Service-Aufruf geprüft; Seed enthält kein Konto | erfüllt am 21.10.2026 | | Login, Logout und lokales HTTP | Browserablauf; `HttpOnly`, `SameSite=Lax`, ohne `Secure` bei expliziter HTTP-Origin | erfüllt am 21.10.2026 | | Einladung und Reset | lokale Outbox bis Kontoaktivierung und neuem Login im Browser durchlaufen | erfüllt am 21.10.2026 | | Einmalige und abgelaufene Links | Verhaltenstests für Wiederverwendung und Ablauf von Einladung und Reset | erfüllt am 21.10.2026 | | Direkte Admin-Aktion verweigert | Thekencrew-POST auf Einladungsaction liefert 403 | erfüllt am 21.10.2026 | | Sperrung entzieht Zugriff | aktive Thekencrew-Sitzung wird gelöscht und beim nächsten Request abgewiesen | erfüllt am 21.10.2026 | | Keine echte Mail ungefragt | Browser- und Verhaltenstests nutzen ausschließlich temporäre lokale Outbox | erfüllt am 21.10.2026 | | Echter SMTP-Versand | nicht ausgeführt, keine Zugangsdaten bereitgestellt | offen | ## Ausgeführte Prüfungen Etappe 2 - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 9 Auth-, Migrations-, Mail- und Dauer-Verhaltenstests erfolgreich - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run test:e2e`: 9 von 9 Browsertests erfolgreich; Erstadmin, Login/Logout, fremder Origin, Einladung, direkte Rollenprüfung, Sperrung, Reset sowie bestehende responsive Arbeitsansichten geprüft - Lokale Outbox in isolierten temporären Verzeichnissen geprüft - Lokaler Produktionsserver der Browsertests über HTTP gestartet; Healthcheck und Migration vor Start erfolgreich - `bash -n start.sh`: erfolgreich ## Etappe 3 | Kriterium | Nachweis | Stand | | ----------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------- | | Anlegen, Bearbeiten, Suchen, Filtern und Reload | Browserrundlauf mit Vorlage, Autosave, Quellen, Status, Suche und Neuladen | erfüllt am 21.10.2026 | | Taxonomien unabhängig | Format einzeln sowie Themen und Abschnittskategorien mehrfach gespeichert und gefiltert | erfüllt am 21.10.2026 | | Sicheres Markdown | Verhaltenstest und Browservorschau entfernen Skript/JavaScript, Formatierung bleibt erhalten | erfüllt am 21.10.2026 | | Private Bilder | Signatur-/Größenprüfung; anonymer Direktrequest erhält keinen Dateiinhalt | erfüllt am 21.10.2026 | | Sichtbare Speicherfehler | Actionfehler und Autosave-Fehlerstatus bleiben am Formular sichtbar | erfüllt am 21.10.2026 | | Konflikterkennung | zwei Browserseiten; veraltete Revision erhält Konflikt und überschreibt die neue Fassung nicht | erfüllt am 21.10.2026 | | Archiv und Wiederherstellung | Browserrundlauf blendet Piece aus und stellt den vorherigen Status wieder her | erfüllt am 21.10.2026 | | Duplikat | Verhaltenstest und Browser prüfen unabhängige Kopie samt Zuordnungen und Bild | erfüllt am 21.10.2026 | ## Ausgeführte Prüfungen Etappe 3 - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 13 Tests in 3 Dateien erfolgreich - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run test:e2e`: 10 von 10 Browsertests erfolgreich - Browserprüfung bei 390, 768, 960, 1280 und 1440 Pixeln in beiden Themes ohne ungewollten horizontalen Überlauf - Mobile Darkmode-Aufnahme des Piece-Editors visuell kontrolliert - `bash -n start.sh` und `git diff --check`: erfolgreich ## Etappe 4 | Kriterium | Nachweis | Stand | | ----------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------- | | Spieleabend und mehrere JC-/Spieleblöcke | persistierte Spieleabend-Vorlage, Seed-Sendung und Browserrundlauf mit Standardablauf | erfüllt am 21.10.2026 | | Reihenfolge und Texte bleiben nach Reload | Verhaltenstests sowie Browsertest für Tastatur- und Drag-and-drop-Sortierung | erfüllt am 21.10.2026 | | Original bleibt unverändert | Service- und Browsertest planen dasselbe Piece mehrfach mit eigenen Titeln, Notizen, Dauern | erfüllt am 21.10.2026 | | Keine doppelte Dauer; Reserve zählt nicht | explizite und summierte Abschnitte sowie Reserve in Verhaltenstest und Browser geprüft | erfüllt am 21.10.2026 | | Entfernen betrifft nur Einplanung | Verhaltenstest löscht Verwendung und Abschnittskopie, nicht das Original | erfüllt am 21.10.2026 | | Sendungsänderung verändert keine Vorlage | tiefe Vorlagenkopie vor und nach Abschnittsänderung verglichen | erfüllt am 21.10.2026 | | Smartphone-Planungsablauf | Abschnittsanlage, Pane-Umschaltung und Überlauf bei 390 Pixeln geprüft | erfüllt am 21.10.2026 | | Gleichwertige Bedienwege | Drag-and-drop, Enter auf Verschiebeschaltfläche sowie klick-/touchbare Zielauswahl geprüft | erfüllt am 21.10.2026 | | Lokale Planungsaktualisierung | Quelle und Reserve per Drag-and-drop ohne Dokumentreload; lokaler Speicherzustand geprüft | erfüllt am 21.10.2026 | | Sichtbare Einfügeposition | Abschnitt, Fundusquelle und Reserve zeigen vor dem Drop Vorschau und transparentes Original | erfüllt am 21.10.2026 | | Piece-Dauer in Minuten | Fundus- und Verwendungseditor rechnen Minuten serverseitig in ganze Sekunden um | erfüllt am 21.10.2026 | | Gleichzeitige Änderungen | veraltete showweite Revision rollt die gesamte Mutation zurück | erfüllt am 21.10.2026 | ## Ausgeführte Prüfungen Etappe 4 - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 18 Tests in 4 Dateien erfolgreich - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run test:e2e`: 11 von 11 Browsertests erfolgreich - Browserprüfung bei 390, 768, 960, 1280 und 1440 Pixeln in beiden Themes ohne ungewollten horizontalen Überlauf - Mobile Aufnahme des vollständigen Sendungsbaukastens visuell kontrolliert - `bash -n start.sh` und `git diff --check`: erfolgreich ## Etappe 5 | Kriterium | Nachweis | Stand | | ------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------- | | Lesbare Moderation | Prompter-Schrift, Einleitung und Überleitung im Browser; Recherche initial geschlossen | erfüllt am 22.10.2026 | | Wiederherstellung | Live-Stand, Laufintervalle, Schriftgröße und Leseposition nach Neuladen geprüft | erfüllt am 22.10.2026 | | Keine doppelte Zeiterfassung | Verhaltenstest wiederholt dieselbe Befehls-ID und findet genau ein Zeitintervall | erfüllt am 22.10.2026 | | Explizite Präsentation | Zweitfenster bleibt nach Start leer und ändert sich erst durch „Präsentieren“ | erfüllt am 22.10.2026 | | Getrennte sichere Ausgabe | anonymer Browserkontext prüft Text, Bild, HTML, JSON und fremde Medien ohne private Daten | erfüllt am 22.10.2026 | | Reserve und Reihenfolge | Reserve als nächstes Piece eingefügt; offene Reihenfolge und serverseitige Live-Grenze geprüft | erfüllt am 22.10.2026 | | Popup- und Verbindungsfehler sichtbar | blockiertes Popup sowie unterbrochenes und wiederhergestelltes State-Polling im Browser geprüft | erfüllt am 22.10.2026 | | Persistente Linkvorschau | Quellwahl, manuelle Felder, Reload, fehlendes Bild und isolierte Testansicht im Browser geprüft | erfüllt am 22.10.2026 | | Sichere Metadatenabrufe | Tests sperren private IPv4-/IPv6-Ziele; Redirect-, Größen- und Zeitlimits sind implementiert | erfüllt am 22.10.2026 | | Validierte Videoplayer | YouTube-URL-Varianten, TikTok-ID, Zeitmarke und Playerwechsel automatisiert geprüft | erfüllt am 22.10.2026 | | Präsentationssnapshot | Einplanung, Duplikation und explizite Aktualisierung aus dem Original im Servicetest geprüft | erfüllt am 22.10.2026 | | Reale OBS-Browserquelle | lokale tokenisierte Browserausgabe vorhanden; kein OBS auf der Prüfmaschine | offen | | Reale Anbieterwiedergabe | automatisierte Tests fangen YouTube-/TikTok-Requests lokal ab | offen | ## Ausgeführte Prüfungen Etappe 5 - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 29 Tests in 6 Dateien erfolgreich - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run test:e2e`: 14 von 14 Browsertests erfolgreich - Anonymer zweiter Chromium-Kontext mit Präsentationstext, Quelle, geschütztem Bild und gefiltertem JSON geprüft - Mobile Aufnahme der Live-Steuerung bei 390 × 844 Pixeln und Desktopaufnahme der heinzlive-Ausgabe visuell kontrolliert - Popup-Blockade sowie Verbindungsabbruch und automatische Wiederverbindung im Browser geprüft - YouTube-/TikTok-Iframes, Playerwechsel, mobile Hochformatausgabe, Linkkartenvorschau ohne Bild, isolierte Testansicht und private Datenfilterung mit lokal abgefangenen Anbieterrequests geprüft - SSRF-Blockade einer privaten Zieladresse über die sichtbare Editorfehlermeldung geprüft - `bash -n start.sh` und `git diff --check`: erfolgreich ## Gezielte Fundus- und Einplanungsanpassung | Kriterium | Nachweis | Stand | | ------------------------------------------- | ------------------------------------------------------------------------------------------ | --------------------- | | Gesendet korrekt abgeleitet | Servicetest schließt offene, übersprungene, Reserve- und nicht abgeschlossene Nutzung aus | erfüllt am 22.10.2026 | | Historie und Fundusfilter | Browser prüft letztes Datum, Sendungslink, weitere Verwendungen und Sofortfilter | erfüllt am 22.10.2026 | | Unabhängige Quellfilter | Browser kombiniert verwendet/eingeplant getrennt und erhält sie über Suchfilter | erfüllt am 22.10.2026 | | Reserve und Mehrfacheinplanung | Reserve zählt als eingeplant; bewusstes Wiedereinblenden erlaubt weitere Einplanung | erfüllt am 22.10.2026 | | Rückkehr nach Entfernen | Browser entfernt die letzte Reserveeinplanung und bietet das Original sofort wieder an | erfüllt am 22.10.2026 | | Angepasste Einplanung dupliziert | Service und Browser prüfen Position, Texte, Notizen, Dauer und Reload | erfüllt am 22.10.2026 | | Live-Zustand des Duplikats zurückgesetzt | Servicetest prüft `open`, neue ID und fehlende Zeitintervalle | erfüllt am 22.10.2026 | | Original unverändert | Piece-Anzahl und Original-ID vor und nach Einplanungsduplikation verglichen | erfüllt am 22.10.2026 | | Speicherfehler nicht als Erfolg dargestellt | veraltete Revision rollt Duplikation vollständig zurück | erfüllt am 22.10.2026 | | Globale aktive Einplanung ausgeblendet | Browser prüft den unabhängigen Filter über mehrere nicht abgeschlossene Sendungen | erfüllt am 22.10.2026 | | Snapshot ausdrücklich aktualisiert | Service prüft neue Originaltexte und erhaltene Notizen/Intervalle; Browser löst Aktion aus | erfüllt am 22.10.2026 | | Fehlendes Original atomar behandelt | Servicetest prüft Fehler und unveränderte Sendungsrevision | erfüllt am 22.10.2026 | | Verwendungsdialog responsiv | Browser prüft Desktop/Mobil, Reserve, erreichbare Aktionen und sichtbare Konfliktfehler | erfüllt am 22.10.2026 | ## Ausgeführte Prüfungen Fundus und Einplanung - `npm test`: 22 Tests in 5 Dateien erfolgreich - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - gezielter Playwright-Lauf: 4 von 4 Browsertests erfolgreich - `npm run test:e2e`: 12 von 12 Browsertests erfolgreich - Desktopansichten von Fundushistorie, kombinierten Sendungsfiltern und Verwendungsdialog sowie mobile Quellspalte und mobiler Dialog bei 390 × 844 Pixeln visuell kontrolliert - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `bash -n start.sh` und `git diff --check`: erfolgreich ## Redaktionelles Piece-Arbeitsblatt | Kriterium | Nachweis | Stand | | ---------------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------- | | Schreiben steht im Mittelpunkt | Desktop- und Mobilprüfung zeigt Fundstück, Recherche und drei Sendungstexte im primären Lesefluss | erfüllt am 22.10.2026 | | Kontext bleibt vollständig erreichbar | Quellen, Einordnung, Präsentation und Bilder auf Desktop sowie als vier mobile Werkzeuge geprüft | erfüllt am 22.10.2026 | | Textfelder unabhängig bearbeitbar | Recherche und Moderationsstichpunkte im Browser gleichzeitig geöffnet und gespeichert | erfüllt am 22.10.2026 | | Bestehender Formvertrag bleibt erhalten | Autosave, Reload, Taxonomie, Quelle, Markdown, Upload, Archiv und Duplikat im Browser durchlaufen | erfüllt am 22.10.2026 | | Konflikte und Speicherfehler sichtbar | parallele Revision sowie Offline-Autosave mit erfolgreicher manueller Wiederholung geprüft | erfüllt am 22.10.2026 | | Schneller Video-Einstieg ohne Einordnung | Link im Eingang aufgenommen, direkt geöffnet, beschrieben und isoliert als Video getestet | erfüllt am 22.10.2026 | | Responsive Darstellung und beide Themes | 1440 × 1000 und 390 × 844 in Light/Dark ohne horizontalen Überlauf visuell kontrolliert | erfüllt am 22.10.2026 | ## Ausgeführte Prüfungen Piece-Arbeitsblatt - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 29 Tests in 6 Dateien erfolgreich - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - gezielter Playwright-Lauf für Autosave, Offline-Fehler, Konflikt und Upload: 1 von 1 Browsertest erfolgreich - `npm run test:e2e`: 15 von 15 Browsertests erfolgreich - Desktop Light/Dark sowie Smartphone Light/Dark und mobiles Präsentationswerkzeug visuell kontrolliert; langer Titel bricht vollständig um, Werkzeugfläche ist opak und die Speicherleiste überdeckt mobil keine Eingaben - `bash -n start.sh` und `git diff --check`: erfolgreich ## Oberflächenrelease 0.5.4 | Kriterium | Nachweis | Stand | | ------------------------------------------ | ---------------------------------------------------------------------------------------------- | --------------------- | | Klare Hierarchie in beiden Themes | Eingang, Fundus, Editor, Sendungsplan und Live-Steuerung in Light/Dark visuell kontrolliert | erfüllt am 22.10.2026 | | Exakte heinzlive-Darkmode-Farben | berechnete Theme-Tokens und Screenshots der dunklen Arbeitsansichten geprüft | erfüllt am 22.10.2026 | | Responsive Darstellung ohne Seitenüberlauf | Chromium-Messung bei 1440 × 1000 und 390 × 844 Pixeln auf allen gezielt geprüften Ansichten | erfüllt am 22.10.2026 | | Sendungsplan-Aktionen bleiben erreichbar | drei sichtbare Aktionen einer Planzeile liegen waagerecht auf gleicher Höhe; Mobilbild geprüft | erfüllt am 22.10.2026 | | Fokus und reduzierte Bewegung | sichtbarer Cyan-Fokusring und bestehende `prefers-reduced-motion`-Regeln im Stylesheet geprüft | erfüllt am 22.10.2026 | ## Ausgeführte Prüfungen Oberflächenrelease 0.5.4 - `npm run check`: 0 Fehler und 0 Warnungen - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - gezielter Chromium-Lauf für Eingang, Fundus, Piece-Editor, Sendungsplan und Live-Steuerung bei 1440 × 1000 und 390 × 844 Pixeln in Light/Dark ohne Konsolenfehler oder horizontalen Seitenüberlauf - Desktop- und Mobilaufnahmen aller genannten Ansichten visuell kontrolliert - vollständige Unit- und E2E-Matrix nicht erneut ausgeführt, weil dieser Release ausschließlich Darstellung und redaktionelle Kurztexte verändert - `git diff --check`: erfolgreich ## Oberflächenkorrektur 0.5.5 | Kriterium | Nachweis | Stand | | ------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------- | | Nachtblau und Glaswirkung erkennbar | berechnete Transparenz/Unschärfe und Desktop-/Mobilaufnahmen in Darkmode geprüft | erfüllt am 22.10.2026 | | Schreibfelder im Ruhezustand sichtbar | deckende Feldfarbe, feine Kontur, Innenabstand und Textcursor im Piece-Editor geprüft | erfüllt am 22.10.2026 | | Goldener Tastaturfokus | berechnete Fokusfarbe und Fokus-Schatten am Titelfeld geprüft; Cyanrahmen nicht mehr aktiv | erfüllt am 22.10.2026 | | Inhaltsgerechte Feldhöhen | kurze Einleitung ist niedriger als ausführliche Moderationsfläche; beide bleiben skalierbar | erfüllt am 22.10.2026 | | Lightmode und Smartphone erhalten | fünf Arbeitsansichten bei 1440 × 1000 und 390 × 844 Pixeln ohne Seitenüberlauf geprüft | erfüllt am 22.10.2026 | ## Ausgeführte Prüfungen Oberflächenkorrektur 0.5.5 - `npm run check`: 0 Fehler und 0 Warnungen - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - gezielter Chromium-Lauf in Light/Dark und Desktop/Mobil ohne Konsolenfehler oder horizontalen Seitenüberlauf; Glas-, Feld- und Fokuswerte zusätzlich programmatisch geprüft - vollständige Unit- und E2E-Matrix gemäß Auftrag nicht erneut ausgeführt - `git diff --check`: erfolgreich ## Oberflächenkorrektur 0.5.6 | Kriterium | Nachweis | Stand | | --------------------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------- | | Gold-/Violettlicht und Glasflächen sichtbar | Fundus und Editor in Light/Dark auf Desktop und Mobil visuell sowie über berechnete Werte geprüft | erfüllt am 22.10.2026 | | Schreibflächen ruhig und eindeutig abgegrenzt | deckende Feldfarbe, Kontur und goldener Fokus im geöffneten Piece-Editor geprüft | erfüllt am 22.10.2026 | | Neuanlage und Suche unmittelbar erreichbar | sichtbare Fundusaktionen sowie geöffnete Vorlagenauswahl auf Desktop und Mobil geprüft | erfüllt am 22.10.2026 | | Zusatzfilter und Zeilenaktionen zugänglich | native Aufklappelemente für Filter und Aktionen per Browserinteraktion geprüft | erfüllt am 22.10.2026 | | Funduszeilen per Tastatur zu öffnen | erster Titeleintrag fokussiert, mit Eingabetaste geöffnet und Editoraufruf geprüft | erfüllt am 22.10.2026 | | Lightmode und Smartphone ohne Seitenüberlauf | Chromium-Messung bei 1440 × 1000 und 390 × 844 Pixeln in beiden Themes | erfüllt am 22.10.2026 | ## Ausgeführte Prüfungen Oberflächenkorrektur 0.5.6 - `npm run check`: 0 Fehler und 0 Warnungen - gezielter Chromium-Lauf für Fundus und geöffneten Piece-Editor bei 1440 × 1000 und 390 × 844 Pixeln in Light/Dark ohne Konsolenfehler oder horizontalen Seitenüberlauf - Neuanlage, Zusatzfilter, Aktionsmenü, Tastaturöffnung, Glaswerte und goldener Fokus automatisiert kontrolliert; alle erzeugten Desktop-/Mobilaufnahmen visuell geprüft - Produktionsbuild sowie vollständige Unit- und E2E-Matrix gemäß Auftrag nicht ausgeführt - `git diff --check`: erfolgreich ## Materialkorrektur 0.5.7 | Kriterium | Nachweis | Stand | | -------------------------------------------- | ------------------------------------------------------------------------------------------------ | --------------------- | | Hintergrundlicht im Arbeitsbereich sichtbar | Fundus und Sendungsplanung ohne Popup in Dark/Light auf Desktop und Mobil visuell geprüft | erfüllt am 23.10.2026 | | Popup erhält die Lichtstimmung | Editor mit leichtem `46%`-Backdrop und `6px` Blur gegen Ansicht ohne Popup verglichen | erfüllt am 23.10.2026 | | Verschachtelte Ablaufkarten werden dunkler | berechnete RGBA-Werte von Außenglas, Abschnitt, Piece und Aktionsgruppe kontrolliert | erfüllt am 23.10.2026 | | Graue Sonderflächen entfernt | aktive Tabs, private Recherche, Quellen-/Materialflächen und Aktionsgruppen visuell geprüft | erfüllt am 23.10.2026 | | Schreibfelder bleiben ruhig und klar | deckende Feldfüllung, feine Kontur und unveränderter Goldfokus in beiden Editorbereichen geprüft | erfüllt am 23.10.2026 | | Lightmode und Smartphone ohne Seitenüberlauf | Chromium-Messung bei 1440 × 1000 und 390 × 844 Pixeln in beiden Themes | erfüllt am 23.10.2026 | ## Ausgeführte Prüfungen Materialkorrektur 0.5.7 - `npm run check`: 0 Fehler und 0 Warnungen - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - berechnete Styles vor und nach der Korrektur für App-Hintergrund, Navigation, Ablauf-Panel, Abschnitte, Pieces, Aktionsgruppen, Dialog, Backdrop, Tabs, Rechercheflächen und Schreibfelder kontrolliert - gezielter Chromium-Lauf für Sendungsplanung sowie Piece-Editor mit „Sendungstext“ und „Recherche & Quellen“ bei 1440 × 1000 und 390 × 844 Pixeln in Light/Dark ohne Konsolenfehler oder horizontalen Seitenüberlauf - Desktop-/Mobilaufnahmen mit und ohne Popup visuell verglichen - vollständige Funktionstests gemäß Auftrag nicht ausgeführt - `git diff --check`: erfolgreich ## Redaktionelle Arbeitsabläufe 0.5.8 | Kriterium | Nachweis | Stand | | ------------------------------------------ | ------------------------------------------------------------------------------------------------ | --------------------- | | Persistente unabhängige Piece-Vorlagen | Servicetests prüfen Snapshot, Revision, Neuanlage, Wiederverwendung und Löschen | erfüllt am 23.10.2026 | | Atomare idempotente Direktanlage | Verhaltenstests prüfen Wiederholung derselben Befehls-ID und vollständigen Rollback | erfüllt am 23.10.2026 | | Interner und öffentlicher Titel getrennt | Service- und Browserabläufe prüfen getrennte Werte, Snapshots und Fallback | erfüllt am 23.10.2026 | | Entfernen betrifft nur konkrete Verwendung | Browser prüft Bestätigung, Rückgabe in Fundus und unverändertes Original | erfüllt am 23.10.2026 | | Beliebige Live-Verwendung auswählbar | Verhaltenstests wählen ersten und erledigten Eintrag über stabile Usage-ID | erfüllt am 23.10.2026 | | Stabiler widerrufbarer OBS-Kanal | Servicetests prüfen Wiederöffnung/Rotation; anonymer Browser prüft Fragmenttausch und Cookie | erfüllt am 23.10.2026 | | Private Quellen und Uploads bleiben intern | HTML- und JSON-Prüfung enthält weder implizite Quellen, Uploadnamen noch interne Redaktionstexte | erfüllt am 23.10.2026 | | Responsive und gleichwertig bedienbar | Chromium prüft Desktop/Mobil, Light/Dark, Drag-and-drop sowie Klick- und Tastaturalternativen | erfüllt am 23.10.2026 | | Reale OBS- und Anbieterwiedergabe | Keine OBS-Installation und keine echten Anbieteraufrufe in der lokalen Prüfumgebung | offen | ## Ausgeführte Prüfungen 0.5.8 - `npm run lint`: nach Formatierung erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 33 Tests in 6 Dateien erfolgreich - `npm run test:e2e`: 15 von 15 Chromium-Browsertests erfolgreich - Browsermatrix bei 390, 768, 960, 1280 und 1440 Pixeln einschließlich Light/Dark, horizontalem Überlauf, Tastaturbedienung, Planung, Live-Steuerung und anonymer Ausgabe geprüft; Screenshots wurden durch die Suite erzeugt - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - `npm run db:migrate`: Migrationen `0007_editorial_workflows.sql` und `0008_durable_planning_commands.sql` erfolgreich auf der zuvor gesicherten lokalen Entwicklungsdatenbank angewendet - `bash -n start.sh`: erfolgreich - reale OBS-Browserquelle und echte YouTube-/TikTok-Wiedergabe nicht ausgeführt; Anbieterrequests wurden in den Browsertests lokal abgefangen ## Live-Werkbank 0.5.9 | Kriterium | Nachweis | Stand | | ---------------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------------- | | Favorit ist globale Originaleigenschaft | Service prüft Revision/Status; Browser prüft Stern, Sortierung und weiterhin wirksamen Planfilter | erfüllt am 23.10.2026 | | Werkzeugkatalog und Rechte | Barkeeper-Verwaltung serverseitig geschützt; Browser prüft Anlage, Formatbezug und Deaktivierung | erfüllt am 23.10.2026 | | Deaktivierte Zuordnung bleibt bearbeitbar | Browser öffnet das Piece erneut und findet Werkzeug, Arbeitslink, Notiz und Deaktivierungsstatus | erfüllt am 23.10.2026 | | Relationen werden unveränderlich gesnapshottet | Service ändert Quelle, Werkzeug und Thema und sieht Änderungen erst nach expliziter Aktualisierung | erfüllt am 23.10.2026 | | Private Live-Materialien bleiben privat | Live-Steuerung zeigt Snapshot-Quelle; anonymes HTML/JSON enthält den privaten Materiallink nicht | erfüllt am 23.10.2026 | | Thematische Publikum-Dachzeile | Usage-Themen werden stabil projiziert; Chromium zeigt „Gaming“ oberhalb des Präsentationstitels | erfüllt am 23.10.2026 | | Persistenter Abschnitts-Countdown | kontrollierte Testzeit prüft eingefrorenes Soll, Reload, Piece-Wechsel und Abschluss ohne Reset | erfüllt am 23.10.2026 | | Responsive Bedienung | komplette Browsermatrix und gezielter Werkzeugeditor bei 390 × 844 ohne horizontalen Überlauf | erfüllt am 23.10.2026 | | Reale OBS- und Anbieterwiedergabe | Keine OBS-Installation und keine echten Anbieteraufrufe in der lokalen Prüfumgebung | offen | ## Ausgeführte Prüfungen 0.5.9 - `npm run lint`: erfolgreich - `npm run check`: 0 Fehler und 0 Warnungen - `npm test`: 37 Tests in 7 Dateien erfolgreich - `npm run test:e2e`: 16 von 16 Chromium-Browsertests erfolgreich - zusätzlicher gezielter Chromium-Lauf des Werkzeugeditors bei 390 × 844 Pixeln: 1 von 1 erfolgreich, ohne horizontalen Überlauf - Browsermatrix bei 390, 768, 960, 1280 und 1440 Pixeln einschließlich Light/Dark, Planung, Live-Steuerung, anonymer Ausgabe und privater Materialien erfolgreich; Screenshots wurden durch die Suite erzeugt - `npm run build`: erfolgreich mit `@sveltejs/adapter-node` - lokale Entwicklungsdatenbank vorab nach `.data/backups/0.5.9-pre-migration/sendewerk.sqlite` gesichert; `npm run db:migrate` hat `0009_live_workbench.sql` erfolgreich angewendet - `bash -n start.sh` und `git diff --check`: erfolgreich - reale OBS-Browserquelle und echte YouTube-/TikTok-Wiedergabe nicht ausgeführt; Anbieterrequests wurden in den Browsertests lokal abgefangen