前言¶
在 DeepSeek Harness (DSH) 的開發或使用過程中,經常需要在對話中標記關鍵信息或保存思考過程。手動複製粘貼不僅繁瑣,還容易丟失上下文關聯。下面介紹 dsh-session-notes,它通過在對話中高亮文本並附加便籤,將信息持久化並聚合展示,解決了這一痛點。
插件概覽¶
dsh-session-notes 是一個非官方項目,由社區成員 iptton-ai 獨立開發與維護,採用 MIT 許可證。它利用 CSS Custom Highlight API 實現零 DOM 修改的高亮,支持三種作用域(會話、工作區、全局)的便籤管理。
核心功能¶
插件提供了以下核心能力:
- 高亮與註釋:支持跨加粗、行內代碼及段落邊界的選區。點擊浮動按鈕即可添加便籤,選中文本獲得持久高亮。
- 三種作用域:便籤可歸屬於“本會話”、“當前目錄”或“全局”。在面板中新建、編輯或刪除,作用域內的便籤在對應會話中可見。
- 面板過濾:右側面板支持按“全部”、“當前目錄”、“本會話”過濾,並顯示實時計數。
- 發送到編輯器:將便籤內容與引用原文追加到當前輸入框,方便繼續追問。
- 自愈高亮:通過 MutationObserver 監聽 DOM 變化,每 5 秒進行一次 reconciliation,確保高亮在重渲染或分頁後依然存在。
- 任務筆記與定時觸發:支持創建帶有
next(下一步動作)、doneWhen(完成條件)的任務便籤,或設置dueAt(截止時間)的定時觸發。前者可生成新會話,後者可自動觸發。 - 起源丟失防禦:插件會每 3 分鐘輪詢
session/list。當任務所屬會話被刪除時,自動降級爲通知模式,並在面板中提供決策卡片,避免靜默失敗。
安裝與啓用¶
支持常駐模式和動態模式兩種安裝方式。
常駐模式(推薦)¶
這是推薦的方式,插件在 dsh web 進程重啓後依然存在。
dsh plugin --profile web add github:iptton-ai/dsh-plugin-session-notes
或者使用本地路徑:
git clone https://github.com/iptton-ai/dsh-plugin-session-notes
dsh plugin --profile web add /abs/path/to/dsh-plugin-session-notes
動態模式¶
無需構建步驟,插件僅在當前 dsh web 進程生命週期內有效。
- 打開 DSH,使用“創造模式”或帶有
cordis_define/cordis_run工具的預設。 -
詢問 Agent 安裝:
幫我安裝這個插件:倉庫 https://github.com/iptton-ai/dsh-plugin-session-notes。用 cordis_define 定義(讀取 src/host.js 作爲 code.host、src/client.js 作爲 code.client,plugin id 前綴 snote),然後 cordis_run 激活並批准。
-
刷新頁面後即可使用。
配置注意事項¶
- 不要手動將
session-notes行插入到dsh.profile.bundles的cordis.patch.yml中,這會導致重複註冊。 - 插件存儲文件位於
~/.dsh/storages/session-notes/notes.json。
使用方法¶
- 在 DSH 會話的消息中選中任意句子。
- 點擊浮動出現的 📝 記便籤 按鈕。
- 在彈出的輸入框中寫下筆記。
- 在右側面板中,可以切換過濾視圖(全部/當前目錄/本會話)查看所有便籤。
- 點擊便籤可查看詳情,點擊編輯可修改。
- 選中已高亮的文本,點擊發送到對話框,即可將筆記內容追加到當前輸入框。
注意事項¶
- 非官方項目:此插件由社區成員獨立維護,不隸屬於 DeepSeek 官方。
- 權限範圍:插件在宿主端僅對自身的存儲文件
~/.dsh/storages/session-notes/notes.json擁有danger-full-access權限,不會觸碰其他路徑。 - 數據持久化:常駐模式下數據持久化存儲;動態模式下,若
dsh web進程重啓,需重新運行安裝命令,但磁盤上的筆記數據通常會被保留。