DSH Toolbox

@deepseek-ai/dsh-session

@deepseek-ai/dsh-session 是 dsh 的一个能力 seam:事件溯源的会话存储。会话以事件追加写入,所以会话文件是逐帧变大的,而不是整份重写。

这个包发布在 npm 上,当前版本 0.0.1-rc.1,安装位置是 $DSH_HOME/profiles/<名字> 的依赖列表。

安装

插件管理会把参数转发给 profile 目录里的 pnpm,这条命令的行为和 pnpm add 一致。

dsh plugin --profile web add @deepseek-ai/dsh-session

它在 profile 里做什么

事件溯源的会话存储。会话以事件追加写入,所以会话文件是逐帧变大的,而不是整份重写。当前版本 0.0.1-rc.1。想知道它是否已经在你的 profile 里,看 $DSH_HOME/profiles/<名字>/package.json 的依赖,或用 --dump-config 读合成后的树。

什么时候你需要关注这个包

症状是列表里有个会话 id 打不开,或者你看到的对话跟日志对不上。SessionStore(ctx 键 sessions)是追加写的唯一事实来源,模型的对话历史是从它推导出来的——对不上是推导问题,不是文件丢了。

移除或换掉它,什么会坏

没有它就没有追加日志:压缩没有 surface 可投影,也没有东西被持久化。这个包还带着把记录写成磁盘行的 chunk-row 编解码器,以及读回来时用的无损 JSON 工具。

容易被混淆的那个包

它不是 dsh-workspace。工作区注册表负责列表和挂载记录,会话存储负责事件。一个会话可以只有事件、不出现在工作区列表里——会话索引体检报的就是这个状态。

常见问题

装错了怎么卸掉?

用 dsh plugin --profile <名字> remove @deepseek-ai/dsh-session,和装的时候对称。

版本不匹配会怎样?

插件通过 engines.dsh 或 DSH 的 peer 依赖声明兼容区间。不在区间内时命令行会跳过它并打印要求,而不是启动一个可能崩的组合。