feat(chat-share): Tabs des Browser-Panels gelangen mit dem geteilten Chat auf den anderen Rechner #328

Open
opened 2026-11-05 15:44:42 +00:00 by alf · 2 comments
Owner

Befund

Sind im Browser-Panel (rechtes Seitenpanel) Tabs geöffnet, erscheinen sie nach dem Teilen des Chats nicht auf dem anderen Rechner. Die Tabs liegen nur im state.json des Plugins iris-browser auf dem Rechner des Servers, geschlüsselt mit der lokalen Chat-ID (bei importierten Chats eine andere als auf dem Ursprungsrechner). Ein geteilter Chat überträgt nur Manifest, Verlauf und Workspace.

Entscheidung (mit Alf)

Synchronisiert wird die Tab-Liste (URLs, Titel, aktiver Tab); auf dem anderen Rechner stehen die Tabs geparkt und laden beim Fortsetzen neu. Seiteninhalt, Logins, Formulare wandern nie mit. Der neuere Stand gewinnt. Export bei jeder Änderung, entprellt.

Umsetzung

Das Plugin legt die Tab-Liste als .iris-browser-tabs.json im Workspace des Chats ab (panel_api.py, läuft auf dem Server-Host; der Browser-Dienst im eigenen Container auf dem Linux-Server hat keinen Zugriff auf /workspaces). Der bestehende Workspace-Sync (iris/Iris#326) trägt die Datei. Auf dem anderen Rechner übernimmt das Panel sie beim nächsten Aufruf über den neuen Dienstbefehl --adopt-tabs. Meldet eine Panel-Antwort workspace_changed: true, stößt der Server den Export an.

Anteil dieses Repos: Mac-Server stößt nach workspace_changed den Export an (handlePluginPanelAPI). Plugin: iris/iris-plugins, Linux: iris/iris-linux-server.

## Befund Sind im Browser-Panel (rechtes Seitenpanel) Tabs geöffnet, erscheinen sie nach dem Teilen des Chats nicht auf dem anderen Rechner. Die Tabs liegen nur im `state.json` des Plugins `iris-browser` auf dem Rechner des Servers, geschlüsselt mit der lokalen Chat-ID (bei importierten Chats eine andere als auf dem Ursprungsrechner). Ein geteilter Chat überträgt nur Manifest, Verlauf und Workspace. ## Entscheidung (mit Alf) Synchronisiert wird die **Tab-Liste** (URLs, Titel, aktiver Tab); auf dem anderen Rechner stehen die Tabs geparkt und laden beim Fortsetzen neu. Seiteninhalt, Logins, Formulare wandern nie mit. **Der neuere Stand gewinnt.** Export bei jeder Änderung, entprellt. ## Umsetzung Das Plugin legt die Tab-Liste als `.iris-browser-tabs.json` im Workspace des Chats ab (`panel_api.py`, läuft auf dem Server-Host; der Browser-Dienst im eigenen Container auf dem Linux-Server hat keinen Zugriff auf `/workspaces`). Der bestehende Workspace-Sync (iris/Iris#326) trägt die Datei. Auf dem anderen Rechner übernimmt das Panel sie beim nächsten Aufruf über den neuen Dienstbefehl `--adopt-tabs`. Meldet eine Panel-Antwort `workspace_changed: true`, stößt der Server den Export an. Anteil dieses Repos: Mac-Server stößt nach `workspace_changed` den Export an (`handlePluginPanelAPI`). Plugin: iris/iris-plugins, Linux: iris/iris-linux-server.
Author
Owner

PR #329 gemergt: feat(chat-share): Export nach workspace_changed der Panel-API, Tabs des Browser-Plugins (iris/Iris#328)
http://docker:3000/iris/Iris/pulls/329

Commits:

  • feat(chat-share): Export nach workspace_changed der Panel-API, Tabs des Browser-Plugins (iris/Iris#328)

Stand

Anteil dieses Repos: Mac-Server (handlePluginPanelAPI) stößt ChatShareManager.workspaceMayHaveChanged() an, wenn die Antwort eines panel_api-Befehls workspace_changed: true meldet. Das Plugin iris-browser 0.5.3 (iris/iris-plugins#347) schreibt die Tab-Liste als .iris-browser-tabs.json in den Workspace des Chats; der Workspace-Sync aus #326 trägt sie, das Panel auf der Gegenseite übernimmt sie (Tabs geparkt, neuerer Stand gewinnt). Linux: iris/iris-linux-server#143.

Geprüft: Plugin: 22 Unit-Tests und Rauchtest gegen echten Chromium (Details im Kommentar in iris-plugins#347). Server-Auslöser: Linux-Test grün.

Nicht geprüft: Kein Xcode-Build der App, die Änderung in IrisRemoteServer.swift ist nicht übersetzt. Nicht zwischen Mac Studio und Mac-VM ausprobiert.

Offen: Probe: Tab im Browser-Panel der VM öffnen, ~5 s warten, VM und dann Studio synchronisieren, Browser-Panel des Chats auf dem Studio öffnen (Tabs erscheinen geparkt, „Fortsetzen“ lädt sie).

PR #329 gemergt: feat(chat-share): Export nach workspace_changed der Panel-API, Tabs des Browser-Plugins (iris/Iris#328) http://docker:3000/iris/Iris/pulls/329 Commits: - feat(chat-share): Export nach workspace_changed der Panel-API, Tabs des Browser-Plugins (iris/Iris#328) --- ## Stand Anteil dieses Repos: Mac-Server (`handlePluginPanelAPI`) stößt `ChatShareManager.workspaceMayHaveChanged()` an, wenn die Antwort eines `panel_api`-Befehls `workspace_changed: true` meldet. Das Plugin iris-browser 0.5.3 (iris/iris-plugins#347) schreibt die Tab-Liste als `.iris-browser-tabs.json` in den Workspace des Chats; der Workspace-Sync aus #326 trägt sie, das Panel auf der Gegenseite übernimmt sie (Tabs geparkt, neuerer Stand gewinnt). Linux: iris/iris-linux-server#143. **Geprüft:** Plugin: 22 Unit-Tests und Rauchtest gegen echten Chromium (Details im Kommentar in iris-plugins#347). Server-Auslöser: Linux-Test grün. **Nicht geprüft:** Kein Xcode-Build der App, die Änderung in `IrisRemoteServer.swift` ist nicht übersetzt. Nicht zwischen Mac Studio und Mac-VM ausprobiert. **Offen:** Probe: Tab im Browser-Panel der VM öffnen, ~5 s warten, VM und dann Studio synchronisieren, Browser-Panel des Chats auf dem Studio öffnen (Tabs erscheinen geparkt, „Fortsetzen“ lädt sie).
Author
Owner

PR #154 gemergt: docs(wire): workspace_changed der Panel-API löst den Export geteilter Chats aus (iris/Iris#328)
http://docker:3000/alf/2ndbrain/pulls/154

Commits:

  • docs(wire): workspace_changed der Panel-API löst den Export geteilter Chats aus (iris/Iris#328)
PR #154 gemergt: docs(wire): workspace_changed der Panel-API löst den Export geteilter Chats aus (iris/Iris#328) http://docker:3000/alf/2ndbrain/pulls/154 Commits: - docs(wire): workspace_changed der Panel-API löst den Export geteilter Chats aus (iris/Iris#328)
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#328
No description provided.