Files
sendewerk/docs/STATUS.md
T
2026-10-22 14:18:57 +02:00

9.6 KiB
Raw Permalink Blame History

Projektstatus

Aktueller Umfang

Etappe 1 bis Etappe 5 sind abgeschlossen. Architektur, Gesamtdatenmodell, Anmeldung, Rollen, persistente Inhaltsbearbeitung, Sendungsplanung, Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert. Etappe 6 wurde nicht begonnen.

Umgesetzter Stand Etappe 1

  • SvelteKit-/TypeScript-Monolith mit Node-Adapter
  • konfigurierbare lokale SQLite- und Uploadpfade
  • wiederholbare Migrationen und realistischer Seed
  • persistentes Light-/Dark-/System-Theme
  • responsive Navigation und gekennzeichnete Vorschauen für Fundus, Sendungsbau und Live-Modus
  • kompakte Desktop-Arbeitsansicht mit fester Seitenleiste, Fundusliste und zweigeteiltem Sendungsbau; auf schmalen Ansichten Umschaltung statt Engpass
  • Healthcheck, Produktionsstart und frühes Cloudron-Paket
  • getrennte Unit-/Integrations- und Browser-Testdaten

Die Vorschauen lesen echte Daten aus SQLite. Suche und mobile Pane-Umschaltung funktionieren lokal; redaktionelle Schreiboperationen bleiben bewusst den späteren Etappen vorbehalten.

Die abschließende Oberflächenüberarbeitung von Etappe 1 reduziert große Seitenköpfe und verschachtelte Karten, bündelt den Schreibschutzhinweis aufklappbar und hält Entwicklungsinformationen aus der Arbeitsoberfläche heraus. Eingang und Archiv zeigen kurze Leerzustände, die Verwaltung trennt Abschnittskategorien, Formate und Themen kompakt.

Die abschließende responsive Prüfung verdichtet Seitenleiste, Navigation und Funduszeilen weiter. Mobile Funduskarten sind intern einspaltig; lange Titel, Beschreibungen und Metadaten bleiben ohne feste Kartenhöhe sichtbar. Suche und Statusfilter sind gleich hoch, und die Filtergruppe wird nur als Ganzes umgebrochen.

Noch nicht umgesetzt

Archivabschluss, Freigaben, RSS und API. Diese späteren Bereiche dürfen nicht als bereits implementiert verstanden werden.

Umgesetzter Stand Etappe 2

  • einmalige Erstadmin-Einrichtung mit externem Betreiber-Token
  • Login und POST-Logout mit widerrufbaren Datenbanksitzungen
  • Rollen Barkeeper und Thekencrew mit serverseitiger Prüfung
  • Einladungen und Passwortreset über befristete, einmalige Links
  • Kontensperrung mit sofortigem Entzug bestehender Sitzungen
  • zeitfensterbasiertes Login-Rate-Limit ohne dauerhafte Kontensperre
  • lokale Mail-Outbox als Vorgabe und explizit konfigurierbarer SMTP-Versand
  • responsive Authentifizierungs- und Kontenverwaltungsoberflächen

Umgesetzter Stand Etappe 3

  • persistente Piece-Neuanlage aus leerem Entwurf oder drei redaktionellen Vorlagen
  • Schnellaufnahme von Gedanken und HTTP-/HTTPS-Links im Eingang
  • vollständiger Editor für Quellen, Dauer in Minuten, Status und getrennte Einleitung, Recherche, Moderation, Überleitung und Präsentation
  • serverseitig bereinigte Markdown-Vorschau
  • unabhängige Themen, Formate und Abschnittskategorien mit Barkeeper-Verwaltung
  • serverseitige Suche und Filter nach Status, Format, Thema und Abschnitt
  • Autospeichern mit sichtbarem Zustand und Warten vor interner Navigation
  • optimistische Revisionen verhindern unbemerktes Überschreiben
  • Duplizieren einschließlich Quellen, Taxonomie und Bildern
  • Archivieren und Wiederherstellen in den vorherigen Arbeitsstatus
  • private Rasterbilder mit Größen-/Signaturprüfung und geschützter Auslieferung
  • erweiterter Seed mit Eingangs-, Archiv-, Markdown- und Recherchebeispielen
  • standardmäßig ausgeblendete gesendete Pieces mit verlinkter, aufklappbarer Verwendungshistorie; gesendet bedeutet erledigt in abgeschlossener Sendung
  • standardmäßig ausgeblendete Pieces, die in mindestens einer noch nicht abgeschlossenen Sendung eingeplant sind, mit unabhängigem Sofortfilter
  • Fundus-Originale und sendungsspezifische Verwendungen nutzen denselben großzügigen Dialograhmen mit den Bereichen „Sendungstext“, „Recherche & Quellen“ und „Präsentation“; der jeweilige Speicherkontext ist sichtbar und Original sowie Verwendung bleiben getrennte Revisionsgrenzen
  • Titel, Einleitung, Moderationsstichpunkte und Überleitung sind ohne vorgeschaltete Lese-/Bearbeitungsschalter direkt beschreibbar; eine kleine Markdown-Leiste ergänzt Formatierung ohne Änderung des Speicherformats
  • Recherche, Quellen, verwendungseigene Notizen und Material sind in einem Bereich gebündelt; öffentliche Texte, Darstellungswahl und tatsächliche Vorschau stehen gemeinsam im Präsentationsbereich
  • der Dialog bleibt innerhalb der Desktop-Fensterhöhe, hält Kopf, Bereichsnavigation und Aktionen sichtbar und nutzt mobil die volle Bildschirmfläche; Bereichswechsel hängen Eingaben nicht aus und merken die jeweilige Scrollposition
  • die Schnellaufnahme akzeptiert Gedanke oder URL, bleibt nach dem Ablegen im Eingang und öffnet die Ausarbeitung erst über eine bewusste Aktion

Für diese gezielte Überarbeitung wurden npm run check sowie kurze Chromium-Sichtkontrollen des Original- und Verwendungseditors bei 1440 × 1000 und 390 × 844 Pixeln ausgeführt. Dabei waren Dialoggrenzen, feste Bedienbereiche, alle drei Arbeitsbereiche und horizontaler Überlauf unauffällig. Die vollständige Unit-, E2E- und Build-Matrix ist gemäß Auftrag noch offen.

Umgesetzter Stand Etappe 4

  • Sendungsübersicht mit leerem Start, Standardablauf und Spieleabend-Vorlage
  • frei benennbare, kategorisierte und sortierbare Abschnitte einschließlich eigenständiger Spieleblöcke
  • Einplanung ausschließlich sendefertiger Pieces als unabhängige Text- und Dauerkopien; Mehrfachverwendung desselben Originals ist möglich
  • showweite Reservebank, die nicht in Abschnitts- oder Gesamtdauer einfließt
  • explizite Abschnittsdauer ersetzt die Piece-Summe statt sie zu addieren
  • Bearbeiten, Entfernen sowie Verschieben innerhalb und zwischen Abschnitten
  • zugänglicher Stift-Dialog für alle sendungsspezifischen Felder und Aktionen, auf Desktop zweispaltig und auf kleinen Bildschirmen einspaltig scrollbar
  • explizites Aktualisieren eines Verwendungssnapshots aus dem Original für Titel, Dauer und Redaktionstexte bei erhaltenen Notizen und Live-Daten
  • Duplizieren einer konkreten Einplanung direkt hinter dem Ausgangselement mit erhaltenen Anpassungen, aber zurückgesetztem Live-Zustand
  • Piece-Dauern werden im Editor in Minuten eingegeben und intern weiterhin als ganze Sekunden gespeichert
  • Drag-and-drop über eindeutige Griffe, auch direkt aus gefilterten Quellen, mit positionsgenauer Einfügevorschau, transparentem Original und gleichwertigen Klick-, Touch- und Tastaturaktionen
  • Planungsmutationen ohne Dokumentreload mit lokalem Speicherzustand und animierter Neusortierung der betroffenen Elemente
  • unabhängige Sofortfilter für verwendete sowie in der aktuellen Sendung schon eingeplante Originale einschließlich Reservebank
  • kopierbare Twitch-Titel und Ankündigungstexte
  • showweite optimistische Revision schützt Metadaten, Reihenfolge und Inhalte vor unbemerktem parallelem Überschreiben
  • realistischer Seed mit Standardablauf und eigenständigem Spieleabend

Umgesetzter Stand Etappe 5

  • fokussierte Moderationsansicht mit Prompter-Schrift, Einleitung, Moderation, Überleitung und standardmäßig geschlossener privater Recherche
  • ausblendbare Zeit- und Ablaufanzeige sowie persistente lokale Leseposition
  • aktuelles und nächstes Piece samt Abschnitt und geplantem Zeitbedarf
  • persistenter Live-Stand mit tatsächlichen Laufintervallen, Erledigen, Überspringen, Zurück und Wiederaufnahme
  • idempotente Live-Befehle verhindern doppelte Wirkung bei Wiederholung
  • serverseitig geschützte Umsortierung offener Pieces und Reserveeinfügung
  • explizite Präsentationsaktion; normale Live-Navigation verändert die Ausgabe nicht
  • getrennte, tokenisierte heinzlive-Ausgabe mit Polling, Verbindungsanzeige, Präsentationstext, Quellen und erlaubten Bildern
  • wählbare Text-, Linkkarten- und Videodarstellung aus genau einer vorhandenen Piece-Quelle mit manuell korrigierbaren, persistenten Metadaten
  • ausdrückliches serverseitiges Neuladen von Linkmetadaten über Metascraper mit DNS-, Redirect-, Zeit-, Größen- und Privatnetzschutz
  • validierte YouTube- und TikTok-IDs, offizielle Player-Iframes ohne Autoplay sowie Linkkarten-Fallback für nicht unterstützte Videoquellen
  • unveränderliche Präsentationssnapshots je Einplanung und explizite Aktualisierung aus dem Fundus
  • isolierte Präsentationstestansicht ohne Änderung des Live-Stands sowie tokengebundene, serverseitig geschützte Proxys für externe Vorschaubilder
  • Ausgabe-HTML, JSON und Medienzugriff enthalten keine Recherche, Moderationsnotizen, eigenen Notizen, Kontodaten oder internen Dateipfade

Bekannte offene Betriebsprüfung

Eine echte Cloudron-Installation samt Backup/Restore, Reverse-Proxy-Verhalten und read-only Laufzeit konnte ohne bereitgestellten Cloudron-Server nicht durchgeführt werden. Auch der lokale Container-Smoke-Test blieb offen, weil auf der Prüfmaschine kein Docker-Daemon lief. Manifestkernfelder und Startskript-Syntax wurden lokal geprüft.

Eine reale OBS-Browserquelle stand nicht zur Verfügung. Die tokenisierte Präsentationsausgabe wurde stattdessen in einem anonymen zweiten Chromium- Browserkontext einschließlich Bild, JSON-Filterung, Polling und sichtbarem Verbindungsabbruch geprüft.

Die automatisierten Playerprüfungen fingen YouTube- und TikTok-Requests lokal ab. URL-Erkennung, Iframe-Wechsel, Zeitmarkenübergabe und mobile Ausgabe sind damit geprüft, nicht jedoch die reale Wiedergabe oder Verfügbarkeit der Anbieter.

Verifizierte Umgebung

  • Node.js 22.23.1, npm 10.9.8
  • SvelteKit 3.1.0, Svelte 5.57.2, Vite 8.3.5
  • SQLite-Treiber better-sqlite3 13.0.3
  • Playwright 1.64.1 mit Chromium 156.0.8078.4 (Fallback-Build für Ubuntu 24.04)