Gegenstück zum Plugin-Reiter: side_panel im Index, side-panel-webview-url, PLUGIN-PANEL-Hinweis (iris/Iris#169) #97

Closed
opened 2026-10-25 08:56:50 +00:00 by alf · 1 comment
Owner

Gegenstück zu iris/Iris#169: der Linux-Server bildet das Mac-Original nach.

  • plugin_installer.py: side_panel aus dem Manifest in den Index-Eintrag.
  • plugins_routes.py: has_side_panel_web_view in GET /plugins (berechnet, ohne has_settings_panel-Gate) und GET /plugins/{plugin_id}/side-panel-webview-url (gleicher _CFG_TOKENS-Namensraum, 404 ohne side_panel).
  • agent_jobs.py: PLUGIN-PANEL-Abschnitt in den Basis-Instruktionen, Wortlaut identisch zum Mac, unabhängig von note_line.
  • ROUTES.md: usage-/side-panel-webview-url und POST /plugins/{id}/api/{command} nachgezogen.

Was der Server nicht tut: die Chat-Kennung — er mintet nur den plugin-gebundenen Token.

Gegenstück zu iris/Iris#169: der Linux-Server bildet das Mac-Original nach. - `plugin_installer.py`: `side_panel` aus dem Manifest in den Index-Eintrag. - `plugins_routes.py`: `has_side_panel_web_view` in `GET /plugins` (berechnet, ohne has_settings_panel-Gate) und `GET /plugins/{plugin_id}/side-panel-webview-url` (gleicher `_CFG_TOKENS`-Namensraum, 404 ohne side_panel). - `agent_jobs.py`: PLUGIN-PANEL-Abschnitt in den Basis-Instruktionen, Wortlaut identisch zum Mac, unabhängig von note_line. - `ROUTES.md`: usage-/side-panel-webview-url und POST /plugins/{id}/api/{command} nachgezogen. Was der Server nicht tut: die Chat-Kennung — er mintet nur den plugin-gebundenen Token.
Author
Owner

PR #98 gemergt: feat(side-panel): Gegenstück zum Plugin-Reiter — side_panel im Index, side-panel-webview-url, PLUGIN-PANEL-Hinweis (#97, iris/Iris#169)
#98

Commits:

  • feat(side-panel): Gegenstück zum Plugin-Reiter — side_panel im Index, side-panel-webview-url, PLUGIN-PANEL-Hinweis (#97, iris/Iris#169)

Stand — Gegenstück zum Plugin-Reiter gebaut (Linux-Server)

Befund: Der Linux-Server bildet das Mac-Original von iris/Iris#169 nach.

Geändert: plugin_installer.py — side_panel aus dem Manifest in den Index-Eintrag (persistiert wie
usage_web_view_path, das Wire-Feld wird daraus berechnet). plugins_routes.py — has_side_panel_web_view
in GET /plugins (berechnet, bewusst ohne has_settings_panel-Gate) und
GET /plugins/{plugin_id}/side-panel-webview-url als drittes Gegenstück zu config-/usage-webview-url:
gleicher _CFG_TOKENS-Namensraum, 16 Hex-Zeichen, /htmlserver/-Pfad, 404 wenn das Plugin fehlt oder
kein side_panel hat. agent_jobs.py — PLUGIN-PANEL-Abschnitt in _hermes_base_instructions, Wortlaut
identisch zum Mac (AgentJob.swift), bewusst unabhängig von note_line. ROUTES.md — die beiden
fehlenden Web-View-Token-Routen und POST /plugins/{id}/api/{command} nachgezogen.

Was der Server nicht tut: die Chat-Kennung. Er mintet den plugin-gebundenen Token und sonst nichts;
chat_id hängt der Client an, der Server prüft es nie.

Geprüft: python3 -m py_compile über die drei geänderten Dateien.

Nicht geprüft: keine pytest-Suite für die neue Route — tests/test_plugins.py deckt config-, doc- und
panel_api-Routen ab, die neue nicht; ein Test nach dem Muster
test_plugin_config_route_accepts_cfg_token_without_bearer wäre die natürliche Ergänzung. Kein Lauf gegen
alf@iris-server, kein Deploy per rsync, kein docker compose. Der Mac-Client wurde nicht gegen diesen
Server getestet.

Grenzen / offen: Mac (iris/Iris#169), iOS (2ndbrain-ios#42) und die Doku im Wurzel-Repo werden im
selben Zug geshippt. Issue bleibt mit status/zu-testen offen.

PR #98 gemergt: feat(side-panel): Gegenstück zum Plugin-Reiter — side_panel im Index, side-panel-webview-url, PLUGIN-PANEL-Hinweis (#97, iris/Iris#169) https://forgejo.lewerken.duckdns.org/iris/iris-linux-server/pulls/98 Commits: - feat(side-panel): Gegenstück zum Plugin-Reiter — side_panel im Index, side-panel-webview-url, PLUGIN-PANEL-Hinweis (#97, iris/Iris#169) --- ## Stand — Gegenstück zum Plugin-Reiter gebaut (Linux-Server) **Befund:** Der Linux-Server bildet das Mac-Original von iris/Iris#169 nach. **Geändert:** `plugin_installer.py` — `side_panel` aus dem Manifest in den Index-Eintrag (persistiert wie `usage_web_view_path`, das Wire-Feld wird daraus berechnet). `plugins_routes.py` — `has_side_panel_web_view` in `GET /plugins` (berechnet, bewusst ohne `has_settings_panel`-Gate) und `GET /plugins/{plugin_id}/side-panel-webview-url` als drittes Gegenstück zu config-/usage-webview-url: gleicher `_CFG_TOKENS`-Namensraum, 16 Hex-Zeichen, `/htmlserver/`-Pfad, `404` wenn das Plugin fehlt oder kein `side_panel` hat. `agent_jobs.py` — PLUGIN-PANEL-Abschnitt in `_hermes_base_instructions`, Wortlaut identisch zum Mac (`AgentJob.swift`), bewusst unabhängig von `note_line`. `ROUTES.md` — die beiden fehlenden Web-View-Token-Routen und `POST /plugins/{id}/api/{command}` nachgezogen. Was der Server **nicht** tut: die Chat-Kennung. Er mintet den plugin-gebundenen Token und sonst nichts; `chat_id` hängt der Client an, der Server prüft es nie. **Geprüft:** `python3 -m py_compile` über die drei geänderten Dateien. **Nicht geprüft:** keine pytest-Suite für die neue Route — `tests/test_plugins.py` deckt config-, doc- und panel_api-Routen ab, die neue nicht; ein Test nach dem Muster `test_plugin_config_route_accepts_cfg_token_without_bearer` wäre die natürliche Ergänzung. Kein Lauf gegen `alf@iris-server`, kein Deploy per rsync, kein `docker compose`. Der Mac-Client wurde nicht gegen diesen Server getestet. **Grenzen / offen:** Mac (iris/Iris#169), iOS (2ndbrain-ios#42) und die Doku im Wurzel-Repo werden im selben Zug geshippt. Issue bleibt mit `status/zu-testen` offen.
alf closed this issue 2026-10-27 10:48:04 +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-linux-server#97
No description provided.