fix: Chat-Isolation, Tab-Besitz und eigene Seiten für Einstellungen/Verlauf

Ereignisse landeten im falschen Chat: der Broker markiert jedes Ereignis mit
chatId, das Panel filtert aber auf sessionId — handleBrokerMessage reichte die
Nachricht unverändert weiter, der Filter griff also nie und alles landete im
gerade sichtbaren Chat. chatId wird jetzt beim Weiterreichen übersetzt.

Tab-Isolation war reine Optik — die Gruppen wurden nirgends durchgesetzt:
- getActiveTab() nahm sich den gerade sichtbaren Tab (auch den eines anderen
  Chats oder einen losen Tab des Nutzers) und zog ihn in die eigene Gruppe.
  Fremde Tabs werden jetzt nie adoptiert; der Chat öffnet sich einen eigenen.
- browser_tabs_create legte den neuen Tab in die Gruppe der SICHTBAREN statt
  der aufrufenden Konversation (sessionId fehlte).
- browser_tabs_select/close prüften den Besitz gar nicht — der Agent konnte
  jeden Tab übernehmen oder schließen, auch die des Nutzers.
- browser_tabs_list zeigte jeden offenen Tab; Tabs anderer Chats sind jetzt
  unsichtbar, Nutzer-Tabs klar als "nicht anfassen" markiert.
Besitz wird über Chromes Tab-Gruppen bestimmt — überlebt einen Neustart des
Service Workers, anders als reiner Speicher.

Session wird explizit durch runTool/dispatchTool/getActiveTab gereicht. Der
bisherige Trick, activeSessionId kurz umzubiegen, hielt nur ohne Parallelität:
zwischen Setzen und Zurücksetzen liegt ein await.

Einstellungen und Verlauf nehmen dem Chat keinen Platz mehr weg: Einstellungen
sind eine eigene Seite (vorher ausklappbar bis 45vh), der Verlauf ein Overlay
über dem Header-Knopf. Abschnitte als eigene Module mit Icon und Akzentkante.
Nebenbei repariert: nach der Umbenennung .settings -> .settings-panel zeigten
mehrere Regeln ins Leere.

Kimi K2.5, GLM-5 und Gemini 3.1 Flash Lite im Nexus-Katalog; Kimi/GLM laufen
über /moonshot bzw. /zai statt über den Azure-Deployment-Pfad. Ollama als
lokaler Anbieter wählbar (kein Key nötig).

Enthält außerdem ältere, noch nicht committete Arbeit, die nicht von diesem
Durchgang stammt und sich nicht sauber abtrennen ließ: kräftigerer Glow mit
Farbverlauf (spotlight.ts), Raster-Overlay für Screenshots (computer.ts) und
ein Ein/Aus-Schalter für CDP (cdp.ts).
This commit is contained in:
2026-08-12 11:24:35 +02:00
parent 8d03f36b0e
commit 02d3d11523
12 changed files with 1223 additions and 370 deletions
+2 -1
View File
@@ -1,12 +1,13 @@
{
"manifest_version": 3,
"name": "Nexus Browser Pilot",
"version": "1.0.0",
"version": "1.2.0",
"minimum_chrome_version": "116",
"description": "Bedient den Browser wie ein Mensch echter Mauszeiger, echte Tastatur, echte Events. Handelt selbstständig; Rückfragen nur im zuschaltbaren Nachfrage-Modus.",
"permissions": [
"activeTab",
"tabs",
"tabGroups",
"scripting",
"storage",
"sidePanel",