前言¶
在 DeepSeek Harness(DSH)的開發預覽階段,頻繁的進程重啓與退出是日常開發的一部分。目前官方界面尚未提供直觀的電源控制入口,開發者通常需要依賴命令行或系統任務管理器來結束進程。dsh-header-controls 是一個靜態 Web 插件,它在會話日誌左側注入了「重啓」與「註銷」膠囊按鈕,復刻了官方版式的交互體驗,旨在解決這一痛點。
核心功能¶
該插件提供以下具體能力:
- 重啓一鍵直達:無需二次確認。點擊按鈕後,當前 dsh 進程會優雅退出,由純 Node.js 助手根據配置重新拉起服務,頁面會自動輪詢並刷新,無需手動打開新標籤頁。
- 註銷兩步確認:點擊註銷按鈕後,按鈕狀態會變紅進入確認態,需再次點擊才真正關閉整個 dsh 進程,防止誤觸。
- 純 Node 重啓助手:重啓邏輯通過
lib/relaunch-helper.cjs實現,不依賴 PowerShell 或任何第三方庫,直接讀取系統環境進行操作。 - 皮膚感知:插件能檢測頁面的
data-dsh-maid-atelier屬性,在對應皮膚下自動切換爲深海藍配色,否則使用默認樣式。 - 安全校驗:宿主路由僅允許
loopback訪問,並強制校驗自定義請求頭x-dsh-header-controls: 1,以防止 CSRF 攻擊。
安裝與啓用¶
安裝過程需要手動操作,不依賴現有的插件管理器。
- 克隆倉庫到本地:
git clone https://github.com/kgwdonkey/dsh-header-controls.git
- 在 DSH 的 profile 目錄下創建插件鏈接。以 Windows 爲例(需管理員權限或開發者模式):
mklink /J "%USERPROFILE%\.dsh\profiles\node_modules\dsh-header-controls" "<克隆到的路徑>"
Linux 或 macOS 用戶請使用 `ln -s` 命令進行軟鏈接。
- 在 profile 目錄的
cordis.patch.yml文件末尾追加註冊項:
- $insert: node_modules/dsh-header-controls/lib/index.js
- 重啓 DSH,在會話頁右上角(Session log 左側)即可看到新增的按鈕。
使用方法¶
重啓和註銷的操作邏輯如下:
- 重啓:直接點擊膠囊按鈕。系統會退出當前進程,隨後自動拉起並刷新頁面,整個過程耗時約 10~30 秒,取決於啓動速度。
- 註銷:點擊按鈕後按鈕變紅,此時爲確認態;再次點擊即可關閉 dsh 進程。關閉後需通過桌面快捷方式重新啓動。
配置與注意事項¶
插件依賴於 DSH 的啓動配置文件來執行重啓操作。
- 配置讀取:重啓助手會讀取
%LOCALAPPDATA%\DeepSeekHarness\launcher.config.json,從中獲取node(執行路徑)、repo(倉庫路徑)、profile、port和host等參數。 - 默認回退:若缺少配置文件或文件內容缺失,插件會使用默認回退值(如
node=process.execPath、profile=web等)。 - 系統墊片:如果 DSH 沒有預構建產物,插件會回退使用系統安裝的
dsh命令墊片來啓動服務。 - 適用環境:該插件目前適用於 DSH 的 dev preview 版本(0.1.0-rc.x,web profile)。
結語¶
dsh-header-controls 通過極簡的代碼實現了對 DSH 進程的精細控制。如果你正在使用 DSH 的 web profile 進行開發,且習慣通過界面按鈕而非命令行來管理服務狀態,這個插件能顯著提升開發效率。