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.
2 KiB
2 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 表达式保持不变。 - 辅助工具不会操作文件系统:调用方仍负责目录创建、存在性检查、权限,以及对结果路径应用信任策略。