Release 0.5.10
This commit is contained in:
1 parent
c3033479b5
commit
4fe61971e4
52 files changed
+38565
-466
No files matched your search
@@ -370,3 +370,45 @@
|
||||
- `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
|
||||
+33
-15
@@ -37,18 +37,18 @@ Die ersten fünf Etappen materialisieren Identität, Inhaltsverwaltung,
|
||||
Sendungsplanung und Live-Durchführung. Folgende Grenzen gelten für umgesetzte
|
||||
und spätere Bereiche.
|
||||
|
||||
| Bereich | Geplante Entitäten und Beziehungen |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Identität | `users`, Rollen, Sessions, Einladungen, Reset-Tokens und Sperren sind umgesetzt; technische Zugänge folgen später |
|
||||
| Taxonomie | getrennte `section_categories`, `formats`, `topics`; Pieces und Vorschläge über Zuordnungstabellen mehrfach verknüpft |
|
||||
| Inhalt | `pieces` mit Status, Favorit, Dauer, Revision, Texten, Quellen, Werkzeugzuordnungen und privaten Medien; Vorlagen speichern Snapshots |
|
||||
| Sendungsbau | `shows`, geordnete `show_sections`, `piece_usages` samt Quellen-/Werkzeug-/Themensnapshots, Reservebank und Vorlagen; Original-ID bleibt Referenz |
|
||||
| Live | expliziter Live-Stand, aktuelles Element, tatsächliche Piece-Zeiten, persistente Abschnittstimer und getrennte Präsentationsausgabe |
|
||||
| Historie | unveränderliche Abschluss-Snapshots und Verwendungshistorie; Übersprungenes zählt nicht als gesendet |
|
||||
| Freigaben | widerrufbare, gehashte Lesetokens mit Sendung, Umfang, Passwortoption und Ablaufzeit |
|
||||
| RSS | Feedquellen, Abrufläufe und externe Einträge mit stabiler Herkunfts-ID sowie Status neu/übernommen/verworfen |
|
||||
| API/Audit | technische Berechtigungen, Idempotenzschlüssel und Audit-Ereignisse mit Akteur, Aktion und Ziel |
|
||||
| Betrieb | Anwendungseinstellungen und spätere Job-Zustände, keine Geheimnisse im Klartext ohne begründete Schutzstrategie |
|
||||
| Bereich | Geplante Entitäten und Beziehungen |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Identität | `users`, Rollen, Sessions, Einladungen, Reset-Tokens und Sperren sind umgesetzt; technische Zugänge folgen später |
|
||||
| Taxonomie | getrennte `section_categories`, `formats`, `topics` samt optionalem Themenicon; Pieces und Vorschläge mehrfach verknüpft |
|
||||
| Inhalt | `pieces` mit Status, Soft Delete, Favorit, Revision, Texten, Quellen, Werkzeugen und privaten Medien; Vorlagen speichern Snapshots |
|
||||
| Sendungsbau | `shows`, geordnete `show_sections`, `piece_usages` samt Quellen-/Werkzeug-/Themen-/Mediensnapshots, Reservebank und Vorlagen |
|
||||
| Live | expliziter Live-Stand, aktuelles Element, tatsächliche Piece-Zeiten, persistente Abschnittstimer und getrennte Präsentationsausgabe |
|
||||
| Historie | unveränderliche Abschluss-Snapshots und Verwendungshistorie; Übersprungenes zählt nicht als gesendet |
|
||||
| Freigaben | widerrufbare, gehashte Lesetokens mit Sendung, Umfang, Passwortoption und Ablaufzeit |
|
||||
| RSS | Feedquellen, Abrufläufe und externe Einträge mit stabiler Herkunfts-ID sowie Status neu/übernommen/verworfen |
|
||||
| API/Audit | technische Berechtigungen, Idempotenzschlüssel und Audit-Ereignisse mit Akteur, Aktion und Ziel |
|
||||
| Betrieb | Anwendungseinstellungen und spätere Job-Zustände, keine Geheimnisse im Klartext ohne begründete Schutzstrategie |
|
||||
|
||||
### Historien- und Kopierregel
|
||||
|
||||
@@ -106,7 +106,9 @@ unabhängige Zuordnung. Quellen werden gemeinsam mit einem Piece atomar ersetzt.
|
||||
Historienmarkierung. Der Werkzeugkatalog liegt getrennt von Formaten; Formate
|
||||
sind nur Eignungszuordnungen. `piece_tools` hält pro Piece den privaten
|
||||
Arbeitslink und eine Notiz, während Deaktivierung das Katalogobjekt und alle
|
||||
bestehenden Zuordnungen erhält.
|
||||
bestehenden Zuordnungen erhält. Ein serverseitig validiertes `icon_name` gehört
|
||||
zum Werkzeugkatalog und wird im Originaleditor angezeigt, ohne bestehende
|
||||
Usage-Snapshots nachträglich zu verändern.
|
||||
Ein Piece kann für die Präsentation Text oder genau eine vorhandene Quelle als
|
||||
Linkkarte beziehungsweise Video auswählen. Abgerufene Metadaten und Kennzeichen
|
||||
für manuell korrigierte Felder liegen am Piece; ein erneuter Abruf überschreibt
|
||||
@@ -136,6 +138,15 @@ sind zufällige IDs; Originalnamen werden nie als Pfad verwendet. `/media/[id]`
|
||||
prüft die Anmeldung und liefert private Antworten mit `no-store`, `nosniff`,
|
||||
Same-Origin-Ressourcenrichtlinie und restriktiver CSP aus.
|
||||
|
||||
Ein Piece kann genau eines seiner aktiven Medien ausdrücklich als
|
||||
Präsentationsbild auswählen. Die Auswahl liegt in `piece_presentation_media`;
|
||||
das Entfernen setzt am Medium einen Zeitstempel statt die Datei zu löschen.
|
||||
Damit bleiben bereits erzeugte `usage_media_snapshots` auflösbar, während neue
|
||||
Einplanungen und der Originaleditor nur aktive Medien berücksichtigen. Das
|
||||
Soft Delete eines Pieces setzt ebenfalls nur `deleted_at_utc`: normale Listen
|
||||
und neue Einplanungen schließen es aus, bestehende Verwendungsreferenzen und
|
||||
Snapshots bleiben unverändert erhalten.
|
||||
|
||||
## Sendungsbau
|
||||
|
||||
Etappe 4 bündelt alle Planungsmutationen in `src/lib/server/shows.ts`. Eine
|
||||
@@ -148,8 +159,9 @@ Beim Einplanen werden Titel, Dauer, Einleitung, Recherche, Moderation,
|
||||
Überleitung und der vollständige Präsentationszustand aus dem sendefertigen
|
||||
Piece kopiert. Dazu gehören Modus, ausgewählte Quelladresse samt Zeitmarke,
|
||||
Metadaten und validierte Anbieter-ID. Zusätzlich speichern eigene geordnete
|
||||
Tabellen alle Quellen, Werkzeugnamen samt Start-/Arbeitslink und Notiz sowie die
|
||||
Themennamen. Eigene Notizen liegen ausschließlich an
|
||||
Tabellen alle Quellen, Werkzeugnamen samt Start-/Arbeitslink und Notiz, die
|
||||
Themennamen samt Icon sowie das ausdrücklich ausgewählte Präsentationsmedium.
|
||||
Eigene Notizen liegen ausschließlich an
|
||||
der Verwendung. Die Referenz zum Original bleibt für Historie und
|
||||
Nachvollziehbarkeit erhalten, wird aber nicht live gespiegelt. Eine explizite
|
||||
Aktualisierung aus dem Fundus ersetzt Titel, Dauer, alle fünf Redaktionstexte
|
||||
@@ -271,6 +283,12 @@ Der Live-Modus ist eine eigene, fokussierte Arbeitsansicht. Die
|
||||
Präsentationsausgabe verwendet eine separate, strikt reduzierte Datenansicht
|
||||
ohne interne Anwendungsnavigation.
|
||||
|
||||
Icons werden aus dem lokalen Font-Awesome-Classic-Regular-Sprite unter
|
||||
`static/icons` gerendert. Die Verwaltung lädt zusätzlich die durchsuchbaren
|
||||
Metadaten aller 3.671 Icons, zeigt je Suchergebnis aber höchstens 120 Einträge
|
||||
gleichzeitig. Allgemeine Seiten wie Login oder Navigation laden den Katalog
|
||||
nicht in ihren Client-Chunk.
|
||||
|
||||
Der eigenständige Piece-Editor ordnet denselben Formvertrag als redaktionelles
|
||||
Arbeitsblatt an. Titel, Fundstück, private Recherche sowie Einleitung,
|
||||
Moderationsstichpunkte und Überleitung bilden die primäre Schreibfläche.
|
||||
|
||||
@@ -334,3 +334,29 @@ Eintritt wird eine positive explizite Abschnittsdauer eingefroren. Weitere
|
||||
Pieces desselben Abschnitts nutzen denselben Timer; Abschnittswechsel schließen
|
||||
ihn. So bleiben Reload und Wiederaufnahme persistent, ohne die vorhandene
|
||||
Piece-Zeiterfassung doppelt zu zählen.
|
||||
|
||||
## D-023: Ausdrückliche Medienauswahl und wiederherstellbares Entfernen
|
||||
|
||||
Ein privater Piece-Upload wird nicht allein durch seine Existenz öffentlich.
|
||||
Das Original verweist ausdrücklich auf höchstens ein aktives
|
||||
Präsentationsmedium. Beim Einplanen oder bewussten Aktualisieren wird diese
|
||||
Auswahl mit Medium-ID und Alternativtext an die Verwendung kopiert. Die
|
||||
öffentliche Route akzeptiert nur das Medium des aktuell präsentierten
|
||||
Usage-Snapshots; Originalname, interner Speicherpfad und andere Uploads bleiben
|
||||
außerhalb der Projektion.
|
||||
|
||||
Medien und Pieces werden nicht physisch gelöscht, solange bestehende
|
||||
Sendungsfassungen auf ihre unveränderlichen Snapshots angewiesen sein können.
|
||||
Zeitstempel blenden sie aus aktuellen Arbeitslisten und neuen Einplanungen aus,
|
||||
erhalten aber Referenzen und ermöglichen die Wiederherstellung von Pieces. Eine
|
||||
Verwendung oder ein Abschnitt darf dagegen nur entfernt werden, solange keine
|
||||
betroffene Verwendung jemals live gelaufen ist und weder aktuell noch
|
||||
präsentiert wird.
|
||||
|
||||
Der lokale Iconkatalog enthält die vollständige Classic-Regular-Familie mit
|
||||
3.671 Icons. Ein generierter Metadatenkatalog ermöglicht Suche und serverseitige
|
||||
Validierung, während ein statischer SVG-Sprite über den gemeinsamen
|
||||
`currentColor`-Renderer dargestellt wird. So lädt die Navigation nicht sämtliche
|
||||
Pfaddaten in ihren JavaScript-Chunk. Es gibt weder einen externen Laufzeitabruf
|
||||
noch eine Laufzeitabhängigkeit vom benachbarten Quellverzeichnis; Herkunft und
|
||||
Lizenz stehen in `THIRD_PARTY_NOTICES.md`.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Release Notes
|
||||
|
||||
## 0.5.10 - Editor-Erlebnis
|
||||
|
||||
### Redaktion und Verwaltung
|
||||
|
||||
- Titel von Fundus- und Sendungsfassungen lassen sich direkt und per Tastatur
|
||||
bearbeiten.
|
||||
- Themen und Werkzeuge verwenden gemeinsame kompakte Auswahlflächen.
|
||||
- Der Werkzeugkatalog entspricht der Themenverwaltung: kompakte Glasfläche,
|
||||
Icon, Name, Status und Bearbeitungsaktion statt dauerhaft offener Formulare.
|
||||
- Anlegen und Bearbeiten eines Werkzeugs verwenden denselben responsiven Dialog
|
||||
für Name, Start-URL, Beschreibung, Icon, passende Formate und Aktivstatus.
|
||||
- Die Formatzuordnung nutzt dieselbe durchsuchbare Mehrfachauswahl wie andere
|
||||
Zuordnungen. Deaktivierte Werkzeuge und bestehende Piece-Zuordnungen bleiben
|
||||
erhalten.
|
||||
- Alle 3.671 Icons aus Font Awesome Pro Plus 7.0.0 Classic Regular stehen lokal
|
||||
und durchsuchbar zur Verfügung. Ein lokaler SVG-Sprite hält den allgemeinen
|
||||
Anwendungs-Chunk klein; es gibt keine externe Laufzeitabhängigkeit.
|
||||
|
||||
### Pieces und Präsentation
|
||||
|
||||
- Präsentationsbilder werden ausdrücklich aus aktiven Piece-Medien ausgewählt
|
||||
und unveränderlich an Sendungsfassungen kopiert.
|
||||
- Entfernte Medien bleiben für bestehende Sendungsfassungen verfügbar, werden
|
||||
aber nicht mehr für neue Einplanungen angeboten.
|
||||
- Pieces können wiederherstellbar gelöscht werden. Offene, nie live gelaufene
|
||||
Verwendungen und Abschnitte lassen sich unter geschützten Bedingungen
|
||||
entfernen.
|
||||
- Fundus, Eingang, Archiv, Vorlagen und Sendungsansichten sind kompakter und
|
||||
bleiben per Klick, Touch und Tastatur bedienbar.
|
||||
|
||||
### Live-Ausgabe
|
||||
|
||||
- Eine leere heinzlive-Ausgabe ist vollständig transparent und zeigt weder
|
||||
Renderer noch Verbindungsstatus.
|
||||
- Eine aktive Präsentation lässt sich unabhängig vom aktuell laufenden Piece
|
||||
leeren.
|
||||
|
||||
### Datenbank und Kompatibilität
|
||||
|
||||
- `0010_editor_experience.sql` ergänzt Themenicons, Medien-Snapshots und Soft
|
||||
Delete.
|
||||
- `0011_tool_icons.sql` ergänzt persistente Werkzeugicons mit einem sicheren
|
||||
Standardwert. Werkzeug-IDs, Formatbeziehungen, Piece-Zuordnungen und
|
||||
Deaktivierungszustände bleiben erhalten.
|
||||
|
||||
### Prüfung
|
||||
|
||||
- 40 Unit- und Verhaltenstests sowie 16 Chromium-E2E-Abläufe erfolgreich.
|
||||
- Werkzeugverwaltung, Iconauswahl und Piece-Werkzeugauswahl wurden zusätzlich
|
||||
bei 1280 × 720 und 390 × 844 Pixeln visuell mit der Themenverwaltung
|
||||
verglichen.
|
||||
- Reales OBS, echte YouTube-/TikTok-Wiedergabe und Safari auf einem iOS-Gerät
|
||||
standen nicht zur Verfügung.
|
||||
@@ -7,6 +7,34 @@ Anmeldung, Rollen, persistente Inhaltsbearbeitung, Sendungsplanung,
|
||||
Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert.
|
||||
Etappe 6 wurde nicht begonnen.
|
||||
|
||||
## Editor-Erlebnis 0.5.10
|
||||
|
||||
- direkte, tastaturbedienbare Titelbearbeitung in Fundus- und Sendungsfassungen
|
||||
sowie gemeinsame kompakte Auswahlflächen für Themen und Werkzeuge
|
||||
- vollständiger lokaler Classic-Regular-Katalog mit 3.671 Icons für Navigation,
|
||||
Aktionen sowie frei wählbare Themen- und Werkzeugicons; durchsuchbare
|
||||
Metadaten und SVG-Sprite vermeiden externe Laufzeitabhängigkeiten
|
||||
- kompakter Werkzeugkatalog nach dem Muster der Themenverwaltung; Anlegen und
|
||||
Bearbeiten teilen einen responsiven Dialog mit gestalteter Icon- und
|
||||
Formatauswahl, bestehende Zuordnungen und Deaktivierung bleiben erhalten
|
||||
- Präsentationsbilder werden bewusst aus aktiven Piece-Medien ausgewählt und als
|
||||
unveränderlicher Usage-Snapshot eingeplant; private Bilder werden dadurch
|
||||
weder implizit noch nach späterer Originaländerung öffentlich
|
||||
- entfernte Medien bleiben für bestehende Sendungsfassungen erhalten, während
|
||||
neue Einplanungen nur aktive Medien übernehmen
|
||||
- wiederherstellbares Soft Delete für Pieces sowie geschütztes Entfernen offener,
|
||||
nie live gelaufener Verwendungen und Abschnitte
|
||||
- kompaktere Fundus-, Eingangs-, Archiv-, Vorlagen- und Sendungsansichten mit
|
||||
mobilen, touch- und tastaturbedienbaren Alternativen
|
||||
- transparente leere heinzlive-Ausgabe ohne sichtbaren Renderer oder
|
||||
Verbindungsstatus; die Steuerung kann eine aktive Präsentation unabhängig vom
|
||||
aktuellen Piece leeren
|
||||
|
||||
Etappe 6 bleibt unverändert unbegonnen. Die lokale Prüfmatrix umfasst 40
|
||||
Verhaltenstests und 16 Chromium-Abläufe. Reales OBS, echte
|
||||
YouTube-/TikTok-Wiedergabe sowie Safari auf einem iOS-Gerät bleiben mangels
|
||||
verfügbarer Umgebung offen.
|
||||
|
||||
## Live-Werkbank 0.5.9
|
||||
|
||||
- globale Favoriten am Fundus-Original mit stabiler Vorsortierung; verwendete
|
||||
|
||||
Reference in new issue
Block a user