Autonome Web-Blöcke: Routen für Canvas anhängen, Notify/Ask, Zustand und Plugin-Dateien (iris/Iris#149) #91
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-linux-server#91
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?
Worum es geht
Teil des Features Autonome Web-Blöcke (Spezifikation und alle Entscheidungen: iris/Iris#149). Der Linux-Server bekommt die Routen, die ein Client für autonome Plugin-Blöcke braucht. Die Aktionen selbst laufen nicht hier, sondern auf dem Client-Gerät; der Server ist Ablage und Verlauf.
Zu tun (Wire-Protokoll, byte-genau wie der Mac-Server)
POST /agent/<job>/canvas{title, blocks}: Canvas-Nachricht an den Job anhängen, ohne Lauf (Ausgangspunkt:jobs_store.append_canvas_message, bisher nur über das interne Werkzeugshow_canvaserreichbar).POST /agent/<job>/notify{plugin_id, text}: Hinweis-Nachricht „von Plugin X“, kein Lauf.POST /agent/<job>/ask{plugin_id, text}: Nachricht mit Herkunftplugin:<id>wie vom Nutzer, löst einen Lauf aus.PUT /agent/<job>/canvas-plugin/<block>/state{state, snapshot_id}; der Canvas-Snapshot (canvas.py,canvasSnapshotData) trägt das Feldstateundautonomous. Heute hat der Linux-Server diecanvas-plugin/…/submit-Routen des Mac-Servers gar nicht (Gegenstück inIrisRemoteServer.swift); das ist mit zu klären.GET /plugins/<id>/actions→{version, actions_api, actions, files:[{path, sha256, size}]}undGET /plugins/<id>/file?path=(authentifiziert, nur Dateien des Plugins).Dazu
autonomous: truedarf ein Klick nichtisCompletedsetzen und keinen Auto-Submit/Lauf auslösen (canvas.py,canvas_routes.py,jobs_store.py).Nicht Teil
Ausführen von Aktionen im Container, Sandbox, iOS/Browser.
Abnahme
Mit einem Mac-Client gegen den Linux-Server: Block anhängen ohne Lauf (Log), Zustand speichern und im Snapshot wiederfinden, Plugin-Dateien mit Hash abholen, Notify und Ask mit Kennzeichnung. Tests in
tests/(wietest_canvas.py). Nach der Änderung Wire-Protokoll-Doku (Entwicklerdokumentation/02-Wire-Protokoll.md) im selben Zug.Stand iris/Iris#149: Schritte 1–4 sind auf dem Mac gemergt (Laufzeit, Manifest und Routen
GET /plugins/<id>/actionsund/file,irisCall, Lebenszyklus). Für diesen Server noch zu bauen: die beiden Routen samtbundle_hash(Referenzvektor inEntwicklerdokumentation/02-Wire-Protokoll.md, 56 Fälle der Manifest-Prüfung sind im Mac-Testskriptscripts/test-plugin-actions-core.sh) und eine Route, mit der Remote-Clients den Zustand eines autonomen Blocks speichern (irisSaveState/irisFinish; Snapshot-Felderautonomous,blockStates,finishedBlockIDs). Die Zustandsroute ist noch nicht entworfen, sie entsteht mit Schritt 7.