dsh-history-viewer:在 DSH Web 里本地浏览、检索并导出会话历史

前言

用 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜