From cc19a07999b4f8e3bbf7cd5d82e6867841677680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=B4=E5=A4=A9?= Date: Thu, 14 May 2026 05:53:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(hermes):=20sidebar=20=E7=BC=BA=E5=A4=B1=20g?= =?UTF-8?q?roup-chat=20/=20files=20=E5=85=A5=E5=8F=A3=20+=20=E8=A1=A5=20fo?= =?UTF-8?q?lder=20=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 复查发现 2 个真 bug:路由注册了但 sidebar 没入口,用户点不到。 ## §N 群聊 - sidebar 缺入口 - /h/group-chat 已注册路由(debce2f),但 sidebar monitor section 没加 - 修复:紧跟 /h/chat 之后插入「群聊」(agents 图标) ## §L 文件管理器 - sidebar 缺入口 - /h/files 已注册路由(129d8c0),但 sidebar manage section 没加 - 修复:紧跟 /h/oauth 之后插入「文件管理器」(folder 图标) ## sidebar.js 补 folder 图标 - ICONS 表里没有 'folder',导致 /h/files sidebar 项无图标(fallback 到空字符串) - 加进去(24x24 viewBox 的标准 folder svg) ## 复查覆盖 ✓ 61 个 hermes_* Tauri 命令全部在 lib.rs invoke_handler 注册 ✓ 63 个 invoke('hermes_*') 调用在 dev-api.js 都有 fallback (除 hermes_agent_run_stream 走 webStream) ✓ 6 个新页面所有 t('engine.*') 键在 engine.js 都有定义(含 zh-CN/en/zh-TW 三语) ✓ 19 个 Hermes 页面文件齐备(最大 chat.js 1626 行,最小 channels.js 占位 17 行) ✓ cargo check 干净(仅 1 个 unused field 警告,不影响) ✓ npm build ✓ --- src/components/sidebar.js | 1 + src/engines/hermes/index.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/components/sidebar.js b/src/components/sidebar.js index 5cab7ee..955604f 100644 --- a/src/components/sidebar.js +++ b/src/components/sidebar.js @@ -111,6 +111,7 @@ const ICONS = { gateway: '', memory: '', inbox: '', + folder: '', extensions: '', package: '', about: '', diff --git a/src/engines/hermes/index.js b/src/engines/hermes/index.js index 3ce6c7a..7a0bf10 100644 --- a/src/engines/hermes/index.js +++ b/src/engines/hermes/index.js @@ -76,6 +76,7 @@ export default { items: [ { route: '/h/dashboard', label: t('sidebar.dashboard'), icon: 'dashboard' }, { route: '/h/chat', label: t('sidebar.chat'), icon: 'chat' }, + { route: '/h/group-chat', label: t('engine.hermesGroupChatTitle'), icon: 'agents' }, { route: '/h/sessions', label: t('sidebar.sessions'), icon: 'inbox' }, { route: '/h/logs', label: t('sidebar.logs'), icon: 'logs' }, { route: '/h/usage', label: t('sidebar.usage'), icon: 'bar-chart' }, @@ -90,6 +91,7 @@ export default { { route: '/h/gateways', label: t('engine.hermesGatewaysTitle'), icon: 'gateway' }, { route: '/h/kanban', label: t('engine.hermesKanbanTitle'), icon: 'inbox' }, { route: '/h/oauth', label: t('engine.hermesOAuthTitle'), icon: 'memory' }, + { route: '/h/files', label: t('engine.hermesFilesTitle'), icon: 'folder' }, { route: '/h/lazy-deps', label: t('hermesLazyDeps.title'), icon: 'package' }, { route: '/h/extensions', label: t('sidebar.extensions'), icon: 'package' }, ]