dsh-workspace-snapshot-fork:爲 DeepSeek Harness 會話分叉附加歷史工作區狀態

DeepSeek Harness (DSH) 的內置會話分叉功能可以複製對話歷史,但默認情況下不會同步對應的工作區文件狀態。對於需要基於特定回合繼續開發或調試的場景,這會造成狀態割裂。dsh-workspace-snapshot-fork 插件通過擴展 DSH 的分叉機制,將回合對應的文件快照一併帶出新會話,確保源工作區保持不變。

該插件由 Yu-Zhuang1 維護,開源協議爲 MIT。它利用 Git 對象作爲存儲後端,爲每個完成的回合生成不可變的檢查點。

工作原理

DSH 每個已完成的回合都會生成一個基於 Git 的不可變檢查點。當在 Web UI 中 fork 該回合時,插件會複製會話日誌前綴並在新工作區中實現匹配的文件。

具體行爲取決於源工作區的類型:

  • 普通目錄:從私有快照倉庫實現檢查點。
  • Git 倉庫根目錄(有提交):創建新 worktree 和 dsh/workspace-fork/<id> 分支,保留歷史、遠程、鉤子和倉庫配置。
  • 嵌套目錄或無提交的 Git 倉庫:使用私有快照行爲。

安裝與啓用

此插件目前僅支持 Web profile。安裝命令如下:

dsh plugin --profile web add "github:Yu-Zhuang1/dsh-workspace-snapshot-fork#v0.1.0-alpha.1"

安裝或更新後需重啓 DSH。

配置說明

默認配置項位於 cordis.patch.yml:

mode: workspace
storageRoot: <DSH_HOME>/workspace-snapshot-fork/snapshots
childRoot: <DSH_HOME>/workspace-snapshot-fork/workspaces
exclude: [.git, node_modules, .env, .env.*, .DS_Store]

DSH_HOME 默認爲 ~/.dsh。如需覆蓋配置,需編輯 $DSH_HOME/profiles/web/cordis.patch.yml 並填入完整配置。注意: DSH 替換完整的 config 值,而非合併字段,因此覆蓋時需保留所有配置項。

Native 模式

在完整配置中設置 mode: native,可將新分叉委託給 DSH 原生行爲。Native 模式不記錄新的工作區檢查點,但歸檔清理仍會釋放現有檢查點。切換回 workspace 模式後,僅後續完成的回合會生成檢查點。

清理與維護

分叉產生的子 worktree、分支及快照不會自動刪除。手動清理命令如下:

git -C <source-repository> worktree remove <child-workspace>
git -C <source-repository> branch --delete dsh/workspace-fork/<id>

注意事項

  • 平臺支持:目前僅 Windows 支持已測試(Web profile)。Linux 和 macOS 尚未驗證。
  • 版本兼容:支持 DSH 0.1.1-rc.x 系列。DeepSeek Harness 處於開發者預覽,升級後需驗證插件。
  • 安全性:快照是本地 Git 對象,未加密。插件不視 .gitignore 爲安全策略,需在 exclude 中手動添加敏感文件路徑(如 .env)。
  • 限制:無 headless fork 適配器。存檔會話會移除檢查點映射。僅 mode: workspace 下創建檢查點。

鏈接

  • GitHub: https://github.com/Yu-Zhuang1/dsh-workspace-snapshot-fork
  • 插件目錄: https://www.skillhub.cn/plugins/Yu-Zhuang1/dsh-workspace-snapshot-fork
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜