前言¶
在 DeepSeek Harness(DSH)裏同時開多個工作區會話時,任務往往散落在聊天記錄或臨時筆記裏,重啓 Web 界面或換端口後也不易找回。官方側邊欄側重上下文與會話導航,並不自帶可持久化的任務視圖。下面介紹社區維護的客戶端插件 dsh-todolist(GitHub:stitchmaps/dsh-todolist):在左側導航增加「To-do List」面板,用可摺疊任務卡片管理截止時間,並把單條任務綁定到具體會話,便於一鍵跳回繼續對話。
這是什麼¶
dsh-todolist 由 stitchmaps 維護,分類爲 客戶端 UI 插件。它在 DSH 桌面/Web 側欄掛載待辦面板,數據落在宿主目錄 <DSH_HOME>/todolist/todos.json,與隨機 Web 端口無關;當前 package 版本爲 0.2.1,許可證 MIT。插件不註冊面向模型的 tool 或 prompt,只擴展界面與本地持久化 API。
核心功能¶
側欄入口與任務卡片¶
- 側欄新增一行 To-do List,位置在「Context Insights」旁。
- 任務以大卡片展示(兩行佈局),未完成/已完成分區可摺疊並顯示數量;卡片帶狀態色條(逾期紅、當天到期琥珀)、圓角漸變與懸停效果,以及完成進度條。
任務生命週期¶
支持新增、編輯(雙擊標題或點「Edit」)、勾選完成、刪除,以及一鍵清除已完成項。輸入框旁日期選擇器可在創建時設置可選截止時間。
截止時間(精確到小時)¶
截止格式爲 YYYY-MM-DD HH:00。任務卡片上通過 Due / Reschedule 可改期,並提供快捷項:Today 18:00、Tomorrow 09:00、In 1 hour,或清除截止。逾期任務高亮爲紅色,當天到期爲琥珀色;未完成任務按截止時間排序。
工作區會話綁定¶
每條任務可綁定到按工作區分組的任意會話;綁定後顯示可點擊的 chip,點擊後通過 UI 工作區能力打開對應 sessionId,從待辦直接回到當時對話。
釘釘提醒¶
全局默認「提前 N 小時提醒」,單條任務可覆蓋(0 表示關閉)。到期前 N 小時由宿主側調度器(約 60 秒一輪)推送,模式二選一:
- 羣機器人:自定義機器人 webhook,可選填加簽 secret 與
@手機號。 - 工作通知:填寫釘釘開放平臺企業內部應用的 AppKey、AppSecret、AgentId 與接收人 userIds。
DSH 托盤進程需保持運行,調度纔會執行。憑據與任務數據一併保存在 <DSH_HOME>/todolist/todos.json(使用前請自行評估本地存儲風險)。
持久化與備份¶
每次寫入會更新 todos.json.bak,並在 todolist/backups/ 下保留最近 20 次帶時間戳的快照;主文件缺失或損壞時,宿主讀取會回退到最新備份。
界面語言¶
內置中英文 UI 文案切換。
環境與依賴¶
- DSH:NEXT 2.0.20 或兼容的 0.2.x 發行版(
package.json中engines.dsh爲>=0.2.0-rc.2 || >=0.2.1-rc.2)。 - 官方安裝腳本依賴 Windows + PowerShell;也可按文檔手動複製文件並改
cordis.patch.yml。 - Node:
^22.19.0 || >=24.0.0(與 DSH 宿主環境一致即可)。
安裝與啓用¶
官方 README 給出的安裝方式爲克隆倉庫後執行 PowerShell 腳本(腳本會備份被改動的 profile 文件):
git clone https://github.com/stitchmaps/dsh-todolist.git
cd dsh-todolist
pwsh -File .\install.ps1
腳本會:
- 將插件文件複製到
%DSH_HOME%\profiles\desktop\node_modules\todolist; - 在 profile 的
package.json中記錄file:依賴; - 向 profile 的
cordis.patch.yml追加 loader 行。
若側欄未立刻出現 To-do List,在 Web GUI 中刷新(Ctrl+R)。
手動安裝時,將包複製到 profile 的 node_modules,並在 ~/.dsh/profiles/desktop/cordis.patch.yml 中追加:
- insert:
- id: todolist
name: todolist
典型用法¶
- 點擊側欄 To-do List。
- 輸入任務標題並回車(或點 Add);需要截止時在輸入框旁選日期。
- 在卡片上:
- Due / Reschedule:設日期與小時、快捷改期、設置單條提醒提前量,或清除截止;
- Bind session:選擇工作區下的會話,之後點 chip 跳轉;
- Edit / 雙擊標題改名;勾選完成;Delete 刪除。
配置釘釘推送¶
- 面板右上角 Push settings。
- 選擇羣機器人或工作通知,按 README 填寫 webhook 或應用憑據;設置默認提前小時數(0 爲不提醒),Save settings 後 Send test 驗證。
- 單條任務可在截止對話框裏覆蓋提醒(默認 / 關閉 / 1–48 小時)。
實現要點(便於排查)¶
DSH 插件分兩半:瀏覽器半 lib/client.js 註冊 sidebar.panellist(id: todolist)與主面板槽位,通過 useWorkspaces() / useSessions() 取會話,跳轉調用 ctx.get('uiWorkspace').openSession(sessionId);宿主半 lib/index.js 註冊 POST /api/todolist/state,原子讀寫 todos.json 並運行提醒調度。前端 bundle 爲手寫 lazy-CJS 工廠格式,無需單獨 build。
適用場景與注意¶
- 適合:長期在 DSH 裏做多會話開發、希望待辦與具體會話綁定的個人或小團隊;需要截止前釘釘 nudge 且能接受本地保存 webhook/應用密鑰的場景。
- 注意:插件以當前 DSH 宿主進程權限運行,安裝前請閱讀倉庫源碼與 MIT 許可證;釘釘相關字段寫入本地 JSON,勿在不可信環境泄露 profile 與
todolist目錄。 - 生態說明:DSH 社區插件目錄(如 skillhub.cn)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;本文事實以倉庫 README 與
package.json爲準。
結尾¶
dsh-todolist 把可摺疊待辦、小時級截止、會話綁定和釘釘提醒收進 DSH 側欄,任務數據落在 <DSH_HOME>/todolist/,適合作爲客戶端能力補全日常調度。目錄頁:https://www.skillhub.cn/plugins/stitchmaps/dsh-todolist;源碼與詳細截圖:https://github.com/stitchmaps/dsh-todolist。