699 lines
65 KiB
Markdown
699 lines
65 KiB
Markdown
# Abnahme
|
||
|
||
## Redaktioneller Arbeitsbereich 0.8.0
|
||
|
||
| Bereich | Nachweis | Stand |
|
||
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Gemeinsame Navigation | Chromium prüft Start, Eingang, Pieces, Streams und Live im Desktopkopf sowie als mobile Bottom-Navigation | erfüllt am 27.10.2026 |
|
||
| Dashboard ohne erfundene Daten | Root-Route zeigt nächsten Ablauf, aktuelle Pieces, Schnellaktionen und weitere Streams aus bestehenden Diensten | erfüllt am 27.10.2026 |
|
||
| Berechtigungssichere Suche | Servertests finden private Piece-Texte, archivierte Pieces und Stream-Snapshots; Browser prüft gruppierte Trefferseite | erfüllt am 27.10.2026 |
|
||
| Pieces und Abschluss | Chromium prüft automatisches Ausblenden, Abgeschlossen-Ansicht, verlinkte Historie und erneute Einplanung | erfüllt am 27.10.2026 |
|
||
| Streams und Historie | Filter leiten Angelegt, Vorbereitung, Sendefertig und Abgeschlossen ab; historische Abläufe bleiben unveränderlich | erfüllt am 27.10.2026 |
|
||
| Kontextnavigationen | Pieces und Streams besitzen lokale Suche und einklappbare Desktopnavigation; mobile Flächen bleiben überlauffrei | erfüllt am 27.10.2026 |
|
||
| Optionale rechte Arbeitsleiste | Usage-Auswahl öffnet bestehenden Editor nicht-modal rechts; Schließen, Speichern und mobile Vollbildansicht bleiben | erfüllt am 27.10.2026 |
|
||
| Daten- und Sicherheitsgrenzen | 62 Verhaltenstests sowie Browserabläufe für Rollen, Revisionen, Uploads, Live, Freigaben und Präsentation bleiben grün | erfüllt am 27.10.2026 |
|
||
|
||
- `npm run lint`: erfolgreich.
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm test`: 62 von 62 Verhaltenstests erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
- `npm run test:e2e`: 21 von 21 Chromium-Abläufen erfolgreich.
|
||
- `git diff --check`: erfolgreich.
|
||
- Safari und echte Mobilgeräte: nicht verfügbar und deshalb offen.
|
||
|
||
## Horizontale Fundus-Werkbank 0.7.4
|
||
|
||
| Bereich | Nachweis | Stand |
|
||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Horizontale Hauptnavigation | Chromium prüft Desktopkopf und getrennte mobile Navigation bei den vorhandenen Matrixbreiten | erfüllt am 27.10.2026 |
|
||
| Exakt drei Fundusspalten | Bounding-Box-Prüfung ordnet Navigation, Liste und Kontext bei 1440 Pixeln nebeneinander an | erfüllt am 27.10.2026 |
|
||
| Zustanderhaltende Navigation | Chromium behält `includePlanned` beim Wechsel Liste → Piece → Liste; Scrollzustand ist querygebunden implementiert | erfüllt am 27.10.2026 |
|
||
| Eingebetteter Piece-Editor | Schreiben liegt mittig, Metadaten rechts; Anlage, Autosave, Reload, Konflikt und Upload laufen ohne Desktopdialog | erfüllt am 27.10.2026 |
|
||
| Markdown und Rich Text | Gemeinsame Tiptap-Komponente in Original und Usage; Quellansicht speichert Markdown und sichere Vorschau bleibt bereinigt | erfüllt am 27.10.2026 |
|
||
| Bestehende Fachgrenzen | 60 Verhaltenstests sowie Browserabläufe für Snapshots, Werkzeuge, Live und Präsentation bleiben erfolgreich | erfüllt am 27.10.2026 |
|
||
| Responsive und Themes | Chromium-Matrix prüft 390 bis 1440 Pixel, Light/Dark und horizontalen Überlauf | erfüllt am 27.10.2026 |
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm run lint`: erfolgreich.
|
||
- `npm test`: 60 von 60 Verhaltenstests erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
- `npm run test:e2e`: 20 von 20 Chromium-Abläufen erfolgreich.
|
||
- Safari und echte Mobilgeräte: nicht verfügbar und deshalb offen.
|
||
|
||
## Lesender MCP-Zugang 0.7.3
|
||
|
||
| Bereich | Nachweis | Stand |
|
||
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| OAuth-Discovery und anonymer Schutz | Reale lokale HTTP-Anfrage erhält 401 mit `resource_metadata`; Discovery-Routen sind im Produktionsbuild enthalten | erfüllt am 27.10.2026 |
|
||
| DCR, Zustimmung und PKCE | Isolierter HTTP-Ablauf registriert Client, lädt Zustimmung, erhält Code mit `state`/`iss` und tauscht per S256 | erfüllt am 27.10.2026 |
|
||
| Nutzer-, Scope- und Ressourcenbindung | Ausgestellter Token ist gehasht persistiert und wird bei jedem Aufruf gegen Nutzer, Scope, Ablauf und `/mcp` geprüft | erfüllt am 27.10.2026 |
|
||
| MCP-Kompatibilität | Legacy-Initialisierung `2025-11-25` sowie `server/discover` und `tools/list` mit `2026-07-28` über HTTP | erfüllt am 27.10.2026 |
|
||
| Tatsächliche Leseanfrage | `tools/call` auf `list_pieces` liefert aus einer temporären Seed-Datenbank reale Pieces | erfüllt am 27.10.2026 |
|
||
| Schreibschutz und Datenminimierung | Nur fünf Lese-Tools; Positivprojektionen ohne E-Mail, Uploadnamen, Dateipfade und Werkzeug-Arbeitsdaten | erfüllt am 27.10.2026 |
|
||
| ChatGPT- und Cloudron-Verbindung | Kein Deployment und keine externe Clientumgebung vorhanden | offen |
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- Gezielter isolierter HTTP-Ablauf: OAuth Code Flow, PKCE, anonymer Challenge,
|
||
Legacy-Initialisierung, aktuelle Discovery, Toolliste und echte
|
||
`list_pieces`-Anfrage erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
- Keine weitere Verhaltenstest- oder Browsermatrix gemäß Auftrag ausgeführt;
|
||
die Zustimmungsseite wurde im HTTP-Ablauf geladen, aber nicht visuell geprüft.
|
||
- Echte ChatGPT-Verbindung, öffentliche HTTPS-Erreichbarkeit und Cloudron-
|
||
Reverse-Proxy-Verhalten bleiben bis zu einem ausdrücklich freigegebenen
|
||
Deployment offen.
|
||
|
||
## Wartungsrelease 0.7.2
|
||
|
||
| Bereich | Nachweis | Stand |
|
||
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| RSS-Auswahl im Eingang (#16) | Chromium wählt zwei Beiträge über Quellenfilter und zwei Seiten, öffnet den Originallink ohne Umschalten und importiert nur die Auswahl | erfüllt am 26.10.2026 |
|
||
| Live-Menü nach Nutzerabsicht (#18) | Chromium prüft laufenden, pausierten und beendeten Zustand, direkte Timersteuerung, eingeklappte Ausgabe und erreichbare Navigation | erfüllt am 26.10.2026 |
|
||
| RSS-/API-Verwaltung im Katalogstil (#21) | Chromium legt einen Feed an und bearbeitet ihn; API-Zugang, einmaliges Tokenkopieren und Berechtigungsänderung geprüft | erfüllt am 26.10.2026 |
|
||
| Responsive Gestaltung und Farbschemata | RSS-Auswahl und Feed-Dialog mobil/dunkel, Verwaltung desktop/hell, Live-Menü mobil und bei 670 × 450 Pixeln geprüft | erfüllt am 26.10.2026 |
|
||
| Erhalt von Daten, Rechten und Sicherheitslogik | 13 gezielte Feed-/Live-/Zugangstests sowie vollständiger Verhaltenstestlauf; keine Schemaänderung | erfüllt am 26.10.2026 |
|
||
|
||
- `npm test`: 60 von 60 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`: 20 von 20 Chromium-Abläufen erfolgreich.
|
||
- Andere Browser und echte Mobilgeräte: offen.
|
||
|
||
## Wartungsrelease 0.7.1
|
||
|
||
| Bereich | Nachweis | Stand |
|
||
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||
| Abschnittsdauer und Rückkehr zu früheren Pieces (#1) | Live-Verhaltenstests für geänderte Plandauer, Wiederaufnahme, Abschnittslaufzeit und Gesamtzeit; Chromium-Ablauf | erfüllt am 26.10.2026 |
|
||
| Mobiler Live-Ablauf und Metadaten (#3, #13) | mobile Live-Regie ohne horizontalen Überlauf; viewportgebundenes Sheet, Safe-Area-/Standalone-Basis und Fokus in Chromium | Chromium erfüllt; Safari und installierte iOS-Webapp offen |
|
||
| Mobile Sendungskarten (#5) | responsive Karten im vollständigen Chromium-Lauf bei 390 Pixeln geöffnet | erfüllt am 26.10.2026 |
|
||
| Vorbereitung nach Einplanung (#6, #15) | Migration und Servertest für konkrete Usage-Snapshots; Chromium öffnet die Usage und entfernt sie nach „sendefertig“ | erfüllt am 26.10.2026 |
|
||
| Kontextabhängige Präsentation (#8) | vier serverseitig getrennte Modi; Fundus-/Usage-Vorschauen sowie Link-, Video-, Text-/Bildausgabe in Chromium | erfüllt am 26.10.2026 |
|
||
| Gastansicht und Freigaben (#11, #12) | gestalteter Einzeldialog, Verwaltungsreihenfolge und Kartenpadding per Chromium; Tokenersatz mit Invalidierungstest | erfüllt am 26.10.2026 |
|
||
| Iconsuche (#14) | Suchfokus innerhalb der öffnenden Bedienaktion; Chromium bei mobilen und breiten Ansichten | erfüllt am 26.10.2026 |
|
||
|
||
- `npm test`: 60 von 60 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`: 19 von 19 Chromium-Abläufen erfolgreich.
|
||
- Safari auf echtem iOS-Gerät: offen.
|
||
- Installierte Webapp auf echtem iOS-Gerät: separat offen.
|
||
|
||
## Etappe 7
|
||
|
||
| Kriterium | Nachweis | Stand |
|
||
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Feedverwaltung und geplanter/manueller Abruf | Barkeeper-Oberfläche, Prozess-Scheduler und gemeinsame Abruffunktion | erfüllt am 25.10.2026 |
|
||
| Getrennter Vorschau-Eingang | RSS-Beiträge erscheinen separat und werden nur nach Mehrfachauswahl zu Pieces | erfüllt am 25.10.2026 |
|
||
| Kategoriezuordnung und Herkunft | Auswahlkategorien oder Feed-Standard sowie Original-URL als Piece-Quelle im Verhaltenstest | erfüllt am 25.10.2026 |
|
||
| Dubletten und dauerhaftes Verwerfen | wiederholter Testabruf erzeugt keinen zweiten Eintrag und stellt Verworfenes nicht wieder her | erfüllt am 25.10.2026 |
|
||
| HTML-Bereinigung und Abrufgrenzen | Testfeed entfernt fremdes HTML; Loopback wird vor Request blockiert; Größe, Zeit, Redirects und Eintragszahl sind begrenzt | erfüllt am 25.10.2026 |
|
||
| Fehlerisolation | defekter lokaler Testfeed wird protokolliert, weiterer fälliger Feed trotzdem importiert | erfüllt am 25.10.2026 |
|
||
| Versionierte REST-API und OpenAPI | `/api/v1` für Pieces, Sendungen und Einplanungen; `/api/v1/openapi.json` | erfüllt am 25.10.2026 |
|
||
| Begrenzte und widerrufbare Zugänge | gehashte Tokens; Verhaltenstest für Lesen, verweigertes Schreiben und sofortigen Widerruf | erfüllt am 25.10.2026 |
|
||
| Änderungsnachweis und Idempotenz | Audit-Ereignisse und persistente Idempotenz; identische Wiederholung liefert dasselbe Ergebnis | erfüllt am 25.10.2026 |
|
||
| API-Rundlauf | echter HTTP-Test: lesen, anlegen, ändern, erneut lesen, einplanen und sortieren | erfüllt am 25.10.2026 |
|
||
| Nutzung ohne KI | RSS und API sind optional; bestehende Redaktion funktioniert unverändert ohne externen Client | erfüllt am 25.10.2026 |
|
||
| Konkrete ChatGPT-/Codex-Anbindung | keine Clientumgebung oder Zugangsdaten vorhanden | offen |
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm test`: 58 von 58 Verhaltenstests erfolgreich.
|
||
- Gezielte Etappe-7-Tests: 6 von 6 erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
- `npm audit --omit=dev`: 0 gemeldete Schwachstellen.
|
||
- Gezielte Chromium-Prüfung: Desktop-Verwaltung, mobiler Eingang und kompletter
|
||
HTTP-API-Rundlauf erfolgreich, keine Konsolenfehler.
|
||
- `npm run test:e2e`: auf dem Standardport wegen eines bereits laufenden fremden
|
||
Prozesses nicht startbar; identische temporäre Konfiguration auf Port 4188 mit
|
||
16 von 18 erfolgreichen Abläufen. Bekannte Fehler bleiben bei Live-Zeitanzeige
|
||
und Abschluss/Freigabe bestehen.
|
||
- `npm run lint`: nicht erfolgreich wegen acht bereits vorhandener
|
||
Prettier-Abweichungen außerhalb der Etappe-7-Dateien; geänderte Dateien wurden
|
||
separat formatiert.
|
||
- Dokumentationsstatus: **API/MCP getestet, Client-Anbindung offen**. Konkret ist
|
||
die REST-API getestet; ein zusätzlicher MCP-Adapter wurde nicht benötigt und
|
||
keine echte ChatGPT-/Codex-Verbindung hergestellt.
|
||
|
||
## Wartungsrelease 0.6.1
|
||
|
||
| Bereich | Stand |
|
||
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
||
| Live-Timer, Kopfzeile, Drawer und Positionsanzeige | behoben |
|
||
| Mobile Formulare und Iconsuche | behoben |
|
||
| Vorbereitungsaufwand und Übersicht | behoben |
|
||
| Bild-Präsentationsmodus | behoben |
|
||
| Twitch-Tags je Abschnitt | behoben |
|
||
| Sendungskarten und Gastabstände | behoben |
|
||
| Gemeinsamer Freigabedialog einschließlich Live-Regie | behoben |
|
||
| Editorzustand und Drag-and-drop | bestehende zustandserhaltende bzw. alternative Bedienwege unverändert; Browserprüfung offen |
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm test`: 52 von 52 Verhaltenstests erfolgreich.
|
||
- `npm run build`: erfolgreich.
|
||
- `npm run test:e2e`: zweiter Lauf mit 14 erfolgreichen Abläufen; Live-Regie und
|
||
Abschluss/Freigaben schlugen fehl, zwei nachfolgende Abläufe wurden wegen des
|
||
120-Sekunden-Zeitlimits nicht mehr ausgeführt. Die Browsermatrix ist offen.
|
||
- Safari auf echtem iOS-Gerät: nicht verfügbar.
|
||
|
||
## 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
|
||
|
||
## Editor-Erlebnis 0.5.10
|
||
|
||
| Kriterium | Nachweis | Stand |
|
||
| ------------------------------------------- | ------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Titel direkt und per Tastatur bearbeitbar | Chromium prüft Vorlage, Inline-Titel, Autosave, Schließen und erneutes Öffnen | erfüllt am 23.10.2026 |
|
||
| Gemeinsame Themen- und Werkzeugauswahl | Browser prüft Auswahl, Speicherung und deaktivierte Werkzeugzuordnung; Svelte-Check ist warnfrei | erfüllt am 23.10.2026 |
|
||
| Themenicons lokal und persistent | Migration und Servicetests prüfen Iconwert und Snapshot; Verwaltung nutzt lokalen Iconpicker | erfüllt am 23.10.2026 |
|
||
| Präsentationsbild ausdrücklich gewählt | Browser lädt Bild hoch, aktualisiert Usage und sieht nur dieses Bild in anonymer Ausgabe | erfüllt am 23.10.2026 |
|
||
| Medien- und Usage-Snapshots bleiben stabil | Servicetest entfernt Originalmedium und erhält bestehende Usage-Ausgabe | erfüllt am 23.10.2026 |
|
||
| Piece-Löschen ist wiederherstellbar | Servicetest prüft Revision, Soft Delete, Listenausblendung, Medienzugriff und Wiederherstellung | erfüllt am 23.10.2026 |
|
||
| Live-Verwendungen sicher entfernbar | Servicetests erlauben nur offene, nie gelaufene, nicht aktuelle oder präsentierte Verwendungen | erfüllt am 23.10.2026 |
|
||
| Leere OBS-Ausgabe ist transparent | Chromium prüft leeren Renderer vor und nach Präsentation sowie versteckten Verbindungsstatus | erfüllt am 23.10.2026 |
|
||
| Responsive Bedienung | vollständige Browsermatrix prüft 390 bis 1440 Pixel, Light/Dark und horizontalen Überlauf | erfüllt am 23.10.2026 |
|
||
| Reales OBS, reale Anbieter und echtes iOS | In der lokalen Prüfumgebung nicht verfügbar | offen |
|
||
| Werkzeugkatalog entspricht Themenverwaltung | Kompakte Iconzeilen und gemeinsamer Anlegen-/Bearbeitendialog wurden auf Desktop/Mobil verglichen | erfüllt am 23.10.2026 |
|
||
| Vollständige Classic-Regular-Auswahl | Generierung liefert 3.671 Icons; seltenes Icon wurde gesucht, gespeichert und im Piece angezeigt | erfüllt am 23.10.2026 |
|
||
| Formatwahl nutzt gemeinsamen Picker | Browser ordnet Quiz im Dialog zu und erhält Format sowie Deaktivierungszustand nach Reload | erfüllt am 23.10.2026 |
|
||
|
||
## Ausgeführte Prüfungen 0.5.10
|
||
|
||
- `npm run lint`: erfolgreich
|
||
- `npm run check`: 0 Fehler und 0 Warnungen
|
||
- `npm test`: 40 Tests in 7 Dateien erfolgreich
|
||
- `npm run test:e2e`: 16 von 16 Chromium-Browsertests erfolgreich
|
||
- Browsermatrix bei 390, 768, 960, 1280 und 1440 Pixeln einschließlich
|
||
Light/Dark, mobiler Navigation, Dialogen, Planung, Live-Steuerung, anonymer
|
||
Ausgabe, Medienauswahl und privater Datenfilterung erfolgreich; Screenshots
|
||
wurden durch die Suite erzeugt
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`
|
||
- lokale Entwicklungsdatenbank vorab nach
|
||
`.data/backups/0.5.10-pre-migration/sendewerk.sqlite` gesichert;
|
||
`npm run db:migrate` hat `0010_editor_experience.sql` erfolgreich angewendet
|
||
- vor der Werkzeugmigration zusätzlich nach
|
||
`.data/backups/0.5.10-tool-icons-pre-migration/sendewerk.sqlite` gesichert;
|
||
`npm run db:migrate` hat `0011_tool_icons.sql` erfolgreich angewendet
|
||
- Werkzeugkatalog, Anlegen-/Bearbeitendialog, geöffnete Iconauswahl und
|
||
Piece-Werkzeugauswahl bei 1280 × 720 und 390 × 844 Pixeln visuell direkt mit
|
||
der Themenverwaltung verglichen; keine horizontale Überlauffläche festgestellt
|
||
- `bash -n start.sh`: erfolgreich
|
||
- reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem
|
||
iOS-Gerät nicht ausgeführt; Anbieterrequests wurden lokal abgefangen
|
||
|
||
## Verwaltungskorrektur 0.5.11
|
||
|
||
| Kriterium | Nachweis | Stand |
|
||
| ------------------------------------------ | ---------------------------------------------------------------------------------------- | --------------------- |
|
||
| Werkzeugdialog ist initial geschlossen | Chromium prüft den Dialog vor jeder Bedienaktion bei 390 und 1280 Pixeln | erfüllt am 23.10.2026 |
|
||
| Dialog öffnet nur nach bewusster Aktion | Browser legt ein Werkzeug an und öffnet ein bestehendes Werkzeug anschließend zum Ändern | erfüllt am 23.10.2026 |
|
||
| Bestehender Werkzeugablauf bleibt erhalten | Browser prüft Icon, Format, Deaktivierung und Piece-Zuordnung nach erneutem Laden | erfüllt am 23.10.2026 |
|
||
| Themen-Iconpicker bleibt im Viewport | Chromium prüft Öffnen und Auswahl bei 390, 960 und 1280 Pixeln | erfüllt am 23.10.2026 |
|
||
|
||
## Kompakte Live-Regie 0.5.12
|
||
|
||
| Kriterium | Nachweis | Stand |
|
||
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Globale Navigation bleibt aus der Regie | Chromium findet weder Seitenleiste noch mobilen App-Header oder Bottomnavigation | erfüllt am 24.10.2026 |
|
||
| Kleines Desktopfenster bleibt zweispaltig | Chromium prüft Moderation, Ablauf und feste Aktionen bei 900 × 450 Pixeln | erfüllt am 24.10.2026 |
|
||
| Niedrige Desktophöhe wird berücksichtigt | 900 × 450 aktiviert kompakte Abstände ohne Transform oder CSS-Zoom | erfüllt am 24.10.2026 |
|
||
| Zweizeiliger Kopf gewinnt Inhaltsfläche | Chromium begrenzt die Kopfhöhe bei 670 × 450 und prüft die unveränderte feste Aktionsleiste | erfüllt am 24.10.2026 |
|
||
| Lange Kopftitel bleiben kontrolliert | Abschnitt und Folgetitel kürzen einzeilig und öffnen vollständig per Klick, Enter und Escape | erfüllt am 24.10.2026 |
|
||
| Regiemenü bleibt sichtbar und erreichbar | Browser prüft Viewportgrenzen, Scrollzugang, Sendungsname und Aktionen bei 1280, 670 und 390 Pixeln | erfüllt am 24.10.2026 |
|
||
| Menü schließt zugänglich | Escape und Außenklick schließen das Popover und führen den Fokus zum Auslöser zurück | erfüllt am 24.10.2026 |
|
||
| Lange Inhalte scrollen innerhalb der Fläche | Synthetischer Langtext und zusätzliche Ablaufabschnitte erzeugen zwei unabhängige Scroller | erfüllt am 24.10.2026 |
|
||
| Mobile Regie verwendet ein Ablauf-Sheet | 390 × 700 prüft Endlage, Fokus, Escape, Aktionsschließen und Wechsel auf 900 Pixel | erfüllt am 24.10.2026 |
|
||
| Leseposition bleibt am Piece | Nach tiefem Scrollen beginnt ein direkt gewähltes anderes Piece am oberen Rand | erfüllt am 24.10.2026 |
|
||
| Zustände sind ausgeschrieben | Ablauf prüft Kommend, Aktuell, Erledigt und Übersprungen | erfüllt am 24.10.2026 |
|
||
| Erstes und letztes Piece direkt wählbar | Browser wechselt per stabiler Usage-ID auf Desktop und aus dem mobilen Sheet in beide Richtungen | erfüllt am 24.10.2026 |
|
||
| Navigation veröffentlicht nicht automatisch | Öffentliche Ausgabe bleibt bei direkter Auswahl unverändert | erfüllt am 24.10.2026 |
|
||
| Zurück ist reine Betrachtungsnavigation | Browser prüft unverändertes aktuelles Piece, Countdown und Ausgabe sowie gesperrte Fortschrittsaktionen | erfüllt am 24.10.2026 |
|
||
| Timer und Livezustand überleben Reload | Aktuelles Piece und laufender Abschnittscountdown bleiben nach Neuladen erhalten | erfüllt am 24.10.2026 |
|
||
| Wiederaufnahme nur bei Unterbrechung | Während eines aktiven Pieces fehlt die Aktion; nach unterbrochenem Stand ist sie prominent | erfüllt am 24.10.2026 |
|
||
| Sendungsende ist eindeutig | Letztes Piece zeigt Endaktion ohne horizontalen Überlauf; danach fehlen Weiter-Aktionen | erfüllt am 24.10.2026 |
|
||
| Liste und Kalender nutzen dieselben Daten | Chromium wechselt zwischen beiden Ansichten; Sendungslinks bleiben identisch erreichbar | erfüllt am 24.10.2026 |
|
||
| Kalenderpräferenz bleibt am Konto | Service- und Browsertest prüfen Standardwert, Speicherung und Reload | erfüllt am 24.10.2026 |
|
||
| Monat und Berliner Tage sind korrekt | Unit-Tests prüfen Monatsgrenzen und UTC-Zuordnung; Browser prüft Monatswechsel und heutigen Tag | erfüllt am 24.10.2026 |
|
||
| Mehrere und terminlose Sendungen bleiben sichtbar | Desktopkalender und mobile Agenda zeigen zwei Termine am Tag; eigener Bereich zeigt offenen Termin | erfüllt am 24.10.2026 |
|
||
|
||
## Ausgeführte Prüfungen 0.5.12
|
||
|
||
- `npm run lint`: erfolgreich
|
||
- `npm run check`: 0 Fehler und 0 Warnungen
|
||
- `npm test`: 44 Tests in 8 Dateien erfolgreich
|
||
- gezielte Kalender- und Live-Regie-Läufe: 2 von 2 Chromium-Tests erfolgreich
|
||
- `npm run test:e2e`: 17 von 17 Chromium-Browsertests erfolgreich
|
||
- Browserprüfungen der Live-Regie bei 1440 × 900, 900 × 450, 670 × 450 und
|
||
390 × 700 Pixeln sowie des Kalenders bei 1440 × 1000 und 390 × 844 Pixeln
|
||
erfolgreich
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`
|
||
- Versionsgleichheit `0.5.12` in Paket, Lockdatei und Cloudron-Manifest geprüft
|
||
- `bash -n start.sh` und `git diff --check`: erfolgreich
|
||
- reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem
|
||
iOS-Gerät nicht ausgeführt; Anbieterrequests wurden lokal abgefangen
|
||
|
||
## Erweiterte Live-Steuerung 0.5.12
|
||
|
||
| Kriterium | Stand |
|
||
| ---------------------------------------------- | ---------------------------- |
|
||
| Gemeinsame persistente Pause | implementiert, nicht geprüft |
|
||
| Abschnitts- und Gesamtreset bleiben unabhängig | implementiert, nicht geprüft |
|
||
| Gesamt-/Restzeit ohne Doppelerfassung | implementiert, nicht geprüft |
|
||
| Ende, Wiederaufnahme und neuer Lauf getrennt | implementiert, nicht geprüft |
|
||
| Privates Feld „Interaktion“ durch alle Kopien | implementiert, nicht geprüft |
|
||
| Öffentliche Positivliste unverändert | implementiert, nicht geprüft |
|
||
| Classic-Regular-Icons und Drawer-Schließen | gezielt im Browser geprüft |
|
||
|
||
Für die ursprüngliche Erweiterung wurden auf ausdrücklichen Auftrag zunächst
|
||
keine Prüfungen ausgeführt. Die nachfolgenden Korrekturen weisen inzwischen
|
||
Migration, Typen, Build, bestehendes Liveverhalten und die betroffenen
|
||
Oberflächen gezielt nach; die übrigen neuen Timer- und Statusfälle bleiben ohne
|
||
vollständige erneute Matrix.
|
||
|
||
## Live-500-Korrektur 0.5.12
|
||
|
||
- Ursache auf einer schreibgeschützt untersuchten lokalen Datenbank bestätigt:
|
||
`0013` war protokolliert, `live_show_timer_runs` fehlte jedoch.
|
||
- `0014_live_show_timer_repair.sql` auf einer Kopie dieser Datenbank angewendet
|
||
und erneut ausgeführt; Tabelle und Indizes wurden angelegt, 13 bestehende
|
||
Intervalle genau einmal übernommen und ein offenes Intervall erhalten.
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm run test:unit -- --run src/lib/server/live.spec.ts`: 6 Tests erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
|
||
## Live-Icons und kompakte Sendungskarten 0.5.12
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen.
|
||
- `npm run test:unit -- --run src/lib/server/live.spec.ts`: 6 Tests erfolgreich.
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`.
|
||
- Gezielter Chromium-Ablauf der Sendungsübersicht mit Desktopkalender, mobiler
|
||
Agenda und Rückkehr zur Liste: erfolgreich.
|
||
- Vollständiger bestehender Live-Regie-Ablauf einschließlich 900 × 450,
|
||
670 × 450 und 390 × 700 Pixeln: erfolgreich; Iconleiste, Kopfhöhe,
|
||
Viewportgrenzen und horizontaler Überlauf geprüft.
|
||
- Zusätzliche visuelle Chromium-Prüfung bei 656 × 400 und 390 × 700 Pixeln:
|
||
Sendungskarte unter 130 Pixel hoch, Menü-/Ausgabe-/Timericons sichtbar und
|
||
Pausebutton wechselt bedienbar zu Fortsetzen.
|
||
|
||
## Etappe 6
|
||
|
||
| Kriterium | Nachweis | Stand |
|
||
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||
| Spätere Originaländerung verändert Historie nicht | Verhaltenstest ändert Piece und Abschnittskategorie nach Abschluss; historische Snapshots bleiben gleich | erfüllt am 25.10.2026 |
|
||
| Abschluss nicht doppelt; übersprungen ist nicht gesendet | idempotente Befehlswiederholung, fremde Befehls-ID und materialisierte Usage-Historie im Verhaltenstest | erfüllt am 25.10.2026 |
|
||
| Bewusste Auswahl archiviert nur gewählte Originale | Abschlusskandidaten und explizite Archivauswahl im Service; Dialog trennt gesendet, übersprungen und offen | erfüllt am 25.10.2026 |
|
||
| Archivierte Sendung stabil und duplizierbar | Service- und Browsertest prüfen Nur-Lese-Ansicht sowie neuen Entwurf ohne Live-, Historien- oder Freigabedaten | erfüllt am 25.10.2026 |
|
||
| Gast sieht genau eine Sendung und nur erlaubte Felder | anonymer Chromium-Kontext und Scope-Verhaltenstests für Ablauf, Moderation und Recherche | erfüllt am 25.10.2026 |
|
||
| Gast-Schreibzugriff und fremde IDs abgelehnt | anonymer direkter POST erhält 403; fremde Medien-ID erhält 404 | erfüllt am 25.10.2026 |
|
||
| Passwort, Ablauf und Widerruf schützen direkte Aufrufe | Service- und Browsertests prüfen Seite, Gast-Sitzung und direkten Medienrequest vor und nach Widerruf | erfüllt am 25.10.2026 |
|
||
| Barkeeper verwaltet Freigaben | Anlage, Bearbeitung und Löschung direkt in der Sendung sowie gruppiert in der Verwaltung im Browser geprüft | erfüllt am 25.10.2026 |
|
||
| Offene Sendungen sind sicher freigebbar | Service und anonymer Browser prüfen aktuellen Plan vor Abschluss und stabilen Stand danach | erfüllt am 25.10.2026 |
|
||
| Bestehende Abschlüsse werden einmalig übernommen | Upgrade-Test wendet `0015` auf einen Stand bis `0014` zweimal an und findet genau eine Historie | erfüllt am 25.10.2026 |
|
||
| Bestehende Freigaben bleiben bei Erweiterung erhalten | Migration `0016` ersetzt nur die Fremdschlüsselgrenze und kopiert Freigaben sowie Gast-Sitzungen | erfüllt am 25.10.2026 |
|
||
|
||
## Ausgeführte Prüfungen Etappe 6
|
||
|
||
- `npm run check`: 0 Fehler und 0 Warnungen
|
||
- `npm test`: 52 Tests in 11 Dateien erfolgreich
|
||
- gezielter Chromium-Ablauf für Abschluss, Archiv, historische Ansicht,
|
||
offene und abgeschlossene Freigabe, Bearbeitung und Löschung in beiden
|
||
Barkeeper-Oberflächen, Passwort, privaten Scope, Reserve-Medienschutz, fremde
|
||
ID und Gast-POST: 1 von 1 erfolgreich
|
||
- `npm run test:e2e`: nach Korrektur eines bestehenden, auf den 24. Oktober
|
||
festgelegten „Heute“-Fixtures 18 von 18 Chromium-Browsertests erfolgreich
|
||
- Browserprüfung von Sendungsfreigabe und Gastansicht bei 390 × 844 Pixeln sowie
|
||
der Verwaltung bei 1280 × 900 Pixeln ohne horizontalen Überlauf; Screenshots
|
||
visuell kontrolliert
|
||
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`
|
||
- `npm run lint`: Prettier und ESLint erfolgreich
|
||
- Versionsgleichheit `0.6.0` in Paket, Lockdatei und Cloudron-Manifest geprüft
|
||
- `bash -n start.sh` und `git diff --check`: erfolgreich
|