问题描述 / Problem
CC Switch 的「会话管理(Session Manager)」无法显示 Hermes Agent CN 版本 的会话记录。会话列表为空,但实际存在 13 条会话。
The Session Manager in CC Switch shows no sessions for the Hermes Agent CN edition, even though 13 sessions actually exist on disk.
环境信息 / Environment
| 项 / Item |
值 / Value |
| CC Switch |
3.16.3 |
| Hermes Agent |
CN 版本,runtime 0.17.0-cn.1,kernel 0.17.0,source repo Eynzof/Hermes-CN-Core |
| OS |
Windows 10 (10.0.19045 x64) |
HERMES_HOME env |
D:\CodeSoftWare\Hermes(指向安装目录,非数据目录) |
根因分析 / Root Cause
CC Switch 已经原生支持 Hermes 的 SQLite 会话库(在 hermesConfigDir 指向的目录下读取 state.db,反编译 exe 可见相关 SQL 与路径校验逻辑:SQLite path does not match expected Hermes database、Failed to canonicalize Hermes database path)。
但 CN 版 Hermes 的数据存储位置与官方版完全不同,导致 CC Switch 定位失败:
|
官方版 Hermes(CC Switch 预期)/ Official |
CN 版(实际)/ CN edition (actual) |
| state.db 路径 / path |
~/.hermes/state.db |
%APPDATA%\cn.org.hermesagent.desktop\runtime\hermes-home\state.db |
即在 Windows 上,CN 版的真实数据库位于:
C:\Users\<user>\AppData\Roaming\cn.org.hermesagent.desktop\runtime\hermes-home\state.db
(来自 runtime/current.json 的 runtime 安装目录 + 固定的 hermes-home\state.db 子结构。)
并且:
~/.hermes 虽然存在,但只含 architecture / config.yaml / memories / plugins / skills,没有 state.db,所以 CC Switch 在默认位置找不到任何会话。
HERMES_HOME 环境变量被设为安装目录 D:\CodeSoftWare\Hermes(而非数据目录),若 CC Switch 跟随该变量定位,同样无法命中 state.db。
该 state.db 是合法的 Hermes 数据库(表结构 sessions / messages / messages_fts 等齐全,13 条会话、消息完整)。CC Switch 读取逻辑本身没问题,只是探测路径不覆盖 CN 版的固定数据目录。
数据库验证 / DB Verification
只读模式确认数据库完好:
sessions 表: 13 行
messages 表: 存在
messages_fts / messages_fts_trigram: 存在
session 示例 id: 20260624_214946_dcd371 (source=tui, model=deepseek-v4-pro)
期望 / Expected Behavior
希望 CC Switch 在定位 Hermes 数据库时,除现有的 ~/.hermes 与 HERMES_HOME 探测外,额外识别 CN 版的固定数据路径:
Windows: %APPDATA%\cn.org.hermesagent.desktop\runtime\hermes-home\state.db
macOS: ~/Library/Application Support/cn.org.hermesagent.desktop/runtime/hermes-home/state.db
Linux: ~/.config/cn.org.hermesagent.desktop/runtime/hermes-home/state.db (或 $XDG_CONFIG_HOME 下)
判定 CN 版的依据:存在 %APPDATA%\cn.org.hermesagent.desktop\runtime\current.json,且其 runtimeFlavor == "cn"、runtimeVersion 形如 x.y.z-cn.N。
临时变通 / Workaround(已尝试)
- CC Switch 设置中未找到可自定义
hermesConfigDir(Hermes 数据目录)的 UI 入口,因此用户侧无法手动指向正确的数据目录。
- 期望通过此 issue 推动:(1) 自动探测 CN 版路径;或 (2) 在设置中暴露
hermesConfigDir 自定义入口,允许用户手动指定 …\runtime\hermes-home。
相关 / Related
感谢!/ Thanks!
问题描述 / Problem
CC Switch 的「会话管理(Session Manager)」无法显示 Hermes Agent CN 版本 的会话记录。会话列表为空,但实际存在 13 条会话。
The Session Manager in CC Switch shows no sessions for the Hermes Agent CN edition, even though 13 sessions actually exist on disk.
环境信息 / Environment
0.17.0-cn.1,kernel0.17.0,source repoEynzof/Hermes-CN-CoreHERMES_HOMEenvD:\CodeSoftWare\Hermes(指向安装目录,非数据目录)根因分析 / Root Cause
CC Switch 已经原生支持 Hermes 的 SQLite 会话库(在
hermesConfigDir指向的目录下读取state.db,反编译 exe 可见相关 SQL 与路径校验逻辑:SQLite path does not match expected Hermes database、Failed to canonicalize Hermes database path)。但 CN 版 Hermes 的数据存储位置与官方版完全不同,导致 CC Switch 定位失败:
~/.hermes/state.db%APPDATA%\cn.org.hermesagent.desktop\runtime\hermes-home\state.db即在 Windows 上,CN 版的真实数据库位于:
(来自
runtime/current.json的 runtime 安装目录 + 固定的hermes-home\state.db子结构。)并且:
~/.hermes虽然存在,但只含architecture / config.yaml / memories / plugins / skills,没有state.db,所以 CC Switch 在默认位置找不到任何会话。HERMES_HOME环境变量被设为安装目录D:\CodeSoftWare\Hermes(而非数据目录),若 CC Switch 跟随该变量定位,同样无法命中state.db。该
state.db是合法的 Hermes 数据库(表结构sessions/messages/messages_fts等齐全,13 条会话、消息完整)。CC Switch 读取逻辑本身没问题,只是探测路径不覆盖 CN 版的固定数据目录。数据库验证 / DB Verification
只读模式确认数据库完好:
期望 / Expected Behavior
希望 CC Switch 在定位 Hermes 数据库时,除现有的
~/.hermes与HERMES_HOME探测外,额外识别 CN 版的固定数据路径:判定 CN 版的依据:存在
%APPDATA%\cn.org.hermesagent.desktop\runtime\current.json,且其runtimeFlavor == "cn"、runtimeVersion形如x.y.z-cn.N。临时变通 / Workaround(已尝试)
hermesConfigDir(Hermes 数据目录)的 UI 入口,因此用户侧无法手动指向正确的数据目录。hermesConfigDir自定义入口,允许用户手动指定…\runtime\hermes-home。相关 / Related
感谢!/ Thanks!