dsh-session-norms:统一格式的会话规范视图与 Markdown 排版

前言

在 DeepSeek Harness(DSH)里排查一轮对话,往往要在「对话」页里上下滚动,工具调用的参数和结果又散落在不同 UI 区块里;要把整段记录贴进文档或 Issue,还得手工拼接。社区插件 @tinyforge/dsh-session-norms(仓库 phoenixlucky/dsh-session-norms)在会话上方增加「规范视图」标签页,按轮次汇总用户消息、助手回复与工具调用,并提供整份记录的 Markdown 复制;同时在「对话」页注入排版规则,让标题、列表、代码块与表格在同一套观感下阅读,并为已定稿的助手回复增加「复制为 Markdown」。下面介绍它的定位、能力与安装用法。

这是什么

dsh-session-norms 是 DSH 的客户端插件:维护者为 phoenixlucky,npm 包名为 @tinyforge/dsh-session-norms,当前版本 1.3.1,MIT 许可证。它在不改变会话数据的前提下,把当前 Session 的事件流整理成可读的规范化 transcript,并在浏览器侧注册 conversation.view 的 norms 视图;README 英文摘要为:在统一、可复制的格式中渲染每一轮、每条消息与每次工具调用。

核心功能

规范视图标签页

宿主侧(index.js)监听已提交的会话事件(如 turn/start、user/message、assistant/message、tool/call、tool/result、turn/end),折叠成规范化记录,经会话投影 sessionNorms 发给界面。浏览器侧(client.js)注册「规范视图」:

  1. 顶部展示轮次、消息、工具调用、错误数量等汇总。
  2. 正文按「第 N 轮」分组,逐条显示用户消息、助手回复与工具调用(名称、参数、结果状态、时间)。
  3. 超长消息与工具结果默认折叠,可点「展开全文」;点「复制 Markdown」导出与视图一致的整份 Markdown。

视图是只读的:不写入会话事件。汇总随回合推进增量刷新。为控制体量,最多保留最近 200 行,单条消息文本最多 3000 字符,超出时在视图底部提示。

对话页 Markdown 排版

插件不接管 Markdown 渲染器(不注册 conversation.chat.node 的 keyed cell),仅注入样式,作用域为 Markdown 根节点的 CSS Modules 类;颜色取自 --dsw-alias-* 主题变量,深浅色与界面语言(中文 / English)随主题与 locale 切换。

  • 标题层级、段落与列表、代码块、引用按统一规则呈现。
  • 表格铺满阅读列并与正文、输入框同宽;表头与隔行使用浅层底色,单元格可换行。列宽合计超过阅读列时,横向滚动限制在表格容器内,避免整页出现横向滚动条。
  • 三列及以上表格:脚本按实际布局宽度判断;放不下或阅读列窄于 600px 时,将表头写入单元格的 data-sn-label,切成「标签 + 值」卡片,不再依赖宽表横向滚动。

单条助手回复复制

在 conversation.chat.assistant-actions 中追加图标按钮「复制为 Markdown」:从 useChat 读取该条已定稿回复的文本块,原样写入剪贴板(表格、列表、代码块、引用保持源码形态)。流式输出或中断内容没有 messageId,不显示该按钮。

安装与启用

从 npm 安装。在 DSH 插件页「添加插件」中输入包名,或执行:

dsh plugin --profile desktop add @tinyforge/dsh-session-norms

旧的无作用域包 dsh-session-norms 已弃用,请改用 @tinyforge/dsh-session-norms。

装好后重启 DSH,会话上方视图标签栏会出现「规范视图」。

固定版本或本地开发安装仍可用,但不参与在线更新(见下一节):

dsh plugin --profile desktop add git+https://github.com/phoenixlucky/dsh-session-norms.git#v1.3.1

更新

仅 npm 注册表安装可在插件详情页的「版本」区块点「更新到 x.y.z」;工具栏「刷新」会重新检查新版本。Git 或本地路径安装的包不显示该区块,需先 remove 再按固定版本 add。

卸载

在「插件」页面停用并卸载 @tinyforge/dsh-session-norms,规范视图标签页会一并消失。

典型用法

  1. 打开任意会话,点会话上方的 规范视图。
  2. 查看按轮次分组的完整 transcript;需要归档或贴文档时,使用顶部的 复制 Markdown。
  3. 日常仍在 对话 页交流即可——排版规则在插件挂载后自动生效;某条助手回复定稿后,在操作行点 复制为 Markdown 取单条源码。

适用场景与注意

适合:需要可读、可导出的会话全貌(含工具调用细节);希望在对话页统一 Markdown 与表格阅读体验、减少宽表撑破布局的开发者。

兼容性:README 写明已在 DSH 0.2.2-alpha.2 上验证;package.json 中 engines.dsh 为 >=0.2.2-alpha.2 <0.3.0-0,其他版本未验证。

安全与权限:DSH 插件在当前 DSH 进程权限下运行。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。社区目录 skillhub.cn 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系。

结尾

@tinyforge/dsh-session-norms 把「看全会话」和「导出 Markdown」收到一个规范视图里,并在对话页补齐排版与单条复制,对调试智能体、写技术记录较省事。目录页:https://www.skillhub.cn/plugins/phoenixlucky/dsh-session-norms;源码与完整说明:https://github.com/phoenixlucky/dsh-session-norms。

羽毛球分组比赛记分
小程序二维码

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

小夜