dsh-shutdown-after-task:任務完成後自動關機插件(Windows)

前言

在 DeepSeek Harness(DSH)中運行長任務(如批量遷移、模型生成、過夜任務)時,經常會忘記關機。dsh-shutdown-after-task 插件提供了一種通過右下角按鈕觸發自動關機的方法,解決了這一痛點。該插件由用戶 virggle 維護,是 DeepSeek Harness 生態中的一個零依賴、純配置層插件。

核心功能

  • 右下角浮動文本按鈕(可拖動):點擊切換「任務完成後關機」模式(默認關閉)。按鈕位置可拖動,位置自動保存。
  • 自動避讓:當其他插件的角落彈窗(如價格提示)與按鈕重疊時,按鈕會自動避讓,彈窗消失後歸位。
  • 可取消倒計時:任務成功完成後,彈出 60 秒倒計時橫幅(實時顯示剩餘秒數)和「取消關機」按鈕。倒計時期間可通過 GUI 取消。
  • 新任務打斷:倒計時期間任一會話開始新任務,會自動撤消關機指令,但模式保持開啓。
  • 取消即退出:點擊「取消關機」按鈕,不僅取消本次關機,還會退出該模式(下個任務不再觸發)。
  • 僅成功時關機:配置爲僅成功時關機;若本批次有會話出錯,則不關機並提示原因。
  • 多會話判定:以 root 會話爲統計單位,全部 root 會話空閒纔算任務完成。

安裝與啓用

通過官方目錄安裝:

dsh plugin --profile web add dsh-shutdown-after-task

安裝後重啓 DSH。若右下角未出現按鈕,刷新頁面(Ctrl+R)即可。

配置

編輯 profile 的 cordis.patch.yml(或設置 > 插件配置):

- id: dsh-shutdown-after-task
  config:
    countdownSec: 60      # 倒計時秒數(10–600,默認 60)
    marginSec: 5          # 系統 shutdown /t 額外餘量(0–60,默認 5)
    onlyOnSuccess: true   # 僅成功時關機(false = 完成即關,含出錯)

典型用法

  1. 點擊右下角「任務完成後關機」按鈕,按鈕變黃表示已開啓模式。
  2. 正常跑任務。
  3. 當全部 root 會話空閒且無錯誤時,按鈕上方會彈出倒計時橫幅。
  4. 倒計時內點擊「取消關機」按鈕,本次關機取消,模式退出。

工作原理與細節

  • 觸發時機:模式開啓後,全部 root 會話從 running 狀態回到 idle 狀態。
  • 成功判定:本批次無 agent/error(僅在 onlyOnSuccess: true 時生效)。
  • 系統指令:倒計時開始時執行 shutdown /s /t <countdownSec + marginSec>。
  • 日誌路徑:運行日誌記錄在 $DSH_HOME/dsh-shutdown-after-task.log。
  • 狀態查詢:可通過 GET http://127.0.0.1:<port>/api/dsh-shutdown-after-task/state 查詢當前狀態。

注意事項

  • 僅支持 Windows:插件執行 shutdown.exe,其他平臺插件會保持惰性並記日誌。
  • 內存狀態:模式狀態保存在內存中,DSH 重啓後默認關閉,需重新點擊按鈕開啓。
  • inbox 隊列判定:root 會話空閒但 inbox 有排隊消息時也會觸發關機(按「全部 root 空閒」判定)。
  • 頁面刷新:腳本隨 index 響應注入,安裝後需刷新頁面才能看到按鈕。

總結

dsh-shutdown-after-task 適合需要在過夜任務或長時間批量任務結束後自動關閉電腦的場景。它通過 GUI 提供了直觀的控制,同時支持配置項以適應不同的關機策略。更多細節可參考:GitHub 倉庫。

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

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

小夜