DeepSeek Harness 插件:dsh-changes-panel

在 DeepSeek Harness(DSH)的 Web 界面调试智能体时,Agent 通过 edit 或 write 工具对文件进行修改。当对话变得冗长,很难在聊天流中追踪具体的代码变更,误操作的风险也随之增加。dsh-changes-panel 是一个用于解决这一问题的插件,它在会话界面内部提供一个实时展示文件变更的面板。

核心功能

入口与布局
面板入口位于会话标签栏的 diff 标签,该标签带有改动数量角标。面板位于会话界面内部,紧贴 header 右侧,打开时聊天区整体左移(对 [data-conversation-scroll] 增加 margin-right),header 与标签栏保持不动。面板不独立成框架级列,不遮挡 header。

调整宽度
面板左缘支持拖拽调整宽度,范围在 220–640px 之间,始终给聊天区预留 ≥320px 宽度。宽度在会话切换间保留。

自动展开逻辑
面板默认收起。仅在会话工作集由空转非空(出现真正改动)时自动展开;改动清零后自动收起。新建会话、切换会话、刷新页面、用户提问都不会触发展开。手动关闭后,改动清零前保持关闭。工作区内/工作区外两个分区按改动自动展开/收起。

文件列表与 Diff
文件行默认列出 A/M 状态、路径(相对/绝对)及 +N -M 统计。A 表示本会话新增,M 表示已存在文件被修改。点击文件可展开 diff 详情,支持上下文行滑动。Diff 展示采用官方代码字体,+ 为绿色,- 为红色。单文件支持「全屏」查看。

操作与基线更新
底部操作条支持勾选文件后进行「采纳」(仅从面板移除)或「回退」(把基线内容写回磁盘)。两个分区标签行带全选勾选框(已全选时点击即取消,分区为空时禁用)。条目被采纳或回退后,该文件的下一次改动会以当前状态为新基线重新展示 diff。

工作集隔离
工作集按顶层会话一一对应,子代理的改动归属于其父会话。会话删除时清理。

主题适配
深色主题使用官方 --dsw-alias-* token,自动跟随亮/暗主题。

安装与启用

  1. 进入插件目录,安装依赖并构建:
    pnpm install
    pnpm build
  1. 在当前 DSH Profile 的 package.json 中添加依赖项:
    "@dsh-external/dsh-client-changes-panel": "link:<本目录的绝对路径>"
  1. 重新安装依赖并重启 dsh web 即可生效。

典型用法

  • 点击会话标签栏的 diff 标签打开面板。
  • 点击文件条目展开 diff 详情。
  • 勾选文件后使用底部操作条进行「采纳」或「回退」。
  • 工作集按顶层会话对应,子代理的改动归属父会话。

注意事项

  • 删除状态:本插件首版不追踪删除(D),仅支持新增(A)和修改(M)。
  • 持久化:工作集目前在 host 内存中,刷新页面不丢,重启 dsh web 清空。
  • 新增回退:回退新增文件目前只把基线(空内容)写回,留下空文件而非删除文件。
  • 宽度持久化:拖拽宽度目前仅保留在页面生命周期内。

短结尾

该插件通过 git 风格的 diff 展示和会话内操作,帮助开发者清晰地管理 Agent 对文件的修改,避免误操作。插件地址:GitHub

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

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

小夜