whisper: auf iris-server-hosts umstellen (Picker mit needs, host_id, Kennung über den Server, config-status) #140
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/iris-plugins#140
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Warum
Drittes der GPU-Plugins, die auf
iris-server-hostsumgestellt werden (nach Marker #135 und HeartMuLa #138; Muster und Marktplatz-Anzeige: iris/Iris#85, Resolver-Route aus #138). Whisper trägt heute SSH-Ziel (ssh_target) und Schlüssel im Konfigurationsfenster, das Fenster holt/gpu-hosts/targets(404, der Picker bleibt leer), und das Plugin hat keinepanel_api, kann also keinen Zustand für den Marktplatz melden.Spezifikation (wie HeartMuLa)
GET /hosts/targets?needs=gpu(Manifesthost_capabilities: ["gpu"]; keinlocal_mode). Das Plugin speichert nurhost_id,install_pathundinstalled_on. Entfallen: „SSH-Schlüssel“, „Anderer Rechner“, „Verbindung testen“. Läuft faster-whisper dort schon, steht grün „installiert“ und der Knopf heißt „Aktualisieren“; rot nur bei einem Fehler. Ein altesssh_targetdient nur als Vorauswahl./gpu-hosts/targetsnur diese). Nach der Umstellung lässt sich ein reiner CPU-Rechner nicht mehr von Hand eintragen; wer das braucht, trägt ihn unter „Hosts“ ein, und das Manifest müsste die Anforderung lockern.whisper-cli(cleanup,start,poll,deliver) löst die Kennung überGET /hosts/resolveauf (resolve_ssh_target,determine_iris_endpointwie bei HeartMuLa); die Fortschrittsmeldungen desstartbleiben unverändert.config-statusüberpython/whisper_panel_api.py: Grün, wennhost_idgewählt undinstalled_ondieselbe Kennung ist; sonst Gelb. Das Manifest erzeugt das Build-Skript (Heredoc), dort stehenhost_capabilitiesundpanel_api.Stand
whisper-clilöst die Kennung über den Server auf — eingereichtconfig-status, Manifest — eingereichtVerlauf und PRs in den Kommentaren.
Entwicklung: whisper 1.3.0 veröffentlicht (noch nicht eingereicht)
Wie HeartMuLa (#138), die Server-Seite (Resolver-Route
GET /hosts/resolve) ist schon inmainund in Alfs laufender Mac-App.Geändert:
plugin.json):host_capabilities: ["gpu"],panel_apimitconfig-status; Build-Skript kopiertpython/whisper_panel_api.pyins Paket.needs=gpu), „Bitte wählen …“, „Installieren“/„Aktualisieren“, Rechnerprüfung (grün „installiert“, Rot nur bei Fehler), Optionen (Installationspfad). Entfallen: „SSH-Schlüssel“, „Anderer Rechner“, „Verbindung testen“. Gespeichert wirdhost_id,install_path,installed_on; nach der Installation übernimmt das Panel den absoluten Pfad und speichert von selbst.whisper-cli:cleanup,start,poll,deliverlösen die Kennung über den Server auf (resolve_ssh_target,determine_iris_endpoint,read_iris_notify_config_valueaus HeartMuLa übernommen); gegen einen Mock-HTTPS-Server mit Token geprüft (bekannt → Ziel, unbekannt → leer). Die Fortschrittsmeldungen desstarthabe ich nicht angefasst.config-status(python/whisper_panel_api.py, 6 Tests; sie lesen das vom Build-Skript erzeugte Manifest): Grün, wennhost_idgewählt undinstalled_ondieselbe Kennung ist; sonst Gelb; kein SSH.store-page.json, SKILL.md und PLAN.md auf „Installieren auf:“/„Hosts“.Entscheidung zur Anforderung:
gpubleibt (der bisherige Picker listete nur GPU-Rechner). Ein reiner CPU-Rechner ist nach der Umstellung nicht mehr von Hand eintragbar; wenn das gebraucht wird, lockere ich die Anforderung im Manifest.Nicht geprüft: das Panel in der App, die Installation von faster-whisper auf
iris-server, eine Transkription. Nach dem Update muss die Konfiguration einmal im Fenster gespeichert werden.Zum Testen: Whisper im Marktplatz installieren oder aktualisieren, Rechner wählen, „Installieren“/„Aktualisieren“, Knopf in der Kachel prüfen, dann im Chat eine Audiodatei transkribieren lassen. Eingereicht wird erst nach Alfs Test.
PR #80 gemergt: fix(videowatch): Whisper-Plugin-Rechner über die Host-Kennung vom Iris-Server auflösen (iris/iris-plugins#140)
alf/2ndbrain#80
Commits:
PR #45 gemergt: fix(videowatch): Whisper-Plugin-Rechner über die Host-Kennung auflösen, Kopie der Skill-Dateien (iris/iris-plugins#140)
iris/iris-linux-server#45
Commits:
Lokaler Weg auf dem Mac: whisper 1.4.0 veröffentlicht (noch nicht eingereicht)
Anlass: Alf wies darauf hin, dass es Whisper doch auch als GPU-Version für den Mac gibt. Das lief bisher nur in videowatch (
mlx-whisper, Apple-GPU), nicht im Plugin, das nur per SSH auf einem NVIDIA-Rechner arbeitete.Gebaut:
local_mode: ["macos"](nebenhost_capabilities: ["gpu"]): Auf dem Mac-Server steht „Dieser Iris-Server — lokal (Apple-GPU)“ im Picker, die Installations-Sperre blockiert dort nie. Auf dem Linux-Server bleibt alles beim GPU-Rechner.whisper-cli: Das Ziellocalführt dieselben Befehle ohne SSH lokal aus (ssh()erkenntlocal,ssh -f localstartet losgelöst im Hintergrund; Befehlszeichenfolge, Dateinamen und Marker bleiben gleich).resolve_ssh_targetliefert fürselfauf macOSlocal, ohne den Server zu fragen.installlegt auf macOSmlx-whisperstatt faster-whisper ins venv;test-connectionerkennt beide Pakete.whisper_transcribe.py: Backend nachsys.platform(segments_with_mlxauf macOS,segments_with_faster_whispersonst; beide Pakete lazy importiert); Modellnamenlarge-v3→mlx-community/whisper-large-v3-mlx,…-turbo→…-turbo, Namen mit/bleiben; Ausgabeformatetext/jsonunverändert; auf Linux läuft das CUDA-Re-Exec wie bisher.IrisRemoteServer.swift, ungeshippt): Die bespoke Whisper-Routen (test-connection,install) übergeben fürhost_idselfdas Ziellocalstatt des SSH-Ziels.selfauf dem Mac (eigene mlx-whisper-Stufe), Test dazu; Kopie im Linux-Server angepasst (ungeshippt).Geprüft (echter Lauf auf diesem Mac):
installins temporäre venv (mlx-whisper, torch, …),test-connectionvorher „noch nicht installiert“, danach „installiert“, Transkription mit Modelltinyund einem mitsayerzeugten deutschen Satz auf der Apple-GPU („Hallo, das ist ein Test der Lokalen Transcription auf der Apple GPU.“),poll(STATUS: done),deliver(Datei und Vorschau),cleanup, Hintergrundstart (ssh -f local). 11 Tests im Plugin, 21 in videowatch, JavaScript pernode --check.Nicht geprüft: das Panel in der App, das Modell
large-v3(große Datei), der Chat-Ablaufstartmit Fortschrittsmeldung (ich wollte keine Meldungen in deinen Chat schicken).Hinweis zum Ablauf: Gibt es beim „Laden“ auf dem Mac einen GPU-Rechner, öffnet sich das Konfigurationsfenster (Wahl zwischen Rechner und „lokal“). Gibt es keinen, ist Whisper installiert, aber noch nicht eingerichtet: Gelb, bis im Fenster „lokal“ gewählt und „Installieren“ gedrückt ist (Whisper hat keinen Installations-Hook wie Marker).
Zum Testen: Iris neu bauen (Mac-Server-Änderung), Whisper im Marktplatz aktualisieren, im Konfigurationsfenster „Dieser Iris-Server — lokal (Apple-GPU)“ wählen, „Installieren“, speichern, dann im Chat eine Audiodatei transkribieren lassen. Eingereicht wird erst nach Alfs Test.
whisper 1.4.1: Prüfung nach der Installation läuft nicht mehr in die Zeitgrenze (veröffentlicht)
Befund (Alfs Screenshot, Mac Studio): Nach „Installieren“ stand grün „Installiert“, darunter rot „Verbindung fehlgeschlagen“; in der Konfiguration blieb
installed_onleer, der Zustand im Marktplatz also Gelb. Die Installation selbst war gelungen (~/Whisper/.venvundtranscribe.pyliegen dort). Ursache: Direkt danach prüft das Panel pertest-connection, ob Whisper installiert ist, und die Prüfung importiertemlx_whisper. Der erste Import nach der Installation (mlx, torch, Bytecode wird erst dann erzeugt) dauert über 15 Sekunden; der Mac-Server brichttest-connectionnach 15 Sekunden ab und meldet dann die allgemeine Meldung „Verbindung fehlgeschlagen“. Später gemessen: erster Import 6,9 s, danach 0,75 s.Fix:
whisper-cli test-connectionprüft nur noch perfind_spec, obfaster_whisperodermlx_whisperim venv liegt (0,03 s statt Sekunden; gilt auch für SSH-Rechner, wo der CUDA-Import ebenfalls langsam sein kann). Geprüft mit der echten Installation (~/Whisper: „installiert“) und einem nicht vorhandenen Pfad („noch nicht installiert“).Offen: Die allgemeine Meldung „Verbindung fehlgeschlagen“ bei einer Zeitüberschreitung ist irreführend (Mac-Server,
handleWhisperTestConnection); ein klarerer Text steht aus.Zum Testen: Whisper im Marktplatz auf 1.4.1 aktualisieren, das Konfigurationsfenster öffnen: Es sollte grün „Whisper ist lokal auf diesem Mac (Apple-GPU) installiert“ zeigen; „Speichern“ setzt
installed_on, die Kachel wird grün. Danach eine Audiodatei im Chat transkribieren lassen.PR #88 gemergt: feat(whisper): lokales Ziel für Whisper auf dem Mac, klare Zeitüberschreitung bei den CLI-Aktionen (iris/iris-plugins#140)
iris/Iris#88
Commits:
PR #141 gemergt: feat(whisper): auf iris-server-hosts umgestellt, lokaler Weg auf dem Mac (Apple-GPU, mlx-whisper), config-status (#140)
#141
Commits:
PR #81 gemergt: fix(videowatch): Whisper-Plugin lokal auf dem Mac der eigenen mlx-Stufe überlassen (iris/iris-plugins#140)
alf/2ndbrain#81
Commits:
PR #46 gemergt: fix(videowatch): Whisper-Plugin lokal auf dem Mac der eigenen mlx-Stufe überlassen, Kopie der Skill-Dateien (iris/iris-plugins#140)
iris/iris-linux-server#46
Commits:
Eingereicht (2026-10-19)
config-status,whisper-clilöst die Kennung über den Server auf, lokaler Weg auf dem Mac (Apple-GPU, mlx-whisper), Prüfung ohne Importmain=a6cac51selfdas Ziellocal; klare Meldung bei Zeitüberschreitung (Whisper, HeartMuLa, Qwen-TTS-Linux)main=7d73d4dmain=9f2d2afNach Alfs Test (Mac neu gebaut): Update auf 1.4.1, Konfigurationsfenster, lokale Installation und Transkription.
Offen: Der Linux-Server ist nicht neu deployt (die geänderte videowatch-Kopie wirkt dort erst danach). Die beiden Plugins qwen-tts-linux und comfyui-bridge folgen in eigenen Issues; die Plugins ohne
config-statusbleiben Rot (iris/Iris#85). Das Issue bleibt offen.Linux-Server deployt (2026-10-19)
rsync(ohne.env),detect-host-env.sh,docker compose up -d --build, Sandbox-Container bereinigt;GET /health200.Live geprüft:
GET /hosts/resolve?host_id=self→ 200{"ssh_target": "alf@192.168.178.153"}, unbekannte Kennung → 404;GET /hosts/targets?needs=gpu&needs=docker→selfmit beiden Grafikkarten; die 3 Live-Tests der Resolver-Route (tests/test_hosts_resolve.py) und dieconfig_status-Tests grün (10 passed). Die geänderten videowatch-Dateien (Auflösung über/hosts/resolve) liegen imiris-hermes-Container (/root/.hermes/skills/videowatch,/opt/iris-custom-skills/videowatch).Nicht geprüft: ein videowatch-Lauf mit dem Whisper-Plugin auf dem Linux-Server (dort ist Whisper nicht in der neuen Fassung installiert).