dsh-sandbox-tester:爲 DSH 插件測試提供進程級隔離沙盒

前言

在 DeepSeek Harness(DSH)上做插件開發、補丁修改或測試時,改動如果直接進入本體運行,測試失敗帶來的影響範圍會更大。dsh-sandbox-tester 是一個 DSH 插件,用於把待測改動放進隔離沙盒中先跑,再決定是否合回本體。

下面介紹它的定位、核心能力、安裝方式、典型用法和注意事項。

這是什麼

  • 倉庫:Sutera-Diffusus/dsh-sandbox-tester
  • 維護者:Sutera-Diffusus
  • 許可證:MIT
  • 定位:爲 DSH 提供進程級隔離測試場

它解決的核心問題是:插件或補丁改動先在沙盒實例中運行,避免測試階段的問題直接影響本體。

核心功能

進程級隔離沙盒

每個沙盒實例具備以下隔離項:

  • 獨立進程
  • 獨立 DSH_HOME
  • 獨立端口,從 3182 起,衝突時自動 +1

每個沙盒默認裁剪複製約 270 MB。

9 個原生工具

dsh-sandbox-tester 提供以下工具:

  • sandbox_list:查看當前沙盒
  • sandbox_create:創建沙盒
  • sandbox_inject:把待測插件或補丁注入沙盒
  • sandbox_run:運行沙盒
  • sandbox_health:檢查沙盒健康狀態
  • sandbox_stop:停止沙盒
  • sandbox_destroy:銷燬沙盒
  • sandbox_merge:門禁式合回
  • sandbox_prune:清理沙盒,適合處理超齡沙盒

合回門禁

sandbox_merge 默認 dryRun,只執行校驗併產出結果,不進行真實寫入。合迴流程包含:

  • 目標白名單
  • 逐文件 node --check
  • bundle 校驗
  • 備份計劃與回滾清單

真實寫入需要設置:

DSH_SANDBOX_MERGE_ALLOW=1

如果真實寫入失敗,會自動回滾。

一鍵 QA

一鍵 QA 通過 CDP 9223 驅動 headless Edge,檢查以下內容:

  • 首頁
  • /plugins/dsh-sandbox/client.js
  • 設置頁「測試沙盒」區段
  • 控制檯異常

檢查結果會產出報告。

設置頁管理

在 DSH 設置的「測試沙盒」區段中,可以:

  • 查看沙盒卡片
  • 新建沙盒
  • 查看 48h 超齡提示
  • 一鍵清理
  • 查看合回門禁摘要

終止安全

sandbox_stop 在執行前會反查 3080 監聽 PID。如果目標進程樹包含本體,會拒絕執行。

安裝與啓用

環境要求

  • 操作系統:Windows 10/11
  • Node.js:18+
  • DeepSeek Harness:0.1.0-rc.6 或同系列版本

安裝步驟

1、獲取 dsh-sandbox-tester,並確認 DSH 安裝目錄。下文以 <DSH_INSTALL_DIR> 表示該目錄。

2、建議安裝前關閉 DSH 頁面。然後執行安裝腳本:

node install.mjs --target "<DSH_INSTALL_DIR>"

安裝腳本會修改 DSH 安裝目錄中的 profile manifest 和 apiproxy 白名單兩處文件,並且均先備份。

3、重啓 DSH。

4、打開設置頁,查看「測試沙盒」區段;再讓 Agent 調用 sandbox_list,確認工具已註冊。

典型用法

讓 Agent 執行完整測試流程

可以在會話中要求 Agent 按以下順序執行:

1、sandbox_create
2、sandbox_inject
3、sandbox_run
4、健康檢查通過後執行 sandbox_merge

也可以直接說明:

用測試沙盒驗證這個補丁:先 sandbox_create,再 sandbox_inject,然後 sandbox_run,健康檢查通過後 sandbox_merge。

查看和清理沙盒

用 sandbox_list 查看當前沙盒,並清理超齡沙盒。

運行本地測試

node test/smoke.mjs
node test/e2e.mjs
node test/qa-cdp.mjs <port>

其中 <port> 需要替換爲目標實例端口。

適用場景與注意

適合在 DSH 上開發插件、打補丁或做測試的場景。使用前注意以下幾點:

  • 插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。該插件許可證爲 MIT。
  • 安裝腳本會修改 profile manifest 和 apiproxy 白名單兩處文件,並均先備份;建議安裝前關閉 DSH 頁面。
  • sandbox_merge 默認 dryRun;真實寫入需要顯式設置 DSH_SANDBOX_MERGE_ALLOW=1,失敗會自動回滾。
  • 每個沙盒默認裁剪複製約 270 MB,需要預留磁盤空間。
  • 插件不讀取、不上傳用戶憑據或會話數據;無遙測、無外部網絡請求;一鍵 QA 僅連本機 127.0.0.1。

小結

dsh-sandbox-tester 的價值在於把 DSH 插件測試從直接改動本體,變成先隔離運行、再按門禁合回的流程。

  • GitHub 倉庫:https://github.com/Sutera-Diffusus/dsh-sandbox-tester
  • 社區目錄:在 DSH 社區目錄中搜索 dsh-sandbox-tester
羽毛球分组比赛记分
小程序二维码

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

小夜