feat(iris-gamebox): Iris steuert den Reiter inhaltlich — Ansichtszustand (Suche, Filter, Modus), erster Treffer automatisch, Treffer weiterschalten; Muster im Panel-Kit #284
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/iris-plugins#284
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Iris (der Agent) kann den Plugin-Reiter inhaltlich steuern, nicht nur die Auswahl setzen: „Zeig mir Space Quest“ im Chat trägt „Space Quest“ ins Suchfeld des Reiters ein, zeigt den ersten Treffer und kann zwischen den Treffern weiterschalten. Der Nutzer sieht dabei dasselbe wie der Agent — und umgekehrt: was er selbst in den Reiter tippt, sieht der Agent.
Wird zuerst für iris-gamebox gebaut, das Muster kommt ins Panel-Kit (danach comfyui-workflows und iris-solidcraft, soweit sie einen Ansichtszustand haben). Companion in iris/Iris: Skill-Hinweis im Marker (Verweis unten).
Entscheidungen (mit Nutzer geklärt)
launch,bundle,remove); der Agent ruft denselben Befehl auf.Entwurf
view.jsonim Plugin-Zustand, wieselection.jsonglobal, nicht je Chat): gamebox{mode: store|installed, query, system, sort, selection}. Kit:ViewStatenebenSelection(atomares Schreiben, Standardwerte, Feldprüfung),status_replyträgt ihn indetail.viewund in dierevision.browsemit system/query/sort) liefert Treffer und Reihenfolge für Agent und Seite; „weiterschalten“ heißt: die Auswahl auf den Nachbarn in dieser Liste setzen. Keine zweite Trefferlogik.gbox view --query Q [--system S] [--mode store|installed] [--sort …]setzt Suche und wählt Treffer 1 (antwortet mithit,hits,selection);gbox view --next | --prev | --hit N;gbox viewliest;gbox view --clear.status.summarynennt Suche und Position („Suche „space quest“ · Treffer 2 von 7 · Ausgewählt: …“). Keine Treffer: Auswahl bleibt, Antwort sagt es.onRefreshwendet den Ansichtszustand an (Modus, Suchfeld, System, Sortierung, Liste laden, Auswahl anzeigen, Treffer in den sichtbaren Bereich scrollen); Eingaben des Nutzers (Suche, Filter, Reiter, Auswahl) schreibt sie entprellt überpanel_api view-setzurück — keine Schleife: ein Ereignis, das aus dem eigenen Schreiben entsteht, wird übergangen (Vergleich mit dem zuletzt geschriebenen Zustand).gbox view --query, nicht nurgbox search“.revisionändert sich bei jedem Befehl.Nicht jetzt
UI-Befehle ohne Backend-Gegenstück (Lightbox öffnen, Beschreibung ausklappen): Warteschlange
commands.jsonmit Quittung undpanel.onCommand(name, fn)— erst bauen, wenn ein echter Bedarf auftaucht.Offen
--query, wenn der bisherige Treffer noch in der neuen Liste steckt — trotzdem Treffer 1 (Vorschlag: ja, der Nutzer hat gesucht).[SEITENPANEL]), iris/iris-plugins#281.Gegenstück: iris/Iris#181
PR #285 gemergt: feat(iris-gamebox): Ansichtszustand — Iris setzt Suche und zeigt den ersten Treffer, schaltet durch die Treffer; ViewState im Panel-Kit, Version 0.10.0 (#284)
#285
Commits:
Stand (PR zu #284): Ansichtszustand für iris-gamebox gebaut
Entscheidungen umgesetzt: neue Suche ⇒ erster Treffer wird automatisch gezeigt; Iris schaltet durch die Treffer (
gbox view --next | --prev | --hit N); Zustand global (wie die Auswahl); eine Suche des Agenten sortiert nach Relevanz, solange keine Sortierung gesetzt ist (neue Sortierung „Nach Relevanz“ auch in der Seite).Gebaut.
pk.ViewState(pfad, defaults, choices=, max_len=)—load(kaputte Einzelwerte fallen auf den Standard),update(prüft Feld, Auswahlliste, Länge, ganze Zahlen ≥ 0; atomar; unbekanntes Feld = Fehler),clear.view.json(mode, query, system, sort, hit, hits);view_commandals gemeinsamer Kern vongbox viewundpanel_api view— Trefferliste =browse_rows(Store) bzw. die Filterung der Seite (Installiert), also dieselbe Liste wie in der Seite; Ränder bleiben stehen (note), kein Treffer lässt die Auswahl stehen (note), Fehler mit Klartext.view-set(nur Seite: schreibt, rechnet nichts, wählt nichts).status:summarynennt Suche und Position,detail.view, dierevisionschließtview.jsonein.onRefresh(Liste neu, Auswahl nicht zurückgesetzt, Treffer in den Bildschirm gescrollt), schreibt eigene Eingaben entprellt zurück und nur bei echter Änderung (keine Schleife), Trefferleiste „Treffer 2 von 7“ mit Zurück/Weiter über denselben Befehl.gbox view --query, nurgbox searchreicht nicht“, Knöpfe = Befehle. README Kapitel 22.5 (Sequenzdiagramm),CLAUDE.md-Hinweis, Kit-README.Geprüft. Kit 45 Python- + 16 Node-Tests; gamebox 16 Tests (13 neu für den Ansichtszustand: Suche zeigt Treffer 1, Relevanz-Standard, vor/zurück/n-ter, Ränder, Treffer außerhalb, keine Treffer, Systemfilter, lesen/leeren, ungültige Werte,
status-Summary, Seite schreibt ohne die Auswahl zu ändern); registry-tools 62. End-to-End in einem echten Headless-Chromium (tests/e2e/): die echtesearch.htmlgegen das echtepanel_api.pymit Fake-Heimat und Fake-Katalog — Agent setztview --query⇒ Suchfeld, Relevanz, Treffer 1 und „Treffer 1 von 3“ erscheinen;--next⇒ Seite zeigt Treffer 2; Klick „Weiter“ ⇒ Seite und Plugin führen dieselbe Auswahl; der Nutzer tippt selbst ⇒ der Agent liest die Suche und die Trefferzahl; ein Ereignis ohne Änderung schreibt nichts; 0 Treffer blendet die Leiste aus; keine JavaScript-Fehler. Der Test hat einen echten Fehler gefunden (die Trefferleiste war trotzhiddensichtbar, CSS überschrieb es) — behoben. Paket gebaut und entpackt,viewläuft aus dem Paket,--dry-rungrün.Nicht geprüft. In der echten Iris-App (Client mit iris/Iris#178 und dem Marker-Fix #180): ob das Refresh-Ereignis dort zuverlässig ankommt; ob ein Chat-Agent den neuen Skill-Text befolgt (neue Unterhaltung nötig). comfyui-workflows und iris-solidcraft haben noch keinen Ansichtszustand (nur Gamebox hat Suche/Filter). Das Kit wurde nur um
ViewStateergänzt — die anderen beiden Plugins mit Reiter nicht neu gebaut.Offen.
side_panel_skillim Manifest und Marker-Hinweis (iris/Iris#181). Bei Relevanz-Gleichstand entscheidet der vorhandene Suchwert: bei „space quest“ stand im Fake-Katalog „Space Quest II“ vor „I“ — ob die Reihenfolge der echten Titel zufriedenstellt, zeigt der Alltag.Stand: veröffentlicht
iris-gamebox 0.10.0 ist in der Registry (nach dem Pull des Registry-Repos geprüft). Wer aktualisiert, bekommt: „Zeig mir Space Quest“ im Chat trägt die Suche ins Seitenpanel ein und zeigt den ersten Treffer; Iris schaltet zwischen den Treffern vor und zurück, die Seite zeigt „Treffer 2 von 7“ mit Zurück/Weiter; was du selbst im Reiter suchst, sieht Iris auch; neue Sortierung „Nach Relevanz".
Wirkt vollständig nur mit einer Iris-App mit iris/Iris#178 (Aktualisierung der Ansicht) und #180 (Marker-Fix) und in einer neuen Unterhaltung (der Agent liest den Skill-Text neu). Nicht geprüft: das Zusammenspiel in der echten App; geprüft ist es End-to-End in einem Headless-Chromium (siehe Stand-Kommentar zum PR). Rückmeldung nach dem Test auf mehreren Maschinen bitte hier.
Geschlossen auf ausdrücklichen Wunsch von Alf; das Label status/zu-testen wurde dabei entfernt. Stand: siehe die Kommentare oben (veröffentlicht bis iris-gamebox 0.10.5).