dsh-plugin-html-report: Render DSH Session Transcripts as Self-Contained HTML Reports

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

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

Xiaoye