dsh-sticky-disclosure:一鍵收起 DSH Web 會話中的可摺疊區塊

前言

DSH Web 客戶端裏,會話越長,展開的可摺疊區塊越多:Think 思考行、工具卡片、命令卡片、上下文注入行等會持續累積。逐個點擊標題收起不太方便;當區塊滑出當前視口後,還需要先滾動回去。

dsh-sticky-disclosure 是一個 DSH Web 客戶端插件,用來把當前會話裏所有已展開的可摺疊區塊一次性收起,並支持自定義快捷鍵。

這是什麼

dsh-sticky-disclosure 由 Han-1413141 維護,許可證爲 MIT,屬於 DSH 的客戶端插件。

它解決的問題很簡單:當 DSH Web 會話中積累了多個展開區塊時,不用逐個收起,一次操作即可全部收起。

主要面向使用 DSH Web、會話中經常包含 Think、工具調用、命令執行或上下文注入內容的開發者。

核心功能

dsh-sticky-disclosure 提供以下能力:

  • 一鍵收起會話裏所有展開的可摺疊區塊,包括 Think 思考行、工具卡片、命令卡片、上下文注入行等。
  • 聊天區右下角常駐「全部收起」按鈕,並顯示即時計數。
  • 展開區塊滑出屏幕時,標題會自動釘在會話頂部;點擊頂部 chip,即可收起原區塊。
  • 支持自定義快捷鍵,默認 Ctrl+Alt+C,macOS 爲 ⌘⌥C,設置後會持久保存。
  • 使用應用 --dsw-* 設計令牌,自動跟隨深色 / 淺色主題。
  • 純 DOM 實現,不動應用代碼;卸載後即全量還原。

安裝與啓用

先確認環境滿足要求:

  • Node.js ≥ 20
  • DeepSeek Harness,且帶有 dsh plugin 命令

如果尚未安裝 DeepSeek Harness,可執行:

npm install -g @deepseek-ai/dsh

然後使用下面的 PowerShell 腳本安裝插件:

irm https://raw.githubusercontent.com/Han-1413141/dsh-sticky-disclosure/main/install.ps1 | iex

安裝完成後,啓動 DSH Web:

dsh web

插件集合變化在重啓時生效。插件 bundle 按 no-cache 提供,如果修改了 lib/client.js,刷新頁面即可看到變化,不需要重啓服務。

驗證插件是否進入配置,可執行:

dsh --profile web --dump-config | findstr sticky-disclosure

頁面加載後,聊天區右下角出現「全部收起」按鈕,即表示插件已激活。

典型用法

收起所有展開區塊

激活後,可以有兩種方式收起當前會話中的全部展開區塊:

  1. 點擊聊天區右下角的「全部收起」按鈕。
  2. 按下自定義快捷鍵,默認爲 Ctrl+Alt+C,macOS 爲 ⌘⌥C。

按鈕旁邊會顯示即時計數,方便確認當前會話中還有多少個展開區塊。

如果某個展開區塊已經滑出屏幕,插件會把它的標題釘在會話頂部。點擊該 chip,即可收起對應區塊。

修改快捷鍵

默認快捷鍵是 Ctrl+Alt+C,macOS 爲 ⌘⌥C。

如果默認組合鍵與現有快捷鍵衝突,可以按下面步驟修改:

  1. 點擊「全部收起」按鈕旁的 ⌨ 齒輪按鈕,打開設置面板。
  2. 點擊「設置」,進入快捷鍵捕獲狀態。
  3. 直接按下新的組合鍵。新組合鍵必須包含 Ctrl / ⌘ / Alt 之一,例如 Ctrl+Shift+K。
  4. 按下後立即生效,並持久保存到瀏覽器 localStorage。

快捷鍵設置僅保存在瀏覽器 localStorage 中,不會上傳。

如果捕獲期間想取消,可按 Esc。如果想恢復默認快捷鍵,可點擊「恢復默認」,回到 Ctrl+Alt+C。

也可以通過調試句柄編程設置:

window.dshStickyDisclosure.setHotkey({ ctrl: true, shift: true, code: "KeyK" })

上面示例將快捷鍵設置爲 Ctrl+Shift+K。

更新與卸載

更新插件:

dsh plugin --profile web update dsh-sticky-disclosure

卸載插件:

dsh plugin --profile web remove dsh-sticky-disclosure

卸載後,插件對頁面注入的內容會被還原。

適用場景與注意

適合這類使用場景:

  • 長時間使用 DSH Web 對話。
  • 會話中經常展開 Think、工具卡片、命令卡片等區塊。
  • 需要快速收起所有展開內容,繼續閱讀後續輸出。
  • 希望用快捷鍵而不是鼠標完成批量收起。

使用前需要注意:

  • 該插件只覆蓋會話聊天流,範圍是 [data-conversation-scroll] 內的內容;軌跡視圖不在覆蓋範圍內。
  • 插件依賴 data-open / data-disclosure-row DOM 契約。如果上游應用升級後改變了這些內部結構,需要同步更新選擇器。
  • 插件會隨 DSH Web 啓動並進入插件集合,因此會隨當前 DSH 進程環境運行。安裝前建議先檢查源碼與 MIT 許可證。
  • 快捷鍵只保存在瀏覽器 localStorage,不會上傳。

倉庫

GitHub:https://github.com/Han-1413141/dsh-sticky-disclosure

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

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

小夜