在 DeepSeek Harness (DSH) 中,當智能體請求修改文件時,原生批准卡片僅展示原始的 old_string 和 new_string,缺乏上下文和行號,難以快速判斷。dsh-approval-diff 插件旨在解決這個問題,將原生的批准卡片替換爲包含真實差異、行號、單詞高亮以及磁盤源上下文的審查界面。
這是一個 DSH 插件,由 joao-paulo-santos 維護。它專注於文件變更批准流程,通過 dsh-diff-view 依賴庫,在原生批准卡片中提供可視化的代碼差異審查功能。
核心功能¶
可視化差異審查¶
插件在原生批准卡片內直接渲染編輯內容的真實差異。通過 dsh-diff-view,差異展示包含:
* 行級差異:展示被修改的行。
* 單詞高亮:在變更行內高亮具體的單詞差異。
* 磁盤源上下文:顯示帶有真實行號的文件內容,提供修改周圍的環境。
視圖與操作類型¶
- 視圖切換:支持拆分或統一視圖(GitHub 風格切換),拆分視圖下刪除行顯示在左側,新增行顯示在右側。
- Write 操作:當使用
write命令時,新內容顯示爲添加,並與現有文件合併。 - 刪除操作:對於刪除命令(如
rm),渲染審查通知,僅顯示命令文本,不展示已刪除內容。
批准流程優化¶
- 差異錨定:差異錨定到 DISK TRUTH(從請求時從包的主路由獲取的磁盤狀態),確保審查基於文件當前狀態。
- 過時操作數警告:當編輯的舊文本不再存在於文件中時,卡片會顯示警告,而不是展示無法應用的差異。
- 合併審查:針對同一文件的已排隊編輯會合併爲一個審查。如果同一文件有多個待處理的編輯,卡片會顯示“N edits merged”,並將所有變更合併到磁盤副本中進行渲染。
- 多文件支持:當請求涉及多個文件時,卡片會顯示選項卡,每個文件一個選項卡,包含獨立的合併差異和獨立的批准按鈕。
安裝與啓用¶
該插件需要 DeepSeek Harness (DSH) 的一個 checkout 和一個 profile(示例中使用 web)。請按照以下步驟操作:
- 克隆插件倉庫
mkdir -p ~/dsh-plugins && cd ~/dsh-plugins
git clone https://github.com/joao-paulo-santos/dsh-approval-diff.git
- 安裝插件
pnpm dsh plugin --profile web add ~/dsh-plugins/dsh-approval-diff
- 驗證配置
pnpm dsh --profile web --dump-config
- 重啓 Harness
安裝後需要重啓 Harness,宿主端會在啓動時加載,客戶端端會熱重載。
適用場景與限制¶
- 適用場景:僅限文件變更批准(
edit、write、僅刪除的bash)。其他類型的操作會完全回退到原生卡片。 - 依賴要求:
- 需要安裝
dsh-diff-view依賴。 - 需要 DSH 版本 0.1.2 或更高(基於待交互批准模型)。
- 需要安裝
總結¶
dsh-approval-diff 通過提供直觀的代碼差異審查,解決了 DSH 原生批准卡片中難以審覈文件變更的問題。它通過合併審查和視圖優化,提升了批量編輯時的審查效率。