comfyui-workflows 3.3.0: Starter für die Workflow-Verwaltung — autonomer Block ohne Modell-Lauf (iris/Iris#149) #248
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#248
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?
Ziel
Das erste veröffentlichte Plugin, das die autonomen Web-Blöcke (iris/Iris#149) wirklich nutzt: Die Verwaltungs-GUI von comfyui-workflows lässt sich per Starter direkt in den Chat legen — ohne Chat-Modell, ohne
show_canvas-Umweg — und der Block bleibt bedienbar, auch wenn später neue Canvas im Chat erscheinen.Warum
Der Block
comfyui_workflow_managerexistiert seit 3.0.0, aber ihn zu öffnen kostet bisher einen Modell-Lauf (Flow 8 im Skill: der Nutzer muss etwas sagen, Hermes zeigt den Canvas). Mitlaunchersim Manifest erscheint der Starter auf der Plugin-Karte und in der Chat-Leiste; ein Klick führt die Aktionoeffnenaus und hängt den Block ohne Lauf an.Zu tun
actions/oeffnen.py(neuer Ordneractions/— das Skript-Paket umfasst den ganzen Skript-Ordner, inscripts/würde die 79-KB-Registry mit in den Client-Cache wandern): gibt{"block": {"type": "comfyui_workflow_manager", …}}zurück, nur Standardbibliothek.actions_api: 1,autonomous_block_types: ["comfyui_workflow_manager"],actions.oeffnen,launchers(idworkflow-manager),changelog-Feld, Version 3.3.0.store/changelog.mdneuer Abschnitt,store-page.json(Starter als Feature/Beispiel),docs/erste-schritte.md.PLAN.mdund Daily Log.Grenzen
/plugins/comfyui-workflows/registry/..., fetch + cfg_token) bleiben, wie sie sind: Die Workflow-Bibliothek liegt auf dem Server, der Block funktioniert bewusst auch im IrisClient gegen einen entfernten Server —irisCall-Aktionen würden auf dem Client-Gerät gegen dessen eigene, leere Bibliothek laufen. KeinirisSaveState(der Bridge-Script steckt inCanvasWorkflowManagerBlockView/PinnedWebViewbisher nicht)./plugins/<id>/actions,launchersin der Plugin-Liste). Auf dem Mac (lokaler Server) läuft er ab Iris 2.0.1.autonomous_block_typesnicht mehr von neueren Canvas abgelöst und bekommt nie einen „Absenden“-Knopf (war er überselfContainedPluginBlockTypesschon vorher nicht).Abnahme
publish-plugins.sh-Prüfung (Manifest-Validierung, Datenschutz-Scan) besteht; Veröffentlichung über--dry-rundann real.PR #249 gemergt: feat(comfyui-workflows): Starter für die Workflow-Verwaltung — autonomer Block ohne Modell-Lauf (0.3.0→3.3.0, iris/Iris#149) (#248)
#249
Commits:
Stand — comfyui-workflows 3.3.0: Starter für die Workflow-Verwaltung (iris/Iris#149)
Befund
Der Block
comfyui_workflow_managerexistiert seit 3.0.0, aber ihn zu öffnen kostet einenModell-Lauf: Flow 8 im Skill — der Nutzer muss etwas sagen, Hermes zeigt den Canvas. Mit
launchersim Manifest erscheint ein Starter auf der Plugin-Karte und im Menu „Plugin-Block“der Chat-Leiste; ein Klick führt die Aktion
oeffnenaus und hängt den Block ohne Lauf an.Geändert
actions/aktionen.py(neu): die deklarierte Aktionoeffnen— stdin-Kontrakt wie imTest-Plugin iris-starter-test, nur Standardbibliothek, gibt
{"block": {"type": "comfyui_workflow_manager", "title": "ComfyUI-Workflows verwalten"}}zurück. Bewusst ein eigener Ordner:
PluginActionsCore.collectFilesnimmt den ganzenOrdner jedes Skripts ins Skript-Paket — in
scripts/wäre die 79 KBworkflow_registry.pyunnötig in den Client-Cache gewandert.
plugin.json:actions_api: 1,autonomous_block_types: ["comfyui_workflow_manager"],runtime.python >=3.11,actions.oeffnen(timeout 30,beschreibungfür Zustimmungs- undInstallationsdialog),
launchers(idworkflow-manager, iconrectangle.3.group),changelog-Feld,iris_min_version2.0.0 → 2.0.1 (Starter und autonome Typen gibt eserst ab dieser App), Version 3.3.0.
build-irisplugin.sh: Kopierschrittactions/.store/changelog.mdAbschnitt 3.3.0,store-page.json(Feature „Verwaltungper Klick“, Glyph
window) und neu generiertesstore/hero.html, neuer Abschnitt„Die Verwaltungs-Oberfläche“ in
docs/erste-schritte.md.PLAN.md: Changelog-Zeile 2026-10-24, fehlende „Lessons Learned“-Überschrift ergänzt undzwei neue Lessons (Skript-Paket folgt dem Ordner; Starter und fetch-Routen sind verschiedene
Ebenen).
Bewusst nicht geändert:
web/canvas-block.htmlund die fetch-Registry-Routen(
/plugins/comfyui-workflows/registry/..., cfg_token) bleiben. Die Bibliothek liegt beimverbundenen Server —
irisCall-Aktionen liefen auf dem Client-Gerät gegen dessen eigene, leereBibliothek und würden den IrisClient-gegen-Linux-Server-Fall brechen. Kein
irisSaveState: derBridge-Script wird in
CanvasWorkflowManagerBlockView/PinnedWebViewbisher nicht eingespielt(nur in
CanvasPluginWebBlockView).Geprüft
registry-tools/plugin_actions.py(dieselben Regeln wiePluginActionsCore):keine Fehler;
script-Pfad sicher.actions/aktionen.pylokal mit echtem stdin/stdout: gültiger Aufruf →{"ok": true, "result": {"block": …}}, kaputtes stdin →{"ok": false, "error": {"code": "eingabe", …}}, Exit 0.build-irisplugin.sh):actions/aktionen.pyim Paket,plugin.jsonmit allenneuen Feldern.
privacy_scan.scan_all) über Manifest, Paket,store/unddocs/: keineFunde.
publish-plugins.sh comfyui-workflows --dry-run: „3.3.0: aktualisiert“.Nicht geprüft
Block in einem Chat, kein Zustimmungsdialog, kein „Block bleibt nach zehn weiteren Canvas
bedienbar“. Erster echter Test folgt mit der Installation von 3.3.0 in Iris 2.0.1.
die Prüfung läuft über die Publish-Pipeline).
Grenzen / offen
iris-linux-server#91
GET /plugins/<id>/actions,GET /plugins/<id>/fileundlaunchersinder
plugins-Liste nicht nachzieht. Auf dem Mac (lokaler Server) läuft er ab Iris 2.0.1.CanvasWorkflowManagerBlockView(fetch-Proxy), nicht der generische
CanvasPluginWebBlockView;irisCall/irisSaveStatestehen der Seite dort nicht zur Verfügung — für den Starter unerheblich, der Weg läuft über
PluginActionsService.launch.iris_min_version2.0.1: ältere Iris-Versionen zeigen das Plugin im Marktplatz nicht mehr alsinstallierbar.
PR #257 gemergt: feat(comfyui-workflows): 3.4.0 — Plugin-Reiter mit gemeinsamer Workflow-Auswahl, select/selection + panel_api (#248)
#257
Commits:
Befund: Der Plugin-Reiter (iris/Iris#169) hatte mit iris-solidcraft 0.2.0 seinen ersten Fall; comfyui-workflows war der zweite, vom Nutzer gewünschte. Die Verwaltungs-GUI war dafür unerwartet billig wiederverwendbar:
web/canvas-block.htmlredet schon seit 3.0.0 ausschließlich übercfg_token+ Registry-Routen — keinirisCall, keinpostMessage. Der Reiter-Vertrag (panel_api) war erfüllt, bevor es ihn gab.Geändert (3.3.0 → 3.4.0):
plugin.json:side_panel: "web/canvas-block.html"(dieselbe Datei wieweb_view_path, kein zweiter Stand) +panel_api(config-status/status/select, Timeout 30 s).scripts/workflow_registry.py: neuselect --slug(leerer Slug hebt auf) undselection. Auswahl liegt inselection.jsonnebenregistry.json— Bedienzustand, kein Bibliotheksinhalt; überlebtregister, undremoveräumt sie mit, wenn der Entfernte der Ausgewählte war.scripts/panel_api.py(neu): delegiert alles anworkflow_registry.py, keine eigene Registry-Logik.status→chat_id(Quittung, kein Zugriffsnachweis: Bibliothek ist instanz-global) +summary(eine Zeile, Auswahl vorn) +detail(Bibliothek + Auswahl).selectantwortet wiestatus, damit der Reiter ohne zweite Runde umzeichnet.web/canvas-block.html: mitchat_idin der URL ist sie der Reiter — Klick setzt die gemeinsame Auswahl (bewusst kein eigener Knopf: zwei Wege für eine Absicht), Abzeichen + Hinweis; ohnechat_idexakt bisheriges Verhalten.@media (max-width: 560px)stapelt Liste über Detail (Reiter ist 320–900 pt). NachremoveAuswahl nachziehen.SKILL.md: Abschnitt „Plugin-Reiter im Seitenpanel" +select/selectionin der Werkzeugtabelle.build-irisplugin.shkopiertpanel_api.py. Anleitung undstore/changelog.mdfür 3.4.0.Warum keine Server-Änderung:
POST /plugins/:id/api/:commandist auf Mac und Linux generisch vorhanden, beide lösenside_panelundworkflow_registry.pysdefault_app_support()auf dieselbe Bibliothek.Geprüft: 11 Unit-Tests grün —
tests/test_selection_and_panel.py, die ersten Tests des Plugins überhaupt; beide Skripte als echte Subprocessen gegeneinander, Temp-Bibliothek ausseed/. Probe gegen die echte Bibliothek dieses Macs:summary„Kein Workflow ausgewählt · 9 Workflows in der Bibliothek", nachselect„Ausgewählt: MiniMax Music 3 · 9 …". Dabei gefunden: der Mac-Runner (runPluginPanelAPIScript) setztIRIS_APP_SUPPORTnicht (die Doku inInstalledPlugin.swift:316verspricht es) — ohne Variable geprüft, der Fallback auf~/Library/Application Support/Iristrägt, Linux-Container hat denselben Bind-Mount. Syntax-Check der Seite (node), Build OK.Nicht geprüft: kein Klicktest in Iris (installiert ist 3.3.0, das neue Paket muss importiert werden); Reiter gegen den Linux-Server nicht gesehen; iOS nicht geprüft; der Marker
[PLUGIN-PANEL: …]mit dieser Auswahl nie in einem echten Hermes-Lauf beobachtet. Nicht veröffentlicht — Veröffentlichen braucht dein Wort.