heartmula: auf iris-server-hosts umstellen (Picker mit needs, host_id, Resolver-Route, config-status) #138
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#138
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
Zweites der fünf GPU-Plugins, die auf
iris-server-hostsumgestellt werden (Folge von iris/iris-plugins#115; erstes war Marker, #135; Muster und Marktplatz-Anzeige: iris/Iris#85). HeartMuLa läuft auf einem GPU-Rechner und trägt heute SSH-Ziel (ssh_target) und Schlüssel in seinem 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
GET /hosts/targets(Anforderunggpuim Manifest:host_capabilities: ["gpu"]; HeartMuLa installiert per Skript, nicht per Docker) und speichert nurhost_id. Der Abschnitt heißt „Installieren auf:“ (wie bei Marker): Picker, „Installieren/Aktualisieren“ mit Fortschritt, darunter unter „Optionen“ nur der Installationspfad. Entfallen: „SSH-Schlüssel“, „Anderer Rechner“, „Verbindung testen“. Läuft HeartMuLa dort schon, steht grün „installiert“, nicht ein roter Fehler.heartmula-cli(start,poll,deliver,cleanup) liest keinssh_targetmehr. Es fragt den Server nach der Kennung: neue Resolver-RouteGET /hosts/resolve?host_id=…auf beiden Servern (Linux: Bearer ausiris_notify_config.json, Mac: nur Loopback wie/notify), Antwort{"ssh_target": "benutzer@adresse"}(404 bei unbekannter Kennung). Sie dient auch den anderen GPU-Plugins (whisper, qwen-tts-linux, comfyui-bridge). Ein Plugin-Skript liest nie die Host-Liste selbst.config-statusüber eine kleinepanel_api(python/heartmula_panel_api.py): Grün, wennhost_idgewählt und HeartMuLa dort installiert ist (install_pathgespeichert); Gelb „Rechner wählen“ bzw. „HeartMuLa auf dem Rechner installieren“. Erreichbarkeit prüft er nicht.ssh_targetwird nur im Fenster als Vorauswahl genutzt (Treffer in der Host-Liste); gespeichert wird danachhost_id,ssh_targetverschwindet beim ersten Speichern.Stand
GET /hosts/resolveauf Linux- und Mac-Server — eingereichtheartmula-clilöst die Kennung über den Server auf — eingereichtconfig-status, Manifest — eingereichtVerlauf und PRs in den Kommentaren.
Entwicklung: heartmula 2.2.0 veröffentlicht, Resolver-Route gebaut (noch nicht eingereicht)
Plugin (heartmula 2.2.0, im Marktplatz):
host_capabilities: ["gpu"](keinlocal_mode: ohne GPU-Rechner läuft HeartMuLa nicht),panel_apimitconfig-status.GET /hosts/targets?needs=gpu), „Bitte wählen …“ ohne gespeicherte Wahl, darunter „Installieren“/„Aktualisieren“ mit Fortschritt und „Optionen“ (Installationspfad). Wählt man einen Rechner, prüft das Panel ihn: grün „HeartMuLa ist auf diesem Rechner installiert“ (Knopf „Aktualisieren“) oder „noch nicht installiert“; Rot nur bei einem Fehler. Entfallen: „SSH-Schlüssel“, „Anderer Rechner“, „Verbindung testen“. Gespeichert werden nurhost_id,install_pathundinstalled_on(Kennung des Rechners, auf dem die Installation festgestellt wurde); nach der Installation übernimmt das Panel zuerst den vonheartmula-cligeschriebenen absoluten Pfad und speichert dann von selbst. Ein altesssh_targetdient nur als Vorauswahl.config-status(python/heartmula_panel_api.py, 6 Tests): Grün, wennhost_idgewählt undinstalled_ondieselbe Kennung ist; sonst Gelb („Rechner wählen“ bzw. „Installieren“); kein SSH.store-page.json, SKILL.md und PLAN.md auf „Installieren auf:“/„Hosts“ umgestellt.Laufzeit (
heartmula-cli):start,poll,deliver,cleanuplesen keinssh_targetmehr.resolve_ssh_targetfragt den Iris-Server nach der Kennung; der Weg zum Server (determine_iris_endpoint, aus dem Reporter-Code herausgelöst) ist derselbe wie für die Fortschrittsmeldungen. Gegen einen Mock-HTTPS-Server mit Token geprüft (bekannte Kennung → Ziel, unbekannte und fehlende → leer).Server (neue Resolver-Route
GET /hosts/resolve?host_id=…, ungeshippt): Linux (Bearer, auchcfg_token; 404 bei unbekannter Kennung, nie eine Adresse als Kennung; 3 Live-Tests intests/test_hosts_resolve.py, laufen nach dem Deploy) und Mac (handleHostResolve; nur Loopback ohne Bearer wie/notify). Sie dient auch den anderen GPU-Plugins.Nicht geprüft: das Panel in der App, die Installation auf
iris-server, das Erzeugen eines Liedes (braucht die neu gebaute Mac-App mit der Resolver-Route). Hinweis: Nach dem Update muss die Konfiguration einmal im Fenster gespeichert werden (Rechner wählen), vorher meldet die Laufzeit „noch nicht konfiguriert“ und der Marktplatz zeigt Gelb.Zum Testen: Iris neu bauen (Resolver-Route), HeartMuLa im Marktplatz installieren, Rechner wählen, installieren bzw. „Aktualisieren“, speichern, Knopf in der Kachel prüfen, dann im Chat ein Lied bestellen. Eingereicht wird erst nach Alfs Test.
PR #87 gemergt: feat(hosts): Resolver-Route GET /hosts/resolve für Plugin-Skripte (iris/iris-plugins#138)
iris/Iris#87
Commits:
PR #44 gemergt: feat(hosts): Resolver-Route GET /hosts/resolve für Plugin-Skripte (iris/iris-plugins#138)
iris/iris-linux-server#44
Commits:
PR #139 gemergt: feat(heartmula): auf iris-server-hosts umgestellt, Installieren auf:, config-status, Kennung über den Server auflösen (#138)
#139
Commits:
Eingereicht (2026-10-19, nach Alfs Test)
config-status,heartmula-clilöst die Kennung über den Server auf, Docs und Store-Textemain=e378407GET /hosts/resolve(nur Loopback, ohne Bearer)main=ae5590fGET /hosts/resolve(Bearer) samt 3 Live-TestsVon Alf getestet: Build der Mac-App mit der Resolver-Route (ein Build-Fehler,
isLocalhostHostResolvevor seiner Deklaration verwendet, behoben), HeartMuLa aus dem Marktplatz installiert, Rechner gewählt, installiert, Lied erzeugt — alles wie erwartet.Offen: Linux-Server nicht neu deployt (die Resolver-Route und ihre 3 Live-Tests laufen erst danach; HeartMuLa ist dort nicht installiert). Die übrigen GPU-Plugins (whisper, qwen-tts-linux, comfyui-bridge) und die Plugins ohne
config-statusfolgen in eigenen Issues (iris/Iris#85).PR #82 gemergt: docs(wire): Hosts-Routen GET /hosts/targets und GET /hosts/resolve (iris/iris-plugins#138)
alf/2ndbrain#82
Commits: