From 1239abd04899a74903c6a9d50ed97c80c83937fe Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Mon, 10 Aug 2026 09:18:20 +0200 Subject: [PATCH] fix: Glow im Broker-Modus + Tab-URL in user_message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handleBrokerMessage: 'round' schaltet notifyGlow(true), 'done'/'error' schalten notifyGlow(false). Vorher wurde Glow nur im direct-Modus (agent.ts) gesteuert — im Broker-Modus blieb er immer aus. - ExtUserMessage: url?-Feld ergänzt. - user_message an Broker: aktuelle Tab-URL wird mitgeschickt, damit der Broker kontextspezifische Prompts einbauen kann. --- src/background/index.ts | 24 ++++++++++++++++++++---- src/shared/protocol.ts | 2 ++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/background/index.ts b/src/background/index.ts index 4cdff50..bb53e8c 100644 --- a/src/background/index.ts +++ b/src/background/index.ts @@ -152,14 +152,22 @@ async function handleBrokerMessage(msg: BrokerMessage): Promise { switch (msg.type) { case 'welcome': case 'text_delta': - case 'round': - case 'done': - case 'error': case 'approval_request': case 'tool_result_event': case 'mcp_status': sendToPanel(msg); break; + case 'round': + // Agent läuft — Glow einschalten + notifyGlow(true); + sendToPanel(msg); + break; + case 'done': + case 'error': + // Agent fertig — Glow ausschalten + notifyGlow(false); + sendToPanel(msg); + break; case 'tool_call': await executeForBroker(msg.callId, msg.name, msg.input); break; @@ -1662,7 +1670,15 @@ chrome.runtime.onConnect.addListener((port) => { sendToPanel({ type: 'log', level: 'warn', text: `${msg.images.length} Bild(er) ignoriert: Bildanhänge gehen nur im Antrieb "direct".` }); } - sendToBroker({ type: 'user_message', text: msg.text, maxRounds: msg.maxRounds ?? cfg.maxRounds } satisfies ExtUserMessage); + // Aktuelle Tab-URL mitschicken — der Broker baut daraus den Kontext (z.B. Mercedes-Wissen). + let tabUrl: string | undefined; + try { + const id = await currentTabId(); + if (typeof id === 'number') { + tabUrl = (await chrome.tabs.get(id).catch(() => null))?.url; + } + } catch { /* ok */ } + sendToBroker({ type: 'user_message', text: msg.text, maxRounds: msg.maxRounds ?? cfg.maxRounds, url: tabUrl } satisfies ExtUserMessage); } break; } diff --git a/src/shared/protocol.ts b/src/shared/protocol.ts index 04b8e56..436d405 100644 --- a/src/shared/protocol.ts +++ b/src/shared/protocol.ts @@ -24,6 +24,8 @@ export interface ExtUserMessage { text: string; chatId?: string; maxRounds?: number; + /** URL des Ziel-Tabs — damit der Broker kontextspezifische Prompts einbauen kann. */ + url?: string; } /** Tool execution result (extension ran a browser tool) */