dsh-session-diff:DeepSeek Harness 右侧边栏的会话级差异视图

前言

在 DeepSeek Harness (DSH) Web 界面中,当使用 write 或 edit 工具时,文件通常会以普通文本形式打开。如果希望直观地看到当前对话对文件的具体修改(如新增或删除的行),默认视图往往不够直观。这需要一种能自动识别会话变更并提供 git 风格差异展示的方案。

这是什么

dsh-session-diff 是一个由 2002XiaoYu 维护的客户端插件。它的核心功能是在 DSH Web 右侧边栏提供会话作用域的 git 风格差异装饰。它解决了在对话过程中无法快速查看代码变更细节的问题,将原本普通的文本查看器转变为带有高亮标记的代码差异视图。

核心功能

插件提供以下核心能力:

  • 装饰的文件视图:在右侧侧边栏渲染带 git 风格高亮(添加/删除行背景、+/− 标记)和语法高亮的文件。
  • 会话变更页面:列出当前对话更改的所有文件及其变更统计(+/− 计数和目录)。
  • 实时更新:每次新编辑都会重新读取文件并重新计算差异。
  • 未触及文件保持出厂行为:未更改的文件仍使用原有的文本查看器,不影响其他文档(如图片、PDF)的渲染。
  • 无宿主行为:插件不运行 shell、git 或直接接触文件系统,仅通过 DSH 的 workspaceFiles 远程获取内容。
  • 支持常见语言的手写分词器:内置了对多种主流编程语言的语法高亮支持。

安装与启用

由于目前没有 npm 发布,需通过仓库安装。安装或升级后必须重启 dsh web 并刷新浏览器。

dsh plugin --profile web add github:2002XiaoYu/dsh-session-diff

典型用法

  1. 打开当前对话中更改的文件,侧边栏会显示 git 风格的差异视图。
  2. 点击会话变更页面中的条目打开装饰视图。
  3. 使用头部按钮切换“仅变更”和“整个文件”视图,或重新读取文件。

适用场景与注意

  • 仅限当前对话:仅显示当前对话的变更,不显示其他对话或手动编辑的变更。
  • 长对话限制:在长对话中,最早的变更条目可能会丢失,因为列表是基于客户端保留的对话窗口计算的。
  • 文件读取上限:文件读取上限为 20,000 行。
  • 路径匹配:分片路径通过后缀匹配地址路径,错误的匹配无法通过。
  • 错误处理:重写的文件条目会被标记为未定位;删除的文件报告读取失败而不是崩溃。
  • 语言支持:分词器支持 Dart, JS/TS, JSON, YAML, Python, shell, CSS, HTML/XML, Markdown, SQL, Java/Kotlin/Swift/C-family, Go, Rust, PHP。不支持的文件后缀渲染无颜色。

总结

对于需要在 DSH Web 界面中快速审查代码变更的开发者,dsh-session-diff 提供了一个轻量级且无侵入性的解决方案。它通过侧边栏装饰和会话变更列表,将 git 风格的差异视图无缝集成到对话流中。

GitHub 仓库 | 插件目录

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

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

小夜