在 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