dsh-workspace-move:在側欄整體搬遷 DSH 工作區

前言

在 DeepSeek Harness(DSH)裏,一個工作區不只是一層文件夾:註冊表裏有嵌套工作區,會話日誌裏記着 cwd,側欄標題也常和目錄名對齊。如果只是用系統自帶的 mv 或拷貝目錄,註冊路徑和會話頭不會跟着改,側欄裏會出現「路徑對了、會話歸屬錯了」的斷層。

@reed-io/dsh-workspace-move(倉庫 ame-code/dsh-workspace-move)把搬遷做成一次原子操作:從工作區菜單發起,由 Host 進程同時處理目錄樹、嵌套工作區註冊和會話日誌,失敗則回滾,成功後可撤銷最近一次搬遷。下面介紹它的能力邊界、安裝方式與典型用法。

這是什麼

社區目錄將插件歸爲客戶端類;維護方爲 ame-code,npm 包名爲 @reed-io/dsh-workspace-move(當前資料中的版本爲 0.1.1,許可證 MIT)。它在 DSH 側欄爲工作區增加「Move workspace…」入口,行爲上接近 mv:一個目標路徑,一次完整結果;若搬遷時改了文件夾名,工作區顯示名也會在滿足條件時一併更新。

一次搬遷會帶走什麼

官方 README 用表格歸納了攜帶範圍,核心如下。

隨工作區遷移的內容 處理方式
工作區文件夾及整棵目錄樹 同捲上爲重命名;跨卷爲先複製、校驗再刪源
該文件夾內已註冊的工作區 註冊路徑改寫爲新位置,註冊信息、標題與會話列表保留
工作區下列出的會話 會話日誌落到目標項目目錄;僅重編碼攜帶 cwd 的壓縮頭幀,事件幀按字節複製
工作區標題 僅當搬遷同時重命名文件夾,且標題仍等於原文件夾名時更新

不會遷移工作區以外的對象。源文件夾只在搬遷「清空」後被刪除;不會改動源文件夾的父目錄。

核心功能與約束

側欄操作

在工作區上右鍵(或使用 … 菜單),選擇 Move workspace…。在內置目錄瀏覽器中選目標父路徑,輸入工作區在該處的文件夾名,覈對合成後的完整路徑後確認。

下列情況會拒絕搬遷並給出原因(摘自 README):

  • 目標位置已存在同名工作區文件夾;
  • 目標在工作區內部,或工作區位於目標路徑之下;
  • 仍有會話在運行(需先停止);
  • 文件夾名不符合當前平臺合法規則。

搬遷成功後,Toast 提供 Undo;在工作區菜單中還可選 Undo last move(僅限本進程內最近一次搬遷)。撤銷信息只保存在內存中,重啓 DeepSeek Harness 後不可再撤銷。

任一步失敗時,插件會回滾已改動的文件夾、註冊表和已觸及的會話,並報告失敗;整次操作要麼全部成功,要麼回到搬遷前狀態。

Agent 工具

同一套邏輯也暴露爲 Agent 工具,簽名如下:

move_workspace(workspaceId, targetParent, folderName?)

folderName 默認取當前文件夾名。工具會返回最終路徑、隨行的會話數與嵌套工作區數量,以及是否仍可撤銷。

行爲說明(與日常使用相關)

  • 搬遷在 Host 進程執行(持有工作區註冊表與會話存儲);瀏覽器只負責交互。
  • 搬遷完成後無需重啓 DSH,已遷會話即可繼續使用;但正在運行的會話不能被搬走(由運行中檢查保證)。
  • 路徑處理、卷檢測與文件夾命名規則按平臺適配;資料寫明在 Windows 上優先開發與驗證,macOS / Linux 走同一代碼路徑,跨原生共享目錄時走複製校驗分支。

環境與安裝

依賴(來自 README 與 package.json):

  • DeepSeek Harness:>=0.2.0-rc.1 <0.3.0-0
  • Node:^22.19.0 || >=24.0.0
  • 需要本地(owner)桌面會話:目標路徑對話框通過僅 loopback 的路由與 Host 通信

安裝前需已運行 DeepSeek Harness。將 desktop 換成你實際使用的 profile(如 web、desktop 等):

dsh plugin --profile desktop add @reed-io/dsh-workspace-move@latest

也可把 bundle 寫入 profile 的 dsh.profile.bundles 後重啓 DSH。安裝後刷新頁面(Ctrl+R),側欄纔會出現新菜單項。

插件在當前 DSH 進程權限下執行文件與註冊表改寫;安裝前建議瀏覽 GitHub 倉庫 源碼並確認 MIT 許可證是否與你的合規要求一致。

典型用法

人工搬遷: 側欄 → 目標工作區 → Move workspace… → 選父目錄、填文件夾名 → 確認。若路徑或名稱不合法、或有會話仍在跑,按提示調整後重試。

Agent 搬遷: 在具備 move_workspace 工具的會話中調用上述接口,用返回信息覈對目的地與會話/嵌套工作區數量,必要時在同一進程內使用撤銷。

適用場景與注意

適合需要把項目整體遷到另一磁盤、重命名根目錄同時保持會話歷史與工作區層級一致的場景;不適合指望「只挪幾個文件、不動註冊表和會話」的輕量拷貝。

注意:撤銷僅在本進程、且爲最近一次搬遷時有效;跨卷搬遷耗時取決於目錄大小與校驗策略。資料未提供社區星標以外的用戶案例,本文不涉及虛構評測數據。

結尾

dsh-workspace-move 把「目錄 + 嵌套工作區 + 會話 cwd」綁成一次可回滾的搬遷,減少手工改路徑帶來的斷裂。更多信息見社區目錄頁 skillhub.cn/plugins/ame-code/dsh-workspace-move 與 GitHub README。

羽毛球分组比赛记分
小程序二维码

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

小夜