URL-Scheme iris://chat/<job-id> + notify-Action open_chat #38

Closed
opened 2026-10-13 10:33:10 +00:00 by alf · 0 comments
Owner

App-seitige Phase des iris-gui-Plugins (iris/iris-plugins#21), damit ein ferner Hermes (z. B. Linux-Server) oder ein lokales Skript einen Chat in der Oberfläche öffnen kann.

1. URL-Scheme iris:// (beide Targets, Iris.app + IrisClient.app):

  • CFBundleURLSchemes in beiden Info.plist
  • iris://chat/<job-id>[?profile=<uuid>] → Fenster aktivieren/fokussieren, Job in der Sidebar auswählen
  • Lokaler Kurzweg: open "iris://chat/<id>" (kein Token, kein TLS, sofort)

2. /notify-Handling im Client:

  • context.action == "open_chat" (+ context.job_id) → Chat öffnen (selbe Ziel-Auflösung wie beim Scheme)
  • Server-seitig ist context ein undurchsichtiges str→str-Mapping — kein Wire-Format-Change, iOS- und Linux-Client kennen die Action nicht und fallen auf das Banner zurück (verifizieren, kein Change nötig)
  • Wire-Protokoll-Doku (Entwicklerdokumentation/02-Wire-Protokoll.md im Wurzel-Repo) im selben Zug ergänzen

3. Iris-Client-Version: mit tools/set-version bumpen, damit das Plugin die Scheme-Fähigkeit erkennen kann (/health meldet die Version; Plugin-Fallback bleibt der AX-Klick).

Vertrag: Wire-Protokoll-Änderungen betreffen beide Server und alle Clients — hier ist context Pass-Through, daher kein byte-genauer Change, nur Client-Interpretation.

App-seitige Phase des iris-gui-Plugins (`iris/iris-plugins#21`), damit ein ferner Hermes (z. B. Linux-Server) oder ein lokales Skript einen Chat in der Oberfläche öffnen kann. **1. URL-Scheme `iris://` (beide Targets, Iris.app + IrisClient.app):** - `CFBundleURLSchemes` in beiden Info.plist - `iris://chat/<job-id>[?profile=<uuid>]` → Fenster aktivieren/fokussieren, Job in der Sidebar auswählen - Lokaler Kurzweg: `open "iris://chat/<id>"` (kein Token, kein TLS, sofort) **2. `/notify`-Handling im Client:** - `context.action == "open_chat"` (+ `context.job_id`) → Chat öffnen (selbe Ziel-Auflösung wie beim Scheme) - Server-seitig ist `context` ein undurchsichtiges str→str-Mapping — **kein Wire-Format-Change**, iOS- und Linux-Client kennen die Action nicht und fallen auf das Banner zurück (verifizieren, kein Change nötig) - Wire-Protokoll-Doku (`Entwicklerdokumentation/02-Wire-Protokoll.md` im Wurzel-Repo) im selben Zug ergänzen **3. Iris-Client-Version:** mit `tools/set-version` bumpen, damit das Plugin die Scheme-Fähigkeit erkennen kann (`/health` meldet die Version; Plugin-Fallback bleibt der AX-Klick). Vertrag: Wire-Protokoll-Änderungen betreffen beide Server und alle Clients — hier ist `context` Pass-Through, daher kein byte-genauer Change, nur Client-Interpretation.
alf closed this issue 2026-10-13 12:51:46 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/Iris#38
No description provided.