Release 0.5.11

This commit is contained in:
hnzio committed 2026-10-23 23:43:05 +02:00
1 parent 4fe61971e4
commit c05cea3a6d
7 files changed
+95 -13

No files matched your search

+18
View File
@@ -412,3 +412,21 @@
- `bash -n start.sh`: erfolgreich - `bash -n start.sh`: erfolgreich
- reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem - reale OBS-Browserquelle, echte YouTube-/TikTok-Wiedergabe und Safari auf einem
iOS-Gerät nicht ausgeführt; Anbieterrequests wurden lokal abgefangen 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 |
## Ausgeführte Prüfungen 0.5.11
- gezielter Chromium-Test des Werkzeugablaufs: 1 von 1 erfolgreich
- `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
- `npm run build`: erfolgreich mit `@sveltejs/adapter-node`
- `bash -n start.sh` und `git diff --check`: erfolgreich
+55 -9
View File
@@ -1,12 +1,46 @@
# Release Notes # Release Notes
## 0.5.11 - Verwaltungskorrektur
Veröffentlicht am 23. Oktober 2026
- Der Dialog „Werkzeug hinzufügen“ bleibt beim Aufruf der Verwaltungsseite
wieder zuverlässig geschlossen.
- Der Dialog erscheint erst, wenn ein neues Werkzeug angelegt oder ein
bestehendes Werkzeug bearbeitet wird.
- Die Korrektur gilt gleichermaßen für Desktop- und Smartphone-Ansichten und
verändert keine vorhandenen Werkzeuge oder Zuordnungen.
## 0.5.10 - Editor-Erlebnis ## 0.5.10 - Editor-Erlebnis
Veröffentlicht am 23. Oktober 2026
Sendewerk 0.5.10 beschleunigt die tägliche Redaktionsarbeit und schärft die
Grenze zwischen privaten Medien und der öffentlichen Präsentation. Titel,
Themen, Werkzeuge und Präsentationsbilder lassen sich direkter bearbeiten; die
wichtigsten Listen und Dialoge benötigen auf Desktop und Smartphone weniger
Platz. Bestehende Sendungsfassungen bleiben bei späteren Änderungen am Fundus
stabil.
### Highlights
- Titel von Fundus- und Sendungsfassungen lassen sich direkt in der jeweiligen
Ansicht ändern. Die Bedienung funktioniert auch vollständig per Tastatur.
- Themen und Werkzeuge verwenden kompakte, durchsuchbare Auswahlflächen. Der
Werkzeugkatalog folgt nun demselben Bedienmuster wie die Themenverwaltung.
- Für Themen, Werkzeuge, Navigation und Aktionen stehen 3.671 lokal
bereitgestellte Classic-Regular-Icons zur Verfügung. Zur Laufzeit werden
keine Icons von externen Diensten geladen.
- Präsentationsbilder werden bewusst aus den aktiven Piece-Medien gewählt und
beim Einplanen in die Sendungsfassung übernommen. Private Uploads werden nicht
allein durch das Hochladen öffentlich.
- Pieces lassen sich wiederherstellbar löschen. Bereits vorbereitete
Sendungsfassungen und ihre Medien-Snapshots bleiben dabei erhalten.
- Die heinzlive-Ausgabe kann ausdrücklich geleert werden. Im leeren Zustand ist
sie vollständig transparent und zeigt auch keinen Verbindungsstatus.
### Redaktion und Verwaltung ### 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, - Der Werkzeugkatalog entspricht der Themenverwaltung: kompakte Glasfläche,
Icon, Name, Status und Bearbeitungsaktion statt dauerhaft offener Formulare. Icon, Name, Status und Bearbeitungsaktion statt dauerhaft offener Formulare.
- Anlegen und Bearbeiten eines Werkzeugs verwenden denselben responsiven Dialog - Anlegen und Bearbeiten eines Werkzeugs verwenden denselben responsiven Dialog
@@ -14,9 +48,8 @@
- Die Formatzuordnung nutzt dieselbe durchsuchbare Mehrfachauswahl wie andere - Die Formatzuordnung nutzt dieselbe durchsuchbare Mehrfachauswahl wie andere
Zuordnungen. Deaktivierte Werkzeuge und bestehende Piece-Zuordnungen bleiben Zuordnungen. Deaktivierte Werkzeuge und bestehende Piece-Zuordnungen bleiben
erhalten. erhalten.
- Alle 3.671 Icons aus Font Awesome Pro Plus 7.0.0 Classic Regular stehen lokal - Fundus, Eingang, Archiv, Vorlagen und Sendungsansichten sind kompakter und
und durchsuchbar zur Verfügung. Ein lokaler SVG-Sprite hält den allgemeinen bleiben per Klick, Touch und Tastatur bedienbar.
Anwendungs-Chunk klein; es gibt keine externe Laufzeitabhängigkeit.
### Pieces und Präsentation ### Pieces und Präsentation
@@ -27,8 +60,10 @@
- Pieces können wiederherstellbar gelöscht werden. Offene, nie live gelaufene - Pieces können wiederherstellbar gelöscht werden. Offene, nie live gelaufene
Verwendungen und Abschnitte lassen sich unter geschützten Bedingungen Verwendungen und Abschnitte lassen sich unter geschützten Bedingungen
entfernen. entfernen.
- Fundus, Eingang, Archiv, Vorlagen und Sendungsansichten sind kompakter und - Themenicons werden zusammen mit der jeweiligen Sendungsfassung gespeichert.
bleiben per Klick, Touch und Tastatur bedienbar. Spätere Änderungen an Thema, Werkzeug oder Original-Piece verändern eine
vorbereitete Sendung weiterhin nur nach ausdrücklicher Aktualisierung aus dem
Fundus.
### Live-Ausgabe ### Live-Ausgabe
@@ -37,13 +72,18 @@
- Eine aktive Präsentation lässt sich unabhängig vom aktuell laufenden Piece - Eine aktive Präsentation lässt sich unabhängig vom aktuell laufenden Piece
leeren. leeren.
### Datenbank und Kompatibilität ### Update und Kompatibilität
- `0010_editor_experience.sql` ergänzt Themenicons, Medien-Snapshots und Soft - `0010_editor_experience.sql` ergänzt Themenicons, Medien-Snapshots und Soft
Delete. Delete.
- `0011_tool_icons.sql` ergänzt persistente Werkzeugicons mit einem sicheren - `0011_tool_icons.sql` ergänzt persistente Werkzeugicons mit einem sicheren
Standardwert. Werkzeug-IDs, Formatbeziehungen, Piece-Zuordnungen und Standardwert. Werkzeug-IDs, Formatbeziehungen, Piece-Zuordnungen und
Deaktivierungszustände bleiben erhalten. Deaktivierungszustände bleiben erhalten.
- Die Migrationen laufen beim nächsten Serverstart automatisch. Vor dem Update
sollte wie üblich eine konsistente Sicherung der SQLite-Datenbank und des
Upload-Verzeichnisses angelegt werden.
- Für dieses Release sind keine manuellen Datenkonvertierungen und keine
Änderungen an der Konfiguration erforderlich.
### Prüfung ### Prüfung
@@ -53,3 +93,9 @@
verglichen. verglichen.
- Reales OBS, echte YouTube-/TikTok-Wiedergabe und Safari auf einem iOS-Gerät - Reales OBS, echte YouTube-/TikTok-Wiedergabe und Safari auf einem iOS-Gerät
standen nicht zur Verfügung. standen nicht zur Verfügung.
### Noch nicht enthalten
Der Abschluss und die Archivierung vollständiger Sendungen, externe
Lesefreigaben, RSS-Import und API gehören zu späteren Etappen und sind nicht Teil
von 0.5.10.
+9
View File
@@ -7,6 +7,15 @@ Anmeldung, Rollen, persistente Inhaltsbearbeitung, Sendungsplanung,
Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert. Live-Steuerung, Präsentationsausgabe und lokaler Betriebsweg sind dokumentiert.
Etappe 6 wurde nicht begonnen. Etappe 6 wurde nicht begonnen.
## Verwaltungskorrektur 0.5.11
- der Werkzeugdialog bleibt nach dem Laden der Verwaltungsseite geschlossen und
wird erst durch „Werkzeug hinzufügen“ oder die Bearbeitung eines vorhandenen
Werkzeugs als modaler Dialog eingeblendet
- ein Browser-Regressionscheck sichert den geschlossenen Ausgangszustand ab
Etappe 6 bleibt unverändert unbegonnen.
## Editor-Erlebnis 0.5.10 ## Editor-Erlebnis 0.5.10
- direkte, tastaturbedienbare Titelbearbeitung in Fundus- und Sendungsfassungen - direkte, tastaturbedienbare Titelbearbeitung in Fundus- und Sendungsfassungen
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "sendewerk", "name": "sendewerk",
"version": "0.5.10", "version": "0.5.11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "sendewerk", "name": "sendewerk",
"version": "0.5.10", "version": "0.5.11",
"dependencies": { "dependencies": {
"@node-rs/argon2": "^2.2.2", "@node-rs/argon2": "^2.2.2",
"better-sqlite3": "^13.0.3", "better-sqlite3": "^13.0.3",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "sendewerk", "name": "sendewerk",
"private": true, "private": true,
"version": "0.5.10", "version": "0.5.11",
"type": "module", "type": "module",
"engines": { "engines": {
"node": ">=22.17 <25" "node": ">=22.17 <25"
+5 -1
View File
@@ -5859,7 +5859,7 @@ body:has(.heinzlive-output.empty),
} }
.management-dialog { .management-dialog {
display: grid; display: none;
grid-template-rows: auto minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr);
width: min(40rem, calc(100vw - 2rem)); width: min(40rem, calc(100vw - 2rem));
max-height: min(46rem, calc(100dvh - 2rem)); max-height: min(46rem, calc(100dvh - 2rem));
@@ -5873,6 +5873,10 @@ body:has(.heinzlive-output.empty),
backdrop-filter: blur(24px) saturate(1.12); backdrop-filter: blur(24px) saturate(1.12);
} }
.management-dialog[open] {
display: grid;
}
.management-dialog::backdrop { .management-dialog::backdrop {
background: rgb(3 8 18 / 46%); background: rgb(3 8 18 / 46%);
backdrop-filter: blur(6px); backdrop-filter: blur(6px);
+5
View File
@@ -895,6 +895,11 @@ test('inbox, archive and administration stay concise', async ({ page }) => {
test('tools stay editable in pieces after catalog deactivation', async ({ page }, testInfo) => { test('tools stay editable in pieces after catalog deactivation', async ({ page }, testInfo) => {
await page.goto('/verwaltung'); await page.goto('/verwaltung');
for (const width of [390, 1280]) {
await page.setViewportSize({ width, height: 900 });
await expect(page.locator('.tool-editor-dialog')).toBeHidden();
await expectNoHorizontalOverflow(page);
}
await page.getByRole('button', { name: 'Werkzeug hinzufügen' }).click(); await page.getByRole('button', { name: 'Werkzeug hinzufügen' }).click();
const create = page.getByRole('dialog', { name: 'Neues Werkzeug' }); const create = page.getByRole('dialog', { name: 'Neues Werkzeug' });
await create.getByLabel('Name').fill('E2E Tierlist'); await create.getByLabel('Name').fill('E2E Tierlist');