feat(iris-browser): Tab-Liste gelangt mit dem geteilten Chat auf den anderen Rechner #347

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: panel_api.py (Tab-Datei lesen/schreiben, workspace_changed), Dienstbefehl --adopt-tabs, Tests, neue Plugin-Version.

## 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: `panel_api.py` (Tab-Datei lesen/schreiben, `workspace_changed`), Dienstbefehl `--adopt-tabs`, Tests, neue Plugin-Version.
Author
Owner

PR #348 gemergt: feat(iris-browser): Tab-Liste gelangt mit dem geteilten Chat auf den anderen Rechner, 0.5.3 (iris/iris-plugins#347)
http://docker:3000/iris/iris-plugins/pulls/348

Commits:

  • feat(iris-browser): Tab-Liste gelangt mit dem geteilten Chat auf den anderen Rechner, 0.5.3 (iris/iris-plugins#347)

Stand

Befund: Tabs im Browser-Panel eines geteilten Chats erschienen auf dem anderen Rechner nicht (Zustand nur im state.json des Plugins, geschlüsselt mit der lokalen Chat-ID).

Geändert (iris-browser 0.5.3): panel_api.py schreibt die Tab-Liste als .iris-browser-tabs.json in den Workspace des Chats und übernimmt vor jedem Befehl eine neuere Datei der Gegenseite über den neuen Dienstbefehl --adopt-tabs (eigene Seiten schließen, Tabs geparkt setzen; nur http(s)-Adressen, ungültige Dateien werden ignoriert). Neuerer Stand gewinnt (Zeitstempel und Prüfsumme je Chat in plugin-data/iris-browser/tabs-sync.json). Hat das Panel die Datei geschrieben, meldet die Antwort workspace_changed: true; die Server stoßen darauf den Export an (iris/Iris#328, iris/iris-linux-server#143). Anleitung, Changelog, PLAN.md, README (Panel-Backend) nachgezogen.

Geprüft: tests/test_panel_api.py 22 Tests grün (neu: Tab-Datei schreiben, nicht doppelt, nur http, Übernahme, eigener neuerer Stand bleibt, kaputte Datei ignoriert, Hinweis workspace_changed); tests/smoke.sh gegen echten Chromium bestanden (neu: --adopt-tabs, geparkt, file:// wird nicht übernommen, Fortsetzen lädt die Seite).

Nicht geprüft: Nicht zwischen zwei echten Rechnern (Mac Studio ↔ Mac-VM) und nicht über den Linux-Server mit Browser-Container; REMOTE=1 bash tests/smoke.sh nicht gelaufen.

Grenzen / offen: Tabs, die der Agent ohne offenes Panel ändert, gehen erst beim nächsten Panel-Aufruf in die Datei. Beim ersten Abgleich einer Seite mit schon offenen Tabs gewinnt eine vorhandene Datei der Gegenseite. Seiteninhalt, Logins und Formulare wandern nie mit.

PR #348 gemergt: feat(iris-browser): Tab-Liste gelangt mit dem geteilten Chat auf den anderen Rechner, 0.5.3 (iris/iris-plugins#347) http://docker:3000/iris/iris-plugins/pulls/348 Commits: - feat(iris-browser): Tab-Liste gelangt mit dem geteilten Chat auf den anderen Rechner, 0.5.3 (iris/iris-plugins#347) --- ## Stand **Befund:** Tabs im Browser-Panel eines geteilten Chats erschienen auf dem anderen Rechner nicht (Zustand nur im `state.json` des Plugins, geschlüsselt mit der lokalen Chat-ID). **Geändert (iris-browser 0.5.3):** `panel_api.py` schreibt die Tab-Liste als `.iris-browser-tabs.json` in den Workspace des Chats und übernimmt vor jedem Befehl eine neuere Datei der Gegenseite über den neuen Dienstbefehl `--adopt-tabs` (eigene Seiten schließen, Tabs geparkt setzen; nur http(s)-Adressen, ungültige Dateien werden ignoriert). Neuerer Stand gewinnt (Zeitstempel und Prüfsumme je Chat in `plugin-data/iris-browser/tabs-sync.json`). Hat das Panel die Datei geschrieben, meldet die Antwort `workspace_changed: true`; die Server stoßen darauf den Export an (iris/Iris#328, iris/iris-linux-server#143). Anleitung, Changelog, PLAN.md, README (Panel-Backend) nachgezogen. **Geprüft:** `tests/test_panel_api.py` 22 Tests grün (neu: Tab-Datei schreiben, nicht doppelt, nur http, Übernahme, eigener neuerer Stand bleibt, kaputte Datei ignoriert, Hinweis `workspace_changed`); `tests/smoke.sh` gegen echten Chromium bestanden (neu: `--adopt-tabs`, geparkt, `file://` wird nicht übernommen, Fortsetzen lädt die Seite). **Nicht geprüft:** Nicht zwischen zwei echten Rechnern (Mac Studio ↔ Mac-VM) und nicht über den Linux-Server mit Browser-Container; `REMOTE=1 bash tests/smoke.sh` nicht gelaufen. **Grenzen / offen:** Tabs, die der Agent ohne offenes Panel ändert, gehen erst beim nächsten Panel-Aufruf in die Datei. Beim ersten Abgleich einer Seite mit schon offenen Tabs gewinnt eine vorhandene Datei der Gegenseite. Seiteninhalt, Logins und Formulare wandern nie mit.
Author
Owner

Veröffentlicht: iris-browser 0.5.3

Registry-Commit 4f177dd (plugins: iris-browser 0.5.3), Paket packages/iris-browser/iris-browser-0.5.3.irisplugin, geprüft im Registry-Repo nach dem Pull.

Was Nutzer bekommen: Die Tab-Liste des Browser-Panels (Adressen, Titel, aktiver Tab) wandert mit einem geteilten Chat auf den anderen Rechner; dort stehen die Tabs geparkt und laden beim Fortsetzen neu. Der neuere Stand gewinnt.

Voraussetzung für den sofortigen Abgleich: Mac-Server und Linux-Server mit iris/Iris#328 bzw. iris/iris-linux-server#143 (gemergt, noch nicht als App-Version ausgeliefert, Linux nicht deployt). Ohne sie schreibt das Plugin die Datei trotzdem; sie geht dann beim nächsten Jobende oder Workspace-Export mit.

Offen: Nicht zwischen zwei echten Rechnern ausprobiert; status/zu-testen bleibt. Der Stand-Kommentar zum PR (Geprüft/Nicht geprüft) steht darüber.

## Veröffentlicht: iris-browser 0.5.3 Registry-Commit `4f177dd` (`plugins: iris-browser 0.5.3`), Paket `packages/iris-browser/iris-browser-0.5.3.irisplugin`, geprüft im Registry-Repo nach dem Pull. **Was Nutzer bekommen:** Die Tab-Liste des Browser-Panels (Adressen, Titel, aktiver Tab) wandert mit einem geteilten Chat auf den anderen Rechner; dort stehen die Tabs geparkt und laden beim Fortsetzen neu. Der neuere Stand gewinnt. **Voraussetzung für den sofortigen Abgleich:** Mac-Server und Linux-Server mit iris/Iris#328 bzw. iris/iris-linux-server#143 (gemergt, noch nicht als App-Version ausgeliefert, Linux nicht deployt). Ohne sie schreibt das Plugin die Datei trotzdem; sie geht dann beim nächsten Jobende oder Workspace-Export mit. **Offen:** Nicht zwischen zwei echten Rechnern ausprobiert; `status/zu-testen` bleibt. Der Stand-Kommentar zum PR (Geprüft/Nicht geprüft) steht darüber.
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-plugins#347
No description provided.