dsh-collab:在 DSH 裏做多用戶協作房間

前言

用 DeepSeek Harness(DSH)做智能體開發時,多人往往各自開着本地 DSH:討論、任務分工、改代碼、審變更,只能靠即時通訊或 issue 來回貼,很難和「當前工作區里正在跑的那一輪 Agent」對齊。若把整臺 Host 的 DSH UI 或文件系統暴露給協作者,邊界也不好控。

dsh-collab(npm 包名 @kanchengw/dsh-collab)由維護者 kanchengw 發佈,分類爲工作流,在 DSH 裏增加僅限受邀用戶的協作房間:同一安裝包在運行時區分 Host(房間工作區、邀請、Gateway、唯一權威的 Host Agent 會話)與 Participant(從本機 DSH 加入,共享工作區,並可做不移交房間權限的私有 Side Work)。它不暴露 DSH UI 監聽端口,也不讓 Participant 直接訪問 Host Agent 或 Host 文件系統。項目狀態爲 pre-1.0;當前 MVP 每個 DSH 實例只支持一個活躍房間。依賴 DSH 0.2.0-rc.2,非 0.2.x 線版本不在此快照的兼容目標內。

這是什麼

一句話:dsh-collab 是面向 DSH 的多用戶協作房間插件,討論、任務、變更集與審閱都落在房間工作區與 DSH 原生左右側欄裏。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝插件前,插件以當前 DSH 進程權限運行,宜自行查看源碼與許可證。

核心功能

README 中已寫明的能力如下(房間界面按 Activity / Tasks / Changes / Reviews 組織,嵌入 DSH 左右 Sidebar):

  • 從 Git 工作區創建僅限邀請的協作房間。
  • 在房間內共享討論與工作進展。
  • 創建任務、關聯 ChangeSet、指定審閱者並批准變更。
  • 雙向發佈並同步帶版本的工作區快照。
  • 通過 Host 控制的 apply 流程審閱並應用變更。
  • Participant 可在本機 DSH Agent 上運行私有 Side Work,不轉移房間權威。
  • 經可信私有網絡、EasyTier 虛擬網絡,或用戶自備的 wss:// 端點連接。

同一包裝在各機器上,角色由本地可信會話與 token 證據在運行時選定,而非單獨的 Participant 構建或預分配端口。Collab Gateway 是獨立的 HTTP/WebSocket 監聽,僅服務 /collab,負責邀請與房間 token 鑑權、權限、事件賬本與審批;不代理 DSH UI 或通用 DSH API。反向代理或隧道由用戶自備,僅在 Host 選擇公網 wss:// 時需要。

Host 從 Git 目錄創建 Room Workspace;初始快照包含已跟蹤與未被 ignore 的未跟蹤文件,合計上限 1 GiB;忽略項與 .git 元數據不包含在內。Participant 也可發佈工作區版本;房間保存版本歷史、ChangeSet 與審閱狀態。勿把憑據放在被 Git 跟蹤、會進入協作快照的文件裏。

環境要求

組件 要求
DSH 0.2.0-rc.2
Node.js >=22(CI 使用 Node.js 24)
pnpm 11.19.0
Host 工作區 Git 倉庫
EasyTier 模式 Windows 下首次使用需準備 no-TUN 製品

安裝與啓用

插件面向 DSH web profile。安裝後需重啓或重載 DSH;插件使用 DSH 原生目錄選擇器,不另提供 Electron 或瀏覽器目錄選擇器。

從 npm 安裝

dsh plugin --profile web add @kanchengw/dsh-collab

若 DSH 從源碼檢出運行,使用該檢出目錄下的 CLI:

pnpm dsh plugin --profile web add @kanchengw/dsh-collab

從源碼構建後本地加入

git clone https://github.com/kanchengw/dsh-collab.git
cd dsh-collab
corepack enable
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile web add (Get-Location).Path

典型用法

Host:建房間並邀請

  1. 打開原生 DSH 會話並選擇一個 Git 工作區。
  2. 在左側欄打開 Collab Rooms,創建房間工作區。
  3. 在 Collab 設置中選擇 Private network、EasyTier virtual network 或 Custom WSS endpoint。
  4. 分享房間並創建邀請。
  5. 經可信渠道把邀請發給協作者。

同一邀請在 一小時內 可被多名 Participant 接受,應視作房間密碼妥善保管。

Participant:憑邀請加入

  1. 安裝相同版本的 dsh-collab。
  2. 打開 Collab Rooms,粘貼邀請。
  3. 填寫顯示名稱並加入。
  4. 等待初始工作區快照下載完成(加入界面會顯示文件數與總大小)。
  5. 打開房間綁定的 DSH 工作區,在共享文件上協作。

已有活躍房間時不能同時再加入另一房間;需先停止或斷開當前房間。Participant 重啓後不會自動重連,需要時使用 Connect。

連接模式怎麼選

模式 適用情況 說明
Private network Host 與 Participant 在同一可信 LAN、VPN 或 overlay 經 ws:// 通告可達私有 IP
EasyTier virtual network 跨網可達且 Host 無公網地址 可選虛擬網;社區共享節點爲 best effort
Custom WSS endpoint Host 自備 TLS 反向代理或隧道 插件不創建或運維該端點

明文 ws:// 僅接受迴環、RFC1918/鏈路本地、100.64.0.0/10、ULA 及 IPv6 鏈路本地;公網 IP 與主機名需用戶自備 wss://。安裝插件、啓動 DSH 或列出已保存房間本身不會下載 EasyTier、不會啓動 Gateway;僅在有明確的分享或加入動作時纔會啓動 EasyTier。

持久化、安全與當前限制

Host 房間狀態默認位於 DSH_HOME/collab/v1/state.json;其中不保存邀請密鑰、短效房間 token 與 Participant 簡歷憑據原文,而是保存 durable resume 憑據的 SHA-256 摘要及房間/成員綁定。畸形或不支持的 Host 狀態文件會阻止 Gateway 啓動,而不會靜默覆蓋房間歷史。暫停或移除成員會撤銷當前房間 token 與 durable resume 憑據。

安全上:勿暴露 DSH UI 監聽;邀請與房間 token 爲 bearer 憑據,勿貼到公開 issue、截圖或日誌;Participant 無法訪問共享 Room Workspace 之外的 Host 文件系統。漏洞請按倉庫 SECURITY.md 私下報告。

當前限制(README 摘錄):每個 DSH 實例一個活躍協作房間;每房間一個權威 Host Agent 隊列;Host 工作區必須爲 Git;工作區快照合計上限 1 GiB;EasyTier 每實例一個活躍 EasyTier 房間,社區共享節點可用性不保證;無內置中繼、CA、公網隧道或路由器協同。

結尾

若你需要在各自本地 DSH 上協同同一 Git 工作區、走任務與 ChangeSet 審閱,又不願把 Host 整機的 Agent 與 UI 開放出去,dsh-collab 把協作收攏在獨立 Gateway 與房間工作區裏,是 DSH 0.2.0-rc.2 線下可安裝的 workflow 類插件。

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

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

小夜