前言¶
DSH 的 Web UI 適合長時間連續使用,但連續編碼、調試或跑會話時,很容易在深夜或連續數小時後仍在操作。dsh-prevent-scd 是一個面向 DeepSeek Harness(DSH)Web UI 的插件,用來檢測深夜或連續數小時的人工操作,並在瀏覽器端用護士貓提醒休息。
它不改變 DSH 的主流程,而是在 DSH Web 會話旁增加一個休息提醒層:宿主側監聽真實用戶消息,瀏覽器側展示狀態條、賣萌彈窗和全屏阻塞 overlay。
這是什麼¶
Codingendless/dsh-prevent-scd 由 Codingendless 維護,許可證爲 MIT,分類爲趣味換裝。
它的一句話定位是:檢測深夜或連續數小時人工操作,用護士貓攔截 Web UI 提醒休息。
插件強調本地化運行:無外部資產、無網絡調用,可離線工作。
核心功能¶
下面介紹已覈實的幾項能力。
- 檢測深夜或連續數小時的人工操作,並提醒休息。
- 監聽 DSH
session/event中的真實user/message;插件注入事件和歷史回放事件不計爲人工操作。 - 在瀏覽器端提供狀態條、賣萌彈窗和全屏阻塞 overlay,使用內嵌 SVG 與 CSS 動畫。
- 支持可配置閾值,包括
maxWorkMinutes、idleBreakMinutes、深夜窗口、cooldown和snooze。 - 狀態持久化到
$DSH_HOME/prevent-scd/state.json,重啓dsh後保留。 - 提供 HTTP 端點:
-GET /prevent-scd/state.json
-POST /prevent-scd/ack
安裝與啓用¶
資料給出的安裝命令是本地路徑安裝方式:
dsh plugin --profile web add -w "path/to/dsh-prevent-scd"
安裝後需要重啓 dsh web 服務。profile bundle 列表變更需要重啓,運行中的實例不受影響。
卸載命令:
dsh plugin --profile web remove dsh-prevent-scd
典型用法¶
覆蓋配置¶
在 profile 的 cordis.patch.yml 中按 id prevent-scd 覆蓋 config。例如:
- id: prevent-scd
config:
maxWorkMinutes: 120
idleBreakMinutes: 20
lateNightStart: '23:00'
lateNightEnd: '06:00'
這裏的 maxWorkMinutes、idleBreakMinutes、lateNightStart 和 lateNightEnd 對應連續工作上限、無操作中斷閾值、深夜窗口開始和結束時間。
瀏覽器輪詢¶
瀏覽器端可通過狀態快照接口輪詢當前狀態:
GET /prevent-scd/state.json
資料中的示例頻率是每 15 秒一次。
用戶回應¶
當插件觸發休息提醒後,用戶可通過 ack 接口回應:
POST /prevent-scd/ack
請求體示例:
{ "kind": "rest" }
或:
{ "kind": "snooze" }
依賴與部署注意¶
已覈實的依賴信息如下:
dependencies:
@deepseek-ai/cordis ^4.0.1
@deepseek-ai/schemastery ^3.18.1
peerDependencies:
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.6
@deepseek-ai/dsh-host-webserver ^0.1.0-rc.6
README 提示:pnpm 對 link: 依賴不安裝傳遞依賴。換機器部署時,需要在插件目錄執行:
pnpm install
或把 @deepseek-ai/cordis、@deepseek-ai/schemastery 安裝到可達的 node_modules。
適用場景與注意¶
適合在 DSH Web UI 中做長時間連續操作,並希望被提醒休息的用戶。尤其適合深夜使用或長時間連續編碼、調試、跑會話的場景。
需要注意:插件會隨 dsh web 服務加載,並以當前 dsh 進程權限運行。安裝前應檢查源碼、依賴和許可證。本插件許可證爲 MIT。
如果只想清理計時狀態,可以刪除:
$DSH_HOME/prevent-scd/
相關鏈接¶
- 插件目錄頁:
https://www.skillhub.cn/plugins/Codingendless/dsh-prevent-scd - GitHub:
https://github.com/Codingendless/dsh-prevent-scd