前言¶
在 DeepSeek Harness(DSH)裏跑 Agent 時,改動的文件往往分散在終端命令、多輪對話和多個子項目之間。若工作區根目錄本身不是 Git 倉庫,或一個容器裏並列着 frontend、backend 等多個獨立倉庫,單靠本地 git status 很難在「當前 Session」的上下文裏快速對齊:改了哪些文件、暫存與未暫存如何區分、本輪對話裏各分支又多了哪些 commit。
下面介紹維護者 xuex991 發佈的客戶端插件 Working Changes(DSH 界面中常顯示爲 當前變更,倉庫 xuex991/dsh-working-changes)。它只做只讀展示:對比當前工作區與 HEAD 的變更,並在 DSH 原生右側欄查看 unified diff;同時可按 Session 範圍瀏覽本地分支上新增的 commit。分類爲客戶端;社區目錄頁見 SkillHub 條目。
這是什麼¶
當前變更 是一個體量較小的只讀 DSH 插件:在當前 DSH 工作區內展示相對 HEAD 的文件改動,並支持在右側欄逐文件查看 diff;多倉庫工作區會按倉庫分組。它不替代 Git 客戶端做暫存、提交或推送,而是把「Session 裏到底動了什麼」嵌進 DSH 會話界面。
維護者:xuex991(GitHub:xuex991/dsh-working-changes)。
核心功能¶
會話頂部的變更摘要¶
- 單倉庫:顯示
分支 · 更改文件數 · +新增行 −刪除行。 - 多倉庫:顯示
倉庫數 · 文件數 · +新增行 −刪除行,文件按倉庫分組。 - 鼠標懸停總覽可看到各項目與當前分支(含剛初始化、尚無 commit 的倉庫),並列出變更文件及每個文件的行數變化。
- 點擊總覽或某個文件,在 DSH 原生右側欄打開 diff。
工作區與 Git 狀態¶
- 區分 已暫存、未暫存、未跟蹤、衝突 等狀態;支持文件篩選、狀態標記、重命名、二進制文件列表與手動刷新。
- 使用 Codex 風格的層級文件樹,支持按路徑搜索與目錄摺疊,只展示包含變更文件的目錄。
- 在右側欄渲染帶行號與平臺 diff 配色的 unified diff。
多倉庫自動發現¶
工作區根目錄不是 Git 倉庫時,插件會嘗試發現其下並列的獨立倉庫(默認掃描一層,並跳過依賴目錄與構建目錄)。典型佈局如下:
project/ ← 不是 Git 倉庫
frontend/.git ← 會發現
backend/.git ← 會發現
infra/.git ← 會發現
node_modules/... ← 跳過
每個文件歸屬唯一倉庫;某一倉庫讀取失敗不會隱藏其他倉庫的改動。
Session 內的 commit 歷史(只讀)¶
從「當前變更」相關入口可選擇 本 Session 內、各本地分支上產生的 commit(按項目分組、時間倒序)。選中 commit 後查看其相對第一個父提交的文件變更,並繼續打開文件 diff。歷史不展示遠程分支、Push 狀態或 Push 事件。
刷新時機¶
Agent 每輪結束、窗口重新聚焦以及手動刷新時會更新視圖。
明確不提供的能力¶
只讀:沒有暫存、提交、切分支、stash、push、pull 或 worktree 等寫操作。
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前請自行查看倉庫源碼與 LICENSE(README 標註爲 MIT)。DSH 生態採用「一切皆插件」思路;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
環境要求(來自 README):
- DeepSeek Harness 0.2.1-rc.2 或更新版本。
- DSH 宿主機環境中可用的
git命令。
通過 DSH 插件頁¶
- 打開 DSH 的 插件。
- 點擊 添加插件。
- 輸入倉庫地址:
https://github.com/xuex991/dsh-working-changes
- 安裝並啓用 當前變更(Working Changes)。
通過插件市場索引¶
在 插件 → 發現 → 索引源 中添加:
https://xuex991.github.io/dsh-working-changes/index.json
安裝後,在發現頁找到 當前變更。xuex991 相關插件的穩定安裝入口也彙總在 xuex991.github.io/dsh-working-changes。
典型用法¶
- 在 DSH 中打開含 Git 倉庫(或多子倉庫)的工作區,啓用插件後查看會話頂部的變更摘要。
- 懸停摘要確認分支與各文件行數;點擊摘要或文件,在右側欄閱讀 diff。
- 多倉庫時按分組確認每個子項目的改動;需要時用文件樹路徑搜索縮小範圍。
- Agent 跑完一輪後視圖會自動刷新;也可手動刷新。
- 若需回顧本 Session 內在本地分支上新增的 commit,使用 revision 選擇器選中 commit,再逐文件查看相對父提交的 diff。
適用場景與限制¶
適合:在 DSH Session 內快速覈對 Agent 或人工編輯帶來的改動;多倉庫容器工作區統一瀏覽;需要只讀 diff 而不想在 IDE 與終端之間來回切換時。
實現與邊界(README「說明 / Limits」):
- 文件狀態區分 staged / unstaged,但文件 diff 仍比較完整工作區與
HEAD。 - 歷史僅讀本地分支;以 Session 首次觀察到分支時的 HEAD 爲祖先基線,只展示之後產生的 commit。
- 每個倉庫最多 200 個本地分支、每分支最多 500 個 commit,超出會提示截斷。
- 二進制文件僅列在列表中,不渲染正文;單個 diff 最多 400,000 字符。
- 不展開 submodule;不展開已發現倉庫內部的嵌套倉庫。
發現相關 Host RPC 配置(可選):支持 discoverDepth、repos、repoLabels、untracked、maxRepos、concurrency、repoTimeoutMs。默認發現一層、最多 20 個倉庫、4 個倉庫併發、每倉庫 15 秒超時;顯式傳入 repos 時關閉自動發現。
結尾¶
當前變更 把「相對 HEAD 的工作區改動」和「本 Session 內本地 commit」收進 DSH 會話 UI,並與原生右側欄 diff 聯動,適合需要只讀、可刷新視圖的場景。