From 4a2ef5695471740fc686d61790752f5070beb568 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 6 Oct 2025 16:45:48 +0200 Subject: [PATCH] Only insert navigation messages on user message submit, not during idle browsing - Remove automatic navigation message insertion from tab change listeners - Tab listeners now only track current tab state (currentTabUrl, currentTabIndex) - Navigation messages are only inserted via onBeforeSend callback when user submits - Prevents spam of navigation messages when user is just browsing without interacting with agent --- packages/browser-extension/src/sidepanel.ts | 23 +++++---------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/packages/browser-extension/src/sidepanel.ts b/packages/browser-extension/src/sidepanel.ts index 054407ff..1367c8a4 100644 --- a/packages/browser-extension/src/sidepanel.ts +++ b/packages/browser-extension/src/sidepanel.ts @@ -298,11 +298,12 @@ const renderApp = () => { // TAB NAVIGATION TRACKING // ============================================================================ -// Listen for tab updates to insert navigation messages in real-time +// Listen for tab updates to track current tab state (don't insert messages yet) chrome.tabs.onUpdated.addListener((_tabId, changeInfo, tab) => { // Only care about URL changes on the active tab if (changeInfo.url && tab.active && tab.url) { - handleTabNavigation(tab.url, tab.title || "Untitled", tab.favIconUrl, tab.index); + currentTabUrl = tab.url; + currentTabIndex = tab.index; } }); @@ -310,25 +311,11 @@ chrome.tabs.onUpdated.addListener((_tabId, changeInfo, tab) => { chrome.tabs.onActivated.addListener(async (activeInfo) => { const tab = await chrome.tabs.get(activeInfo.tabId); if (tab.url) { - handleTabNavigation(tab.url, tab.title || "Untitled", tab.favIconUrl, tab.index); + currentTabUrl = tab.url; + currentTabIndex = tab.index; } }); -function handleTabNavigation(url: string, title: string, favicon?: string, tabIndex?: number) { - // Update current tab tracking - const urlChanged = currentTabUrl !== url; - const tabChanged = currentTabIndex !== tabIndex; - - currentTabUrl = url; - currentTabIndex = tabIndex; - - // Only insert navigation message if something changed and we have an agent - if ((urlChanged || tabChanged) && agent) { - const navMessage = createNavigationMessage(url, title, favicon, tabIndex); - agent.appendMessage(navMessage); - } -} - // ============================================================================ // INIT // ============================================================================