Skip to content

[bug] Session Manager 无法读取 Hermes Agent CN 版本的会话(state.db 路径不匹配) #4648

Description

@zql-123456-bit

问题描述 / 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 databaseFailed 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 数据库时,除现有的 ~/.hermesHERMES_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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions