Files
deepseek-harness/packages/util/paths/README.zh.md
T
Turtle 42e3cceb64 feat(paths): add resolveSessionsRoot as the one shared session-store root
Every surface that persists or lists sessions resolves one directory under
the Harness home, so history is shared across working directories instead
of scattered per project.
2026-07-29 21:14:49 +08:00

2.0 KiB

dsh-paths

English | 中文

DeepSeek Harness 用户数据的共享文件系统路径辅助工具。

DSH 主目录

resolveDshHome() 解析 DeepSeek Harness 的单根主目录。优先级从高到低为:显式配置的路径、$DSH_HOME~/.dsh。harness 将所有用户数据保存在同一根目录下。

dshHomeDisplay() 以符号方式表示当前根目录,用于面向用户的路径:默认主目录表示为 ~/.dsh,任何已配置的主目录表示为 $DSH_HOME。它绝不会泄露机器的绝对路径。

DSH_HOME_DIR_NAME 定义默认用户数据目录名:.dsh

defaultDshHome() 使用 Node 的平台路径规则,将操作系统主目录与 .dsh 拼接,并返回默认 DeepSeek Harness 主目录。

expandHomePath() 使用操作系统主目录展开 ~~/... 和 Windows 风格的 ~\... 前缀。它会保留非波浪号路径和 ~user/... 原样不变。

会话存储

resolveSessionsRoot() 按与 resolveDshHome() 相同的优先级,解析 Harness 主目录下的共享会话存储根目录。SESSIONS_DIR_NAME 定义其目录名:sessions。每个持久化会话的界面都解析这同一个目录,因此历史记录在各工作目录之间共享,而不是按项目分散;持久化后端仍可在其内部分区。若两个界面解析出不同的根目录,会静默地把同一用户的历史记录拆成互不相交的存储,这正是该位置由此处拥有、而非由各调用方自行拼接的原因。

该包刻意保持规模小且不依赖 harness,以便产品包共享用户数据路径约定,而不必彼此依赖。

已知限制与待完成工作

  • 展开范围刻意保持狭窄:只有单独的 ~~/...~\... 使用当前操作系统主目录;~alice/... 等指定用户的形式、环境变量和 shell 表达式保持不变。
  • 辅助工具不会操作文件系统:调用方仍负责目录创建、存在性检查、权限,以及对结果路径应用信任策略。