Zwei Fehler, beide in scripts/install.ps1:
1. Die Hilfsfunktion Ruf gab die Programmausgabe mit zurueck. `return
$LASTEXITCODE` nach `& $Datei` liefert ein Array aus allen Ausgabe-
zeilen plus Exit-Code - jeder Vergleich damit ist falsch. Deshalb galt
ein erfolgreiches fetch-model als fehlgeschlagen und die check-env-
Ausgabe verschwand. Jetzt ueber Out-Host.
2. Die Bereitschaftspruefung fragte http://localhost:4792/health ab. Der
Daemon lauscht nur auf IPv4, Windows loest localhost aber zuerst nach
::1 auf: gemessen 2066 ms bis zum Rueckfall gegenueber 15 ms direkt.
Bei einem Zeitlimit von 2 s lief die Pruefung jedes Mal ab, obwohl der
Daemon laengst lief. Jetzt 127.0.0.1.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
Die Aufgabe scheiterte mit Code 1, abdulive.log gab es gar nicht. Ursache:
& $node $main ingest 2>&1 | ForEach-Object { ... }
Windows PowerShell 5.1 verpackt jede stderr-Zeile eines nativen Programms
in einen ErrorRecord. Zusammen mit $ErrorActionPreference = Stop beendet
das sofort das ganze Skript - und der Daemon schreibt im Normalbetrieb
Warnungen auf stderr ("Kein Broadcaster-Token ..."). Er starb also an
seiner eigenen ersten Meldung, bevor irgendetwas ins Protokoll kam.
- launcher.ps1 startet jetzt ueber Start-Process mit getrennten
Umleitungen fuer stdout und stderr, je Lauf rotiert
- install.ps1 ruft native Programme ueber eine Hilfsfunktion auf, die
ErrorActionPreference kurz zurueckstellt
- NODE_OPTIONS=--disable-warning=ExperimentalWarning fehlte im Paket; im
Container stand es in der Dockerfile
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
Vorher endete die Installation mit drei Befehlen zum Abtippen. Es gibt
keinen Grund dafuer - der Installer laedt jetzt das Sprachmodell, laeuft
den Selbsttest, startet den Daemon, wartet auf /health und oeffnet die
Einrichtungsseite.
Ein fehlgeschlagener Modell-Download bricht nichts ab: das Toolkit laeuft
auch ohne, es entstehen dann Clips ohne Untertitel. Schalter -OhneModell
und -KeinBrowser fuer den Fall, dass man das nicht will.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
Die Vorgabe fuer -Quelle zeigt jetzt auf die gepruefte Veroeffentlichung.
Damit reicht ein Befehl:
irm .../scripts/install.ps1 | iex
Die Pruefung auf HTML statt JSON bleibt drin - sie war der Grund, warum
der erste Versuch als PowerShell-Syntaxfehler endete statt als Fehlermeldung.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ
Docker faellt weg. Das Projekt hat keine npm-Abhaengigkeiten und Node fuehrt
TypeScript direkt aus - der Container schrieb nur noch drei Programme fest,
und dafuer braucht es keine Virtualisierung, sondern einen Ordner.
Der Anlass war, dass ADR-0004 zwar `docker compose pull` versprach, es aber
nie ein veroeffentlichtes Image gab. Wer installieren wollte, musste
whisper.cpp aus dem Quelltext uebersetzen.
Plattformschicht (packages/core/src/platform.ts):
- Programme werden neben der Anwendung gesucht, nicht im PATH
- Daten unter %LOCALAPPDATA%, damit Installation und Update ohne
Administratorrechte auskommen
- Schriften mitgeliefert: ohne fontsdir setzt libass wortlos eine
Ersatzschrift ein - gemessen 720 statt 826 Pixel Zeilenbreite
Windows-Eigenheiten, an echtem ffmpeg 8.1 durchprobiert:
- Pfade im Filtergraphen brauchen alle drei Schritte (Vorwaertsschraegstriche,
escapter Doppelpunkt, Anfuehrungszeichen); je zwei davon reichen nicht
- `nice` gibt es nicht, ersetzt durch os.setPriority
Auslieferung:
- scripts/build-package.ts baut das Paket, laeuft auch unter Linux
- install.ps1 ohne Administratorrechte, Autostart ueber den Aufgabenplaner
- update legt neue Fassungen bereit; eingespielt wird beim naechsten Start,
nie mitten im Stream
- ZIP lesen und schreiben ohne Abhaengigkeiten (packages/core/src/zip.ts)
Kein `irm ... | iex`-Einzeiler: git.zeasy.dev antwortete instanzweit mit einer
Umleitung auf /user/login, und `iex` fuehrte die Anmeldeseite als PowerShell
aus. Der Updater verfolgt Umleitungen jetzt nicht und hat keine erfundene
Vorgabeadresse mehr.
Ausserdem: backup.ps1 war an zwei Stellen dokumentiert, aber nie geschrieben.
ADR-0007 ersetzt ADR-0004. 84 Tests, Typpruefung sauber.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhVSfMFdWnXKCv5JfLnArZ