# 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 ## 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)