Aus dem 2. Screenshot-Pass (scripts/ui-screenshot2.js — Modals, Hover,
responsive):
- Command Palette war teilweise hardcoded Deutsch: Input-Placeholder
'Suche Befehl...' + Hint-Zeile 'Up/Down zum Navigieren, Enter zum
Ausfuehren, Esc zum Schliessen'. Im EN-Mode zeigte das trotzdem
Deutsch. Jetzt ueber Locale-Keys (commandPaletteSearchPlaceholder +
commandPaletteHint) verdrahtet — zeigt 'Search command...' /
'Up/Down to navigate, Enter to run, Esc to close' im EN-Mode.
- Command-Hint von 'Tab' auf 'Open' geaendert — 'Tab' las sich wie eine
Tastatur-Taste statt 'oeffnet diesen Tab'.
Verifiziert: Trim-Modal, Merge/Clips/Archive/Stats Tabs, alle 5 Themes,
Light-Theme Inputs — alles sauber. minWidth:1200 -> sub-1200px responsive
ist kein realer Fall.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Hauptfix (User-Report): in der VOD-Grid sass der Trim/Queue-Button bei
Cards mit 1-zeiligem Titel hoeher als bei 2-zeiligen Nachbarn. Ursache:
.vod-card war ein Block, Buttons flossen mit dem Content. Grid streckt
zwar alle Cards einer Reihe gleich hoch, aber der Leerraum landete unten.
Fix: .vod-card = flex column, .vod-actions = margin-top:auto -> Buttons
docken am Boden an. Verifiziert per Playwright ueber xqc (16 Reihen),
papaplatte (6), xrohat (12): maxButtonTopSpread = 0px in allen.
Weitere Funde aus dem Screenshot-Pass (scripts/ui-screenshot.js):
- Globale Basis-Dark-Theme-Regel fuer alle text-Inputs + textarea, damit
bare Inputs ohne .form-group/.form-stack Wrapper nie OS-weiss durchkommen
(#cutterFilePath war weiss im Dark-Theme).
- Cutter-Preview-Placeholder 'Video auswahlen um Vorschau zu sehen' war
hardcoded Deutsch ohne id -> id + Locale-Key + Wiring (zeigt jetzt
'Select a video to see a preview' im EN-Mode).
- Clips-Button '#btnClip' wurde nie lokalisiert (zeigte immer 'Clip
herunterladen') -> setText-Wiring ergaenzt, nutzt existierenden
clips.downloadButton key.
scripts/ui-screenshot.js: neues Harness das die App startet, durch
Tabs/Streamer/Themes navigiert, Screenshots macht + Button-Alignment
programmatisch misst.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two release-pipeline fixes that previously forced manual workarounds.
- scripts/release_gitea.mjs no longer unconditionally runs npm run dist:win.
New --skip-build flag, plus auto-skip when all 3 required artifacts
(Setup-<v>.exe, Setup-<v>.exe.blockmap, latest.yml) already exist for
the requested version. The previous behaviour re-ran the entire test
suite + electron-builder on every release attempt — unusable when the
test path was broken.
- playwright ^1.59.1 added to devDependencies. test:e2e / test:e2e:guide
/ test:e2e:full now invoke node scripts/smoke-test*.js directly instead
of "npm exec --yes --package=playwright -- node ...", which failed with
MODULE_NOT_FOUND when npm exec could not resolve playwright on the fly.
No browser binaries needed — the smoke tests drive Electron via
_electron, not a browser.
All test paths verified after the change: test:e2e, test:e2e:guide,
test:e2e:full, test:merge-split, test:e2e:update-logic — all pass with
the simplified scripts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>