dsh-workspace-vault:側欄工作區置頂、隱藏空間與訪問鎖

前言

在 DeepSeek Harness(DSH)桌面端裏,側欄「工作區」通常按默認順序展示,雲同步會把本地工作區與會話日誌一併上傳。若你希望在界面上固定常用工作區、把當前任務頂到所屬工作區頂部,又需要一塊不設雲同步的「隱藏」工作區,或給個別工作區加一道主密碼訪問鎖,原生側欄並不直接提供這些組合能力。dsh-workspace-vault 是社區插件,由 ColdRainLab 維護,分類爲 admin-security,在不大改原生工作區組件的前提下,通過宿主路由與瀏覽器側裝飾實現上述行爲。

下面介紹插件定位、四項核心能力、安裝刷新方式、典型操作路徑,以及安全邊界與適用注意。

這是什麼

dsh-workspace-vault(npm 包名同名,當前版本 0.1.0,MIT 許可證)面向 DSH ≥ 0.2.1-rc.2 的桌面 profile。插件在側欄「工作區」區增加:任意工作區置頂、當前任務置頂到其工作區、密碼保護的隱藏空間(獨立盾牌入口)、以及與隱藏空間共用主密碼的工作區加密(訪問鎖)。隱藏空間內的工作區與被打上加密標記的工作區,會由配套邏輯排除在雲同步之外(資料中說明與 dsh-workspace-sync 配合,自動跳過相關條目與會話日誌)。

核心功能

資料中的功能表可歸納爲五點(含一項雲同步配套)。

1、工作區置頂

工作區行懸停打開原生位置的 「…」菜單,選擇「置頂工作區」或「取消置頂」。置頂後該工作區移到「工作區」列表最前,整行高亮(Endfield 主題下爲 3px 黃左條、淡黃漸變與標題提亮;普通主題使用 dsw token),並顯示推釘徽標。順序由宿主 workspaceRegistry 持久化,重啓或刷新後仍生效;若客戶端發現列表順序與 pinned 前綴不一致,會調用宿主 pin-workspace {reapply:true} 自愈。

2、任務置頂

會話頁頭標題右側增加「置頂此任務」按鈕,將當前任務置頂到其所屬工作區頂部。實現上覆用 DSH 原生 pinSession / unpinSession,原生側欄仍顯示「已置頂」指示,原生「…」菜單裏的置頂/取消置頂依舊可用。

3、隱藏空間

「工作區」區頭在 label 與搜索圖標之間 增加獨立盾牌圖標(不佔原生 headerActions 的 60px,原生「+」保持可見)。首次使用需設置主密碼,可選綁定手機號用於本地找回。解鎖後側欄只顯示隱藏空間裏的工作區,行爲與普通工作區一致;此時區頭「+」用於「新建隱藏工作區」。隱藏空間的工作區不參與雲同步,數據只保留本機,目錄爲 <DSH_HOME>/hidden-space/<工作區名>(默認 ~/.dsh/hidden-space/)。

4、工作區加密(訪問鎖)

在工作區行「…」菜單中選擇「加密工作區」,用主密碼確認後標記爲加密。加密工作區在本次頁面打開期間保持鎖定:會話行不顯示,點擊工作區行會要求解鎖;若主內容區正打開該工作區的會話,會被鎖定遮罩覆蓋,解鎖後才顯示。刷新或重啓後自動重新上鎖。

5、雲同步排除(配套)

隱藏空間與加密工作區的工作區條目、會話日誌不會上傳雲端,也不會從雲端拉回(資料明確爲 dsh-workspace-sync 側配合行爲)。

安裝與啓用

本插件爲本地 bundle(宿主 + 瀏覽器兩半),通過 DSH 插件管理器安裝。README 給出的示例爲 Windows 路徑;安裝後須刷新頁面一次,宿主側路由與新 bundle 僅在啓動或 HMR 激活時加載。

# 在 DSH 裏讓 Agent 執行(安裝到當前 desktop profile),或使用 CLI:
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\Users\ROG-STRIX\Documents\deepseek-harness\DSH新增功能\dsh-workspace-vault"

刷新方式(資料中的生產版做法):標題欄「重新啓動」,或 F12 打開獨立 Developer Tools 窗口,在該窗口按 Ctrl+R 重載頁面(不丟會話、不影響宿主)。

  • 只改瀏覽器半邊(lib/client.js):刷新頁面即可。
  • 改了宿主半邊(lib/index.js 等):頁面刷新不會重載宿主;可用 plugin_manager set_bundle 先禁用再啓用 dsh-workspace-vault,或在合適時機整體「重新啓動」DSH。

卸載示例:

& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-workspace-vault

卸載不會刪除 state.json 與隱藏空間目錄;若要徹底恢復,可手動刪除 <DSH_HOME>/workspace-vault/(隱藏空間裏的工作區會回到普通列表;工作區本身需在 DSH 內逐個刪除)。

典型用法

經過上面的安裝與刷新,可按以下路徑操作(均來自 README 行爲描述)。

置頂工作區:側欄工作區行 →「…」→「置頂工作區」/「取消置頂」。

置頂當前任務:打開某會話 → 頁頭「置頂此任務」→ 側欄出現原生已置頂指示;再次點擊可取消。

進入隱藏空間:區頭盾牌圖標 → 首次設置主密碼(可選手機號)→ 解鎖後僅見隱藏工作區;「+」新建隱藏工作區。

加密工作區:工作區行「…」→「加密工作區」→ 主密碼確認 → 鎖定期間會話行隱藏,主內容區可能顯示遮罩,需解鎖後查看。

整合菜單:資料說明「…」菜單整合爲:置頂/取消置頂、加密/取消加密、移入/移出隱藏空間、重命名、刪除工作區;重命名與刪除行爲與原生一致(刪除保留文件夾與會話記錄,會話歸「未分組」)。

數據、找回密碼與安全邊界

本地文件

項 位置
插件狀態(密碼哈希、手機號哈希、id 集合) <DSH_HOME>/workspace-vault/state.json
隱藏空間工作區根目錄 <DSH_HOME>/hidden-space/<工作區名>
隱藏模式/解鎖狀態 僅當前頁面內存;刷新即上鎖

密碼以 scrypt(隨機鹽)哈希存儲,不保存明文;手機號僅存 sha256(數字) 與掩碼。解鎖令牌在宿主內存(30 分鐘)與頁面內存,不寫 localStorage。刪除 state.json 會清空密碼與標記(隱藏工作區重新出現在普通列表,數據目錄本身不刪)。

忘記密碼

解鎖框點「忘記密碼」→ 輸入綁定手機號 → 本地校驗通過後設置新密碼。不會發送短信;未綁定手機號時,只能刪除 state.json(會丟失隱藏/加密標記,但不刪工作區與會話文件)。

安全邊界(必讀)

資料強調:「加密」是訪問鎖,不是磁盤靜態加密;會話日誌仍爲 DSH 原生明文,能讀用戶目錄的進程仍可讀到文件。它主要緩解「界面上被看到」與「被同步到雲端」。隱藏空間隱藏側欄入口與會話行,不等於把數據從磁盤隔絕。插件不管理工作區目錄裏你若放在網盤同步路徑下的普通文件。

兼容與驗證

  • 不改寫原生工作區單槽;與 dsh-workspace-plus、dsh-session-delete、dsh-endfield-theme 等同時安裝無衝突(README 說明)。
  • 側欄選擇器依賴 DSH 0.2.1-rc.5 的 data-row-key 等;升級 DSH 後建議重跑 check-dsh-features.ps1。
  • 維護者在 2026-10-30 於 DSH 0.2.1-rc.5 桌面端完成 E2E 驗證記錄(置頂高亮、盾牌圖標、整合菜單、加密與雲同步排除等),client/host 單測通過情況見 README「驗證記錄」表。

本地跑測試(README 示例路徑):

$node = "C:\Users\ROG-STRIX\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe"
& $node dsh-workspace-vault\tests\host.test.mjs
& $node dsh-workspace-vault\tests\client.test.mjs

適用場景與注意

適合誰:長期在 DSH 桌面端管理多個工作區、需要側欄固定順序與任務置頂,又希望部分工作區僅本機存在且不進雲同步,或在共享屏幕場景下用訪問鎖減少側欄與會話內容的即時暴露。

安裝前注意:插件以當前 DSH 進程權限運行,會讀寫 ~/.dsh/workspace-vault/ 與 ~/.dsh/hidden-space/。安裝前應自行查看源碼與 MIT 許可證,勿把訪問鎖等同於全盤加密或合規級保密。社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-workspace-vault 把置頂、任務置頂、密碼隱藏空間與工作區訪問鎖收進側欄工作區一條線,並與雲同步排除配合,適合在 DSH「一切皆插件」的生態裏按需疊加 admin-security 類能力。進一步細節以倉庫 README 爲準。

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

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

小夜