From 038339f2fea600a690a68dc8e914648d8dbf4728 Mon Sep 17 00:00:00 2001 From: Rick Ye Date: Fri, 11 Sep 2026 16:25:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(browser):=20Agent=20=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E5=B7=A5=E5=85=B7=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E9=9D=A2=E6=9D=BF=20+=20=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=8C=BA=E8=AE=A9=E5=87=BA=E6=8B=96=E6=8B=BD=E6=8A=8A=E6=89=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/desktop/src/renderer/src/App.tsx | 26 +++++++++++++++++++ .../src/components/browser/BrowserPanel.tsx | 5 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/renderer/src/App.tsx b/apps/desktop/src/renderer/src/App.tsx index 89f316c..b81188e 100644 --- a/apps/desktop/src/renderer/src/App.tsx +++ b/apps/desktop/src/renderer/src/App.tsx @@ -329,6 +329,32 @@ export default function App(): JSX.Element { // 浏览器插件(内置):面板 tab 按其启用态门控(禁用后 tab 与可开列表同步消失) const browserEnabled = plugins.find((p) => p.manifest.id === 'browser')?.enabled ?? true + // Agent 调用浏览器工具 → 自动展开侧面板并激活浏览器标签。 + // 每回合(agent_start)只强制一次:回合中用户手动收起面板不被反复顶开。 + const browserAutoOpenedRef = useRef(false) + useEffect(() => { + return window.api.onEvent((event) => { + if (event.type === 'agent_start') { + browserAutoOpenedRef.current = false + return + } + if ( + event.type === 'tool_start' && + event.toolName.startsWith('browser_') && + !browserAutoOpenedRef.current && + browserEnabled + ) { + browserAutoOpenedRef.current = true + setSide((s) => ({ + ...s, + open: true, + tabs: s.tabs.includes('browser') ? s.tabs : [...s.tabs, 'browser'], + active: 'browser' + })) + } + }) + }, [browserEnabled]) + // 面板标签:browser(宿主内置组件)+ manifest 声明 panel 的外置插件(iframe 页) const panelTabs = sideTabIds.flatMap((id) => { if (id === 'browser') { diff --git a/apps/desktop/src/renderer/src/components/browser/BrowserPanel.tsx b/apps/desktop/src/renderer/src/components/browser/BrowserPanel.tsx index 8ea8e9a..fbfd71d 100644 --- a/apps/desktop/src/renderer/src/components/browser/BrowserPanel.tsx +++ b/apps/desktop/src/renderer/src/components/browser/BrowserPanel.tsx @@ -384,8 +384,9 @@ export function BrowserPanel(props: BrowserPanelProps): JSX.Element { )} {/* 页面区域:原生 WebContentsView 对齐到这里的矩形。 - * 让位期(菜单/浮层打开)以冻结快照占位,快照未就绪时短暂纯白 */} -
+ * 让位期(菜单/浮层打开)以冻结快照占位,快照未就绪时短暂纯白。 + * 左内缩 4px:原生视图盖住一切 DOM,必须让出侧面板左缘的拖拽把手 */} +
{activeTab && !slotHidden ? ( ) : activeTab ? (