DSH(DeepSeek Harness)会将会话记录为 JSONL 边车文件。这些文件结构紧凑,但难以直接向他人展示或阅读。dsh-plugin-html-report 插件读取这些 JSONL 文件,生成一份自包含的 HTML 报告。接收方无需安装 DSH 或任何工具,直接在浏览器打开即可查看会话详情。
核心功能¶
该插件将 JSONL 转录渲染为单文件 HTML,包含以下特性:
- 自包含输出:生成单文件、内联样式、零外链的 HTML。文件可直接双击打开,适配离线、内网或邮件附件场景。
- 数据源对接:读取
dsh-plugin-transcript产生的 JSONL 边车文件。 - 会话选择:支持按最后活跃时间、会话 ID 前缀进行筛选。
- 信息压缩与统计:
- 顶部展示条数、用户、助手、工具调用次数及字符数统计。
- 工具调用结果被压缩为一行
chip,正文内容截断至 300 字符,避免工具返回的长文本影响阅读。
- 安全与转义:所有文本内容进行 HTML 转义,防止脚本注入(如
<img onerror=...>)。
安装与配置¶
安装需要 pnpm 在系统 PATH 上。执行以下命令将插件添加到 web profile:
dsh plugin --profile web add github:121212165/dsh-plugin-html-report
添加后,需要手动配置 cordis.patch.yml。将仓库根目录的 cordis.patch.yml 内容合并到 $DSH_HOME/profiles/web/cordis.patch.yml 中(注意不要直接追加,以免形成两个 YAML 文档导致解析失败)。
配置完成后,必须重启 DSH 才能使新配置生效。
使用方法¶
在 DSH 中发送以下命令以生成报告:
/report:渲染最近活跃的那一个会话。/report <sessionId 前缀>:渲染匹配前缀的会话(session-前缀带不带均可)。/report all:渲染全部会话,按最后活跃时间倒序排列。
技术细节与注意事项¶
- 文件名规则:输出文件名通过截取
sessionId去掉session-前缀后的前 12 字符生成。 - 输入文件格式:仅读取命名格式为
transcript-YYYY-MM.l的文件。 - 错误处理:遇到损坏的行会跳过并计数,源文件不会被改写。
- 测试覆盖:插件包含纯函数测试,覆盖转义、自包含检查、会话选择等逻辑。
相关链接¶
- 目录页:https://www.skillhub.cn/plugins/121212165/dsh-plugin-html-report
- GitHub 仓库:https://github.com/121212165/dsh-plugin-html-report