dsh-quick-window-launcher:將 DeepSeek Harness 轉爲獨立應用窗口

DeepSeek Harness (DSH) 採用插件化架構。Web 配置文件默認在瀏覽器標籤頁中運行。當需要頻繁切換或管理多個實例時,標籤頁管理容易混亂,且缺乏對進程的直接控制。該插件通過桌面快捷方式,將 Harness 作爲一個獨立的 Chromium 應用窗口打開,並提供側欄電源控制與 open_web 工具。

核心功能

該插件主要解決以下問題:

  1. 桌面快捷方式與獨立窗口:生成桌面快捷方式,默認使用 Chromium 系瀏覽器的 --app=<url> 模式打開 Harness。該模式會去除地址欄和標籤欄,提供類似原生應用的體驗。若本機未安裝 Chromium 系瀏覽器,則回退到系統默認瀏覽器。
  2. 側欄電源控制:在側欄底部新增關閉(⏻)、重啓(⟳)和檢查更新(⬇)按鈕。
    • 關閉:優雅停止進程,釋放資源並落盤會話。
    • 重啓:由運行在 Harness 進程樹之外的看門狗(Watchdog)負責拉起新實例,支持心跳自愈。
    • 檢查更新:查詢 npm 上 @deepseek-ai/dsh 的最新版本,發現新版本時可一鍵複製更新命令。
  3. open_web 工具:註冊模型工具,允許在默認瀏覽器的新標籤頁打開指定 URL。
  4. 多信號存活判定:在啓動前檢查端口監聽狀態與任務板鎖(~/.dsh/task-board/ledger-v2.lock)的所有者 PID。若舊實例未服務但存活,啓動器會診斷並退出,避免重複啓動導致衝突。
  5. 自動版本檢查:自動檢查並提示 npm 上 @deepseek-ai/dsh 的最新版本。

安裝與啓用

該插件僅面向 web 配置文件。安裝後需重啓 Harness 才能生效。

# 安裝插件
dsh plugin --profile web add Yuanloss/dsh-quick-window-launcher

# 啓動 Harness
dsh web

首次啓動時,插件會在 %USERPROFILE%\.dsh\logs 目錄下寫入兩個純 Node 輔助腳本(.cjs),並創建桌面快捷方式 DeepSeek Harness.lnk。

功能詳解

桌面快捷方式行爲

雙擊桌面上的快捷方式,啓動器會執行以下步驟:

  1. 檢查 Harness 是否已在指定端口監聽。
  2. 檢查任務板鎖的主人 PID 是否存活。若 Harness 進程存在但未監聽端口(可能處於僵死狀態),啓動器會診斷並退出,防止啓動衝突。
  3. 若 Harness 未運行,則通過插件自身運行所用的 Node 二進制啓動它。
  4. 等待 UI 可訪問。
  5. 獲取認證 URL 並向隔離窗口檔案簽發 Cookie,確保 App 窗口免登錄打開。
  6. 使用 --app=<url> 命令行參數打開窗口。

電源控制與看門狗

重啓功能依賴運行在 Harness 進程樹之外的看門狗進程。看門狗每秒輪詢一次,處理重啓請求並恢復監聽,具備心跳自愈能力。

關閉功能通過優雅停止(SIGTERM)實現,確保會話數據正確落盤。

安全與殺毒軟件

  • 接口限制:/api/shutdown 和 /api/restart 僅接受迴環地址(localhost)和 POST 請求。
  • 殺毒軟件兼容性:v0.2.6 版本起移除了所有 .ps1 腳本。舊版依賴 PowerShell 腳本會被火絨等殺毒軟件按“新建 PowerShell 腳本”啓發式規則隔離。新版改用純 Node .cjs 腳本和內聯 COM 調用創建快捷方式,避免被隔離。

配置項

可以通過 profile patch 覆蓋以下配置:

鍵 默認值 說明
createShortcut true 是否生成/刷新桌面快捷方式。
desktopName DeepSeek Harness 快捷方式的基礎文件名。
desktopPath (自動解析) 手動指定桌面目錄(解決 OneDrive 重定向等自動解析失敗場景)。解析優先級:desktopPath → Windows 註冊表 → ~/Desktop。
watchdog true 是否啓動重啓看門狗。設爲 false 後重啓按鈕僅退化爲關閉功能。

示例配置:

- id: quick-window-launcher
  name: 'dsh-quick-window-launcher'
  config:
    createShortcut: true
    desktopName: 'DeepSeek Harness'
    watchdog: true

診斷

若遇到啓動或窗口問題,可在 PowerShell 中運行以下命令進行診斷:

node "$env:USERPROFILE\.dsh\logs\dsh-launch-web.cjs" --diagnose

該命令會輸出端口狀態、任務板鎖主人、看門狗心跳及最近日誌。

總結

dsh-quick-window-launcher 提供了一種將 DSH Web 界面“桌面化”的方案。通過獨立窗口和側欄控制,減少了標籤頁管理的開銷,並提供了優雅的進程重啓與更新能力。所有輔助腳本均以純 Node 形式運行,以兼容主流殺毒軟件。

  • 插件目錄:https://www.skillhub.cn/plugins/Yuanloss/dsh-quick-window-launcher
  • GitHub 倉庫:https://github.com/Yuanloss/dsh-quick-window-launcher
羽毛球分组比赛记分
小程序二维码

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

小夜