前言¶
在 DeepSeek Harness(DSH)裏跑智能體會話時,模型會通過 write 和 edit 工具改文件。一輪對話下來,改動往往分散在多個路徑,單靠終端日誌或事後 git diff 很難按「這一輪改了什麼」來覈對。
下面介紹的 dsh-change-review(維護者 cirelir)是 DSH 社區目錄中的一款客戶端插件,在 Web 界面裏自動記錄會話內的文件寫入與編輯,用行級 diff 展示變更,並支持按會話隔離、子代理聚合和 SSE 即時推送。當前版本 v0.3.0,GitHub 上約 9 stars、2 forks,許可證爲 MIT。
這是什麼¶
一句話定位:會話級修改審查插件——監聽 write / edit 工具調用,保存前後內容與時間戳,在瀏覽器裏渲染可自定義顏色的行級 diff。
一個 npm 包同時攜帶 Host 邏輯與瀏覽器 UI(dsh.bundle + dsh.client manifest),面向 dsh --profile web 的 Web 配置,不適用於純 CLI 場景。
核心功能¶
自動追蹤與 diff 展示¶
插件監聽會話中的 write 和 edit 調用,記錄每次操作的前後快照。展示層用 LCS 行級 diff:新增行(綠)、刪除行(紅)、上下文行(灰),兩側帶行號。
會話隔離與子代理聚合¶
每個會話只審查自己的變更;切換會話即切換審查範圍。子代理(subagent)產生的改動會沿 owner 鏈彙總到根父會話,避免在子會話裏漏看文件修改。
SSE 即時推送¶
Host 通過 SSE(/diff-review/events)推送事件,客戶端只處理當前會話的更新。「審查」標籤上的待審文件數會隨改動即時遞增,無需輪詢。
會話級與單輪審查¶
「審查」標籤(位於「對話」與「軌跡」之間)提供會話範圍的文件列表與 diff 預覽。左側按目錄分組列出文件(含 write/edit 次數與約增刪行數),右側展示選中文件的 diff;兩側滾動獨立。頂部切換可限定爲此會話或最新一輪。
每輪對話結束後,該輪尾部會出現本輪變更審查卡片,列出本輪改動的文件,可展開 diff 並對單次操作撤回。會話累計變更仍在「審查」標籤中,兩處視圖互不替代。
撤回修改¶
所有撤回操作需確認,並直接寫回磁盤:
- 撤回此項:針對某次 write/edit,恢復到該次操作前的內容;後續不重疊的改動保留,重疊時拒絕並提示。
- 撤回全部修改:將文件恢復到本會話首次記錄前的狀態;若文件是會話內新建的,則刪除該文件。
升級前創建、未保存內容快照的記錄無法撤回(界面不顯示撤回按鈕)。
顏色自定義¶
在 Settings → 修改審查 下可配置 12 項顏色(含增刪行背景/文字、上下文、行號、徽章、單輪卡片等),每項帶 rgba 透明度滑塊,支持淺色/深色預設與恢復默認。配置保存在 localStorage(鍵名 dsh.diff-review.colors)。
其他界面行爲¶
插件會隱藏左側邊欄中的 Cordis 插件運行指示器(cordis-panel),減少視覺干擾。
安裝與啓用¶
通過 dsh 命令安裝(推薦)¶
插件發佈到 npm 後,在 Web 配置下執行:
dsh plugin --profile web add dsh-change-review
安裝完成後重啓 dsh web。
手動部署¶
- 將包放到 harness 可解析的位置(例如
node_modules),在 profile 的cordis.patch.yml中註冊:
- insert:
- id: diff-review
name: 'dsh-change-review'
- id: ui-diff-review
name: 'dsh-change-review'
- 重啓
dsh web。
社區目錄頁:SkillHub — dsh-change-review。SkillHub 是獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。
典型用法¶
- 打開一個會話,點擊 「審查」 視圖標籤。
- 在文件列表中選中目標文件,右側查看 diff;用頂部開關在「此會話」與「最新一輪」之間切換範圍。
- 文件被修改時,標籤徽章會即時更新;可用 ↻ 刷新、清空 清除當前會話記錄。
- 需要回滾時,在 diff 區塊頭點擊 撤回此項,或在詳情頂部點擊 撤回全部修改。
- 每輪對話結束後,在對話尾部查看 本輪變更審查 卡片,點擊文件名展開 diff 並逐項撤回。
- 調整 diff 配色:進入 Settings → 修改審查,改完後自動保存,刷新頁面仍生效。
審查記錄會持久化到 ~/.dsh/profiles/web/diff-review-state.json(防抖自動保存,退出時同步刷盤),重啓 dsh web 後自動恢復;刪除該文件可清空全部歷史。
行爲邊界與注意事項¶
容量限制(來自 README 行爲說明):
- 每個文件最多記錄 100 次操作
- 單次操作內容超過 120KB 會截斷
- diff 展示每側最多 1500 行
- 單次撤回使用的三路合併每側最多 2000 行
升級注意:Host 側改動需重啓 dsh web;僅瀏覽器側改動刷新頁面即可。舊版無 turn 信息的記錄不會出現在單輪卡片中,但仍可在「審查」標籤查看。
權限與安全:插件以當前 dsh 進程權限運行,撤回操作會直接寫磁盤。安裝前建議閱讀 源碼 並確認 MIT 許可證;勿在未審閱的情況下在生產環境盲目啓用。
適用人羣:需要在 DSH Web 會話中即時看清 AI 改了哪些文件、按輪次或按操作撤回、並與子代理改動統一審查的開發者。若只關心最終 git 狀態、不需要會話內可視化審查,可不必安裝。
小結¶
dsh-change-review 把 DSH 會話裏的 write/edit 變成可瀏覽、可 diff、可撤回的審查流,並靠會話隔離、子代理聚合和 SSE 推送適配多輪、多代理的複雜會話。在 Web profile 下一條命令即可安裝。