在 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,自动跟随亮/暗主题。
安装与启用¶
- 进入插件目录,安装依赖并构建:
pnpm install
pnpm build
- 在当前 DSH Profile 的
package.json中添加依赖项:
"@dsh-external/dsh-client-changes-panel": "link:<本目录的绝对路径>"
- 重新安装依赖并重启
dsh web即可生效。
典型用法¶
- 点击会话标签栏的
diff标签打开面板。 - 点击文件条目展开 diff 详情。
- 勾选文件后使用底部操作条进行「采纳」或「回退」。
- 工作集按顶层会话对应,子代理的改动归属父会话。
注意事项¶
- 删除状态:本插件首版不追踪删除(D),仅支持新增(A)和修改(M)。
- 持久化:工作集目前在 host 内存中,刷新页面不丢,重启
dsh web清空。 - 新增回退:回退新增文件目前只把基线(空内容)写回,留下空文件而非删除文件。
- 宽度持久化:拖拽宽度目前仅保留在页面生命周期内。
短结尾¶
该插件通过 git 风格的 diff 展示和会话内操作,帮助开发者清晰地管理 Agent 对文件的修改,避免误操作。插件地址:GitHub