Deadline Pulse:DSH 會話標題欄裏的截止倒計時

前言

在 DSH 里長時間開多個會話時,截止日期往往散落在對話記錄或本地筆記裏,切回某個任務前很難一眼看到「還剩多久」。Deadline Pulse 把倒計時做成會話標題欄右側的膠囊,並支持多 deadline 衝突檢測與通過代理改期;數據落在全局 JSON,所有會話共享同一份列表。

下面介紹插件定位、能力、安裝與典型用法。事實以 GitHub 倉庫 README 爲準。

這是什麼

Deadline Pulse(npm 包名 @wjw0419/deadline-pulse,當前 package.json 版本 1.2.1)由維護者 wjw0419 發佈,在 SkillHub 目錄中歸類爲「記憶」。一句話:在 DSH Web 會話標題欄展示截止倒計時膠囊,離 due 越近視覺越醒目;v1.1 起增加多 deadline 準備窗口衝突檢測與重新調度,並可通過自然語言讓代理調用 deadline_tool 維護數據。

插件以 DSH 進程權限讀寫 ~/.dsh/deadline-pulse/deadlines.json,安裝前建議自行查看源碼與 MIT 許可證。

核心功能

標題欄倒計時與分級提醒

  • 標題欄右側常駐倒計時膠囊,每秒刷新,等寬數字顯示。
  • 剩餘 ≤1 天(含已過期):呼吸光暈與擺動動畫。
  • ≤3 天:脈衝動畫。
  • ≤7 天 與 >7 天:默認僅在展開面板中可見(膠囊在展開面板中仍可查看完整列表)。
  • 每個膠囊帶環形進度,表示已消耗的時間比例。
  • 點擊膠囊展開面板:顏色點、標籤、備註、預估工時、進度條,以及已完成分區。
  • 當某條 deadline 跨過 3 天 或 24 小時 閾值時,頁面內會下滑 toast(約 5 秒自動消失);已在臨界狀態的條目在僅頁面加載時不會重複 toast。

衝突檢測與重新調度(v1.1+)

  • conflicts:掃描所有未完成的 deadline,檢測準備窗口是否重疊。
  • 嚴重度:
  • High:同一天 due 且準備窗口重疊。
  • Medium:不同天 due 但準備窗口重疊。
  • Low:同一天 due 但準備窗口不重疊。
  • 準備窗口定義爲 [due - effort, due];未設置 effort 時默認按 2 小時 估算。
  • 面板內「衝突檢測」按鈕觸發檢測,結果內聯展示,並提供改期快捷入口。
  • reschedule:修改 due(可選同時改 effort);可從面板行、衝突結果卡片或自然語言發起;若此前跑過沖突檢測,改期後會自動刷新檢測結果。

代理與自然語言

代理通過 deadline_tool 支持:add / list / done / remove / conflicts / reschedule,寫入同一 deadlines.json。

熱更新與無障礙

手動編輯 JSON 後,UI 約 15 秒內同步;窗口重新獲得焦點時可立即刷新。系統開啓 prefers-reduced-motion 時,脈衝與擺動動畫關閉,僅保留顏色狀態。

安裝與啓用

命令行(推薦發佈包)

指定你的 DSH profile 後執行:

dsh plugin --profile <your-profile> add @wjw0419/deadline-pulse

本地目錄尚未發佈到 npm 時,可用絕對路徑:

dsh plugin --profile <your-profile> add "file:<absolute-path-to>/deadline-pulse"

通過 DSH 代理安裝本地 bundle

在任意 DSH 會話中對代理說明使用 plugin_manager 的 install_bundle,目標爲本地插件目錄的絕對路徑,例如:

plugin_manager { action: "install_bundle", target: "<absolute-path-to>/deadline-pulse" }

安裝返回 application: applied 後,刷新瀏覽器(F5) 以加載客戶端模塊。

卸載時可對代理說:用 plugin_manager 移除 @local/deadline-pulse;deadlines.json 會保留。

典型用法

方式一:對代理說話

"幫我記一個截止日期:週五 18:00 交插件作業,標籤'課程',預估 4 小時"
"看看我現在有哪些截止日期"
"檢查一下我的截止日期有沒有衝突"
"把英語演講比賽調整到下週一"
"英語演講比賽那個截止日完成了"
"把'壞數據測試'那條刪掉"

方式二:編輯 deadlines.json

創建或編輯 ~/.dsh/deadline-pulse/deadlines.json:

{
  "deadlines": [
    { "title": "提交插件作業", "due": "2026-02-10 18:00", "tag": "課程", "note": "含演示視頻", "effort": 4, "done": false },
    { "title": "英語演講比賽", "due": "2026-02-10 15:00", "tag": "社團", "effort": 3, "done": false }
  ]
}

字段說明(README 原文):

  • due 支持 "2026-02-10 18:00"、"2026-02-10"(視爲當天 23:59)或 ISO 格式。
  • tag、note、effort、done、created 均爲可選。

JSON 格式錯誤時插件不會崩潰:面板顯示紅色 parse failed,並保留上一次成功解析的數據。

適用場景與注意

適合誰: 需要在 DSH Web 界面裏常駐看到多個項目/課程 deadline、並希望在任務堆疊時用準備窗口做簡單衝突檢查的用戶。

務必注意:

  1. 數據全局共享於 ~/.dsh/deadline-pulse/deadlines.json,與具體會話無關。
  2. 衝突檢測至少需要 2 條未完成的 deadline。
  3. 插件在 DSH 生態中按「一切皆插件」方式分發;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
  4. 安裝與運行等同於信任維護者代碼在本機 DSH 環境內執行;安裝前請閱讀倉庫源碼與許可證。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/wjw0419/-deadline-pulse
  • GitHub:https://github.com/wjw0419/-deadline-pulse

經過上面的步驟,你可以在會話標題欄直接感知截止壓力,並用衝突檢測與改期減少同一時間段內多條任務搶準備窗口的情況。

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

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

小夜