feat(side-panel): deterministische Zustandszeile [SEITENPANEL] — welcher Reiter ist aktiv, im Protokoll spezifiziert #176

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

Ziel

Der Agent erfährt deterministisch, welcher Reiter im Seitenpanel aktiv ist, ohne Screenshot und ohne Vision. Die Auskunft ist im Wire-Protokoll spezifiziert und in der Anweisung an den Agenten erklärt — auch die Umkehrung („Zeile fehlt“).

Warum

Auf „Welches Plugin ist gerade im Seitenpanel aktiv?“ griff der Agent zu iris-gui + Screenshot + vision_analyze (siehe Bug-Issue zum fehlenden Marker). Heute gilt nur die Richtung „[PLUGIN-PANEL]-Zeile da ⇒ Reiter offen“:

  • Ein fehlender Marker heißt „Reiter zu“, „Notiz- oder Browser-Reiter aktiv“ oder „status fehlgeschlagen“ — der Agent kann es nicht unterscheiden.
  • Welcher Reiter überhaupt aktiv ist (Notiz, Browser, Plugin), erfährt er nirgends; die Cursor-Zeile ist der einzige Hinweis auf die Notiz.
  • Die Anweisung (pluginPanelInstructionLine) sagt nichts darüber, was das Fehlen der Zeile bedeutet.

Vorschlag (zu klären, bevor gebaut wird)

  • Der Client setzt eine Zeile [SEITENPANEL: Reiter=<notiz|browser|plugin|zu>], bei plugin mit Plugin=<Name> und Stand=<ok|fehler: Grund|lädt>. Bei fehlgeschlagenem status steht der Grund dort, die Zeile fehlt nicht.
  • [PLUGIN-PANEL: …] und [CURSORPOSITION: …] bleiben unverändert (feste Reihenfolge, Registry-Muster ChatContextRegistry / ChatPluginPanelRegistry).
  • Anweisung an den Agenten (AgentJob.swift und _hermes_base_instructions im Linux-Server, wortgleich): was die Zeile bedeutet, dass ihr Fehlen „unbekannt“ heißt (nachfragen oder iris-gui), und dass ein Screenshot der letzte Weg ist, nicht der erste.
  • Protokoll: Abschnitt „Plugin-Reiter im Seitenpanel“ in 02-Wire-Protokoll.md um die Zeile erweitern; PluginSidePanelCore.swift (Quelle Mac, Kopie iOS) trägt den Bau.
  • iris-gui-SKILL.md: Fragen nach dem Panelzustand zuerst über die Zeile beantworten.

Betrifft

Mac-App (Iris, IrisClient), iOS, Linux-Server (Basis-Instruktionen), Wire-Protokoll, iris-gui (plugins).

Offen

  • Zeile immer oder nur bei offenem Seitenpanel? (Reiter=zu bei geschlossenem Panel spricht für immer.)
  • Token-Kosten pro Nachricht gegen den Nutzen (auf lokalen Modellen relevant): eine kurze Zeile, kein Freitext.
  • Bleibt die Voraussetzung: das Bug-Issue zum fehlenden Marker ist behoben, sonst fehlt auch diese Zeile.

Nebenfund, eigener Punkt: vision_analyze nutzt das Hauptmodell (Vision auto-detect: using main provider) mit 120 s Timeout — Konfiguration, nicht Protokoll.

## Ziel Der Agent erfährt deterministisch, **welcher Reiter im Seitenpanel aktiv ist**, ohne Screenshot und ohne Vision. Die Auskunft ist im Wire-Protokoll spezifiziert und in der Anweisung an den Agenten erklärt — auch die Umkehrung („Zeile fehlt“). ## Warum Auf „Welches Plugin ist gerade im Seitenpanel aktiv?“ griff der Agent zu `iris-gui` + Screenshot + `vision_analyze` (siehe Bug-Issue zum fehlenden Marker). Heute gilt nur die Richtung „`[PLUGIN-PANEL]`-Zeile da ⇒ Reiter offen“: - Ein fehlender Marker heißt „Reiter zu“, „Notiz- oder Browser-Reiter aktiv“ oder „`status` fehlgeschlagen“ — der Agent kann es nicht unterscheiden. - Welcher Reiter überhaupt aktiv ist (Notiz, Browser, Plugin), erfährt er nirgends; die Cursor-Zeile ist der einzige Hinweis auf die Notiz. - Die Anweisung (`pluginPanelInstructionLine`) sagt nichts darüber, was das Fehlen der Zeile bedeutet. ## Vorschlag (zu klären, bevor gebaut wird) - Der Client setzt eine Zeile `[SEITENPANEL: Reiter=<notiz|browser|plugin|zu>]`, bei `plugin` mit `Plugin=<Name>` und `Stand=<ok|fehler: Grund|lädt>`. Bei fehlgeschlagenem `status` steht der Grund dort, die Zeile fehlt nicht. - `[PLUGIN-PANEL: …]` und `[CURSORPOSITION: …]` bleiben unverändert (feste Reihenfolge, Registry-Muster `ChatContextRegistry` / `ChatPluginPanelRegistry`). - Anweisung an den Agenten (`AgentJob.swift` und `_hermes_base_instructions` im Linux-Server, wortgleich): was die Zeile bedeutet, dass ihr Fehlen „unbekannt“ heißt (nachfragen oder `iris-gui`), und dass ein Screenshot der letzte Weg ist, nicht der erste. - Protokoll: Abschnitt „Plugin-Reiter im Seitenpanel“ in `02-Wire-Protokoll.md` um die Zeile erweitern; `PluginSidePanelCore.swift` (Quelle Mac, Kopie iOS) trägt den Bau. - `iris-gui`-SKILL.md: Fragen nach dem Panelzustand zuerst über die Zeile beantworten. ## Betrifft Mac-App (Iris, IrisClient), iOS, Linux-Server (Basis-Instruktionen), Wire-Protokoll, `iris-gui` (plugins). ## Offen - Zeile immer oder nur bei offenem Seitenpanel? (`Reiter=zu` bei geschlossenem Panel spricht für immer.) - Token-Kosten pro Nachricht gegen den Nutzen (auf lokalen Modellen relevant): eine kurze Zeile, kein Freitext. - Bleibt die Voraussetzung: das Bug-Issue zum fehlenden Marker ist behoben, sonst fehlt auch diese Zeile. Nebenfund, eigener Punkt: `vision_analyze` nutzt das Hauptmodell (`Vision auto-detect: using main provider`) mit 120 s Timeout — Konfiguration, nicht Protokoll.
alf closed this issue 2026-10-27 10:39:10 +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#176
No description provided.