dsh-power-button:DSH 側欄電源按鈕與獨立重啓/關機控制

前言

在 DeepSeek Harness(DSH)的 Web 界面裏,重啓或停止宿主進程可以作爲一個插件能力來做。keyiadiannao/dsh-power-button 在側欄底部加入電源按鈕,打開後提供 Restart/Shutdown 菜單,並帶 Windows 風格的全屏過渡覆蓋層。它內置獨立重啓引擎,不依賴其他插件。

這是什麼

keyiadiannao/dsh-power-button 是一個面向 DSH 的自包含電源控制插件,由 keyiadiannao 維護。它把側欄按鈕、Restart/Shutdown 菜單、確認交互和過渡覆蓋層放進 Web 側欄,用於完成 DSH 的重啓或停止。許可證爲 MIT。

核心功能

  • 側欄底部電源按鈕:主題感知,並匹配相鄰 Settings 觸發器。
  • Restart/Shutdown 菜單:提供重啓和關機兩個動作;確認重啓後頁面自動重載。
  • Windows 風格全屏過渡覆蓋層:用於展示重啓或關機過程中的過渡狀態。
  • 內置獨立重啓引擎:寫入 detached .cjs helper,等待舊進程退出和端口釋放後,以相同 execPath/execArgv/argv/cwd 重新啓動 DSH;不使用 PowerShell 或 taskkill。
  • 命令與模型工具:提供 /restart 和 /shutdown,以及 restart_harness 模型工具;若該工具名稱已被其他插件佔用,則跳過註冊。
  • 本地化:提供 zh/en UI 和宿主通知,並遵循 profile 的 locale.preference。
  • 日誌清理:啓動時清理運行時目錄中超過 7 天的 restart-helper-*.log 文件。

安裝與啓用

需要 Node >= 22.19。使用以下命令安裝:

dsh plugin --profile web add "github:keyiadiannao/dsh-power-button#master"

安裝後重啓 DSH,側欄底部會出現電源按鈕。

配置

插件通過 profile 的 cordis layer 配置,可以使用 cordis.patch.yml 或 settings UI。示例:

- id: dsh-power-button
  config:
    enableModelTool: true

常用配置項:

配置項 默認值 說明
enableModelTool true 用於註冊 restart_harness 模型工具
maxDelayMs 5000 ms restart_harness 模型工具 delayMs 參數的上限;有效下限爲 1000 ms

典型用法

1、點擊側欄底部的電源按鈕,打開 Restart/Shutdown 菜單。

2、選擇 Restart 並確認後,頁面會自動重載。

3、選擇 Shutdown 時,GUI 會先彈出確認對話框;需要明確確認纔會停止進程。

4、也可以使用 /restart 和 /shutdown 命令。

5、如果啓用了 restart_harness 模型工具,可傳入 delayMs;該參數最低爲 1000 ms,默認上限由 maxDelayMs 控制,默認 5000 ms。

6、/shutdown 和模型工具保持單動作設計,模型不暴露 shutdown。

安全與運行時細節

  • 破壞性 POST 請求受 same-origin/loopback guard 保護。
  • 併發重複轉換會被拒絕,返回 409。
  • 命令日誌會脫敏;helper/marker 文件權限爲 0600,運行時目錄權限爲 0700。
  • 重啓確認僅通過 UI toast 通知,不寫入任何 session log。

適用場景與注意

適合需要在 DSH 的 Web 側欄中完成重啓/關機,且希望避免依賴其他插件的開發者或使用者。由於插件會執行重啓/停止 DSH 進程,它以當前 dsh 進程權限運行;安裝前應檢查源碼與許可證。許可證爲 MIT;detached helper relaunch 想法參考 anweat/dsh-restart(MIT),但實現獨立編寫、未複製代碼。

鏈接

  • GitHub:https://github.com/keyiadiannao/dsh-power-button
  • 社區目錄:https://www.skillhub.cn/plugins/keyiadiannao/dsh-power-button
羽毛球分组比赛记分
小程序二维码

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

小夜