前言¶
用 DeepSeek Harness(DSH)做智能体或日常对话开发时,会话会落在本机 sessions 目录下的压缩 JSONL 日志里。想回顾某次对话、在项目里搜一句说过的话,或把一段上下文导出成 Markdown,若只能直接翻原始日志,成本很高。社区里一些官方历史类插件在 DSH 0.2.x 上因 peer 依赖范围不匹配,启动时可能被拒绝加载。
dsh-history-viewer(维护者 xiao0xueAI,社区目录分类为「记忆」)走另一条路:不依赖第三方历史插件,直接只读本机 DSH 会话文件,在 Web 侧栏提供检索、渲染阅读与导出。数据不上传,索引与配置写在本地缓存目录。
这是什么¶
一句话:DSH 会话历史查看器——项目内全文检索、按 DSH 界面风格渲染 Markdown、一键导出对话;离线、零额外依赖(相对「再装一套历史服务」而言)。
- 仓库:xiao0xueAI/dsh-history-viewer
- 社区目录:SkillHub 插件页
- 当前 npm 包版本(资料中的
package.json):1.0.4,许可证 MIT - 运行要求:Node >= 22.15;DSH 引擎声明为 >= 0.1.7-rc.2(
peerDependencies覆盖 0.1.7-rc.2 与 0.2.x 若干 rc/alpha 线)
读取的数据源主要是 ~/.dsh/sessions/**/session.v*.jsonl.zstd,项目归属参考 DSH 的 storages/workspace.json,因此改过工作区名或搬过目录仍可按项目归类。
核心功能¶
下面能力均来自项目 README,安装后需在 web profile 使用。
入口与布局
- 侧栏底部有时钟入口,点开在应用内浮层查看;浮层支持「在新标签页打开」,便于长时间翻阅。
- 左栏:搜索框、项目(工作区)下拉、内容范围(只看对话 / 含工具 / 全部)、固定会话筛选、会话列表。
- 右栏:会话标题与路径、正文或搜索结果、导出与分页。
按项目过滤与固定会话
- 项目名来自 DSH 自身的工作区存储,不是简单猜目录名。
- 可对常用会话点固定;支持「只看固定的 N 个」与「本项目全部」切换,固定状态按项目分别记录。
检索与阅读
- 项目内全文检索:结果按会话分组,带上下文、关键词高亮;点一条可跳到原文对应消息并闪烁定位。
- 可调整每个会话显示的命中条数(8 / 20 / 50 / 全部)。
- 正文与搜索卡片按 DSH 界面方式渲染 Markdown(标题、表格、代码块、粗体等),不展示原始 markup 符号。
- 长会话分页(更早 / 更晚),避免一次加载过大体积。
导出与缓存
- 「导出这段对话」按当前项目、固定筛选与内容范围下载 Markdown。
- 索引缓存在
~/.dsh/dsh-history-viewer/,过期后后台重建;新消息可能有短暂延迟(默认约 5 分钟冷却后再刷新索引)。
安全与隐私(插件自述)
- 只读
<DSH_HOME>/sessions(默认~/.dsh/sessions)与storages/workspace.json;写入仅限插件缓存目录。 - API 仅服务本机:回环地址、Host 白名单、同源校验与运行期随机令牌(
/api/*需x-hv-token);不做外网请求。 - 环境变量:
DSH_HOME指定 DSH 数据根目录;DSH_HISTORY_VIEWER_DIR指定缓存目录。
安装与启用¶
在任意 profile 下添加插件(web 端使用需带 --profile web):
dsh plugin --profile web add dsh-history-viewer
若本机 npm 源为只读镜像且装不到最新版,可临时指定官方源(README 原文):
npm_config_registry=https://registry.npmjs.org dsh plugin --profile web add dsh-history-viewer
本地开发可从目录链接安装:
dsh plugin --profile web add link:/path/to/dsh-history-viewer
装完后重启一次 dsh web,再刷新浏览器页面。Host 半体可能热加载,但浏览器端模块清单在启动时组装;未重启时侧栏底部可能看不到入口。
典型用法¶
1. 打开历史
刷新页面后,在左侧栏最底部点历史入口 → 应用内浮层打开完整界面;需要全屏或长时间阅读时用「在新标签页打开」。
2. 只盯一个会话
鼠标移到左栏某会话,点固定 → 顶部变为「只看固定的 1 个」类按钮;再点可在「只看固定的」与「本项目全部」之间切换。
3. 在项目里找一句话
搜索框输入关键词并回车 → 右栏按会话列出命中 → 点任意命中跳到原文。需要看工具调用或思考过程时,把范围切到「含工具」或「全部」。
4. 导出 Markdown
在右栏右上角使用「导出这段对话」,导出内容受当前项目、固定筛选与范围设置约束。
常见问题(README 摘要)
| 现象 | 处理 |
|---|---|
| 侧栏无入口 | 安装后重启 dsh web 再刷新 |
| 首次打开卡顿数秒 | 首次在 worker 中建索引,之后复用缓存 |
| 列表为空 | 检查是否只看了固定会话且会话不在当前项目,或切到「全部项目」 |
README 还提到独立命令行版本(不依赖 DSH 进程),适合分享给不装插件的用户;插件版则随 DSH Web 一起启动,无需另开服务。
适用场景与注意¶
适合谁
- 已在 DSH 0.2.x 或 README 列出的 peer 范围内运行,且需要在本机回顾、搜索、导出历史会话的开发者。
- 希望历史能力不绑死在易随 DSH 版本漂移的第三方历史插件上的人。
使用前请知悉
- 插件以当前 DSH 进程权限读写本机会话目录与缓存;安装前建议在 GitHub 查看源码与 MIT 许可证,确认符合你的安全策略。
- 索引是快照:刚产生的消息可能要等后台重建后再出现在检索里;检索展示对超长内容有截断,完整内容仍以原始日志为准。
- 社区目录 SkillHub 是独立站点,与 DeepSeek / 幻方无官方从属关系;插件由社区维护者发布,非 DSH 内置组件。
结尾¶
dsh-history-viewer 把 DSH 会话日志变成可检索、可渲染、可导出的本地资源,安装命令明确、界面集成在 Web 侧栏。若你需要在 Harness 生态里补齐「记忆」类能力,可从社区目录或 GitHub 获取包信息与更新说明:
- 目录页:https://www.skillhub.cn/plugins/xiao0xueAI/dsh-history-viewer
- 仓库:https://github.com/xiao0xueAI/dsh-history-viewer