前言¶
DeepSeek Harness(DSH)桌面客戶端在工作區側欄裏,同一會話組默認只展示有限條會話;官方 UI 每次點擊「展開其餘」會按固定步長(SESSION_WATERMARK_BASE = 5)抬高可見數量,會話多時要連點多次。若你經常在同一工作區切換大量歷史會話,這種交互會拖慢操作。下面介紹的插件通過修改客戶端 bundle 裏與會話 watermark 相關的兩處表達式,實現「展開全部剩餘會話」一次到位,以及「收起」時嚴格只顯示 5 條,而不是在運行中或未讀會話抬高基線後再收攏。
這是什麼¶
dsh-sidebar-expand-all 由社區維護者 mzjqwq 發佈,分類爲客戶端插件,許可證 MIT(package.json 版本 1.0.0)。它針對 DSH 打包在 app.asar 內的 @deepseek-ai/dsh-client-ui-workspace 中的 client.js,做等長替換並更新 asar 頭裏的 integrity hash,不改變文件體積,避免破壞歸檔後續條目。
插件不替代 DSH 本體;安裝與打補丁在 desktop profile 下進行,要求 DSH 引擎版本 >=0.2.1-rc.2 且 <0.3.0-0(見 package.json 的 engines.dsh)。
核心功能¶
DSH 爲每個工作區維護一組「watermark」:表示該組裏可見會話數。官方邏輯在每次展開時按 watermark + SESSION_WATERMARK_BASE 遞增;收起時用 Math.max(SESSION_WATERMARK_BASE, requiredWatermark(...)),運行中或未讀會話會把基線抬高。
本插件內置兩個等長 patch(路徑:app.asar → dsh/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js):
| 行爲 | 效果 |
|---|---|
| expand-all | 將展開時的上限改爲 Number.POSITIVE_INFINITY,一次點擊露出該組全部剩餘會話 |
| collapse-to-5 | 將收起時的計算改爲固定的 SESSION_WATERMARK_BASE,收起後嚴格只顯示 5 條 |
若 patch 錨點在當次 DSH 版本的 client.js 中找不到,插件會報告 unsupported 且不會寫入,避免猜測替換。
除 Web 與 CLI 外,插件還會把一份 user-level skill 安裝到 ~/.dsh/skills/dsh-sidebar-expand-all/,便於在智能體會話裏執行同樣的檢查、應用與恢復。
安裝與啓用¶
從插件市場 / npm(發佈後)安裝:
dsh plugin --profile desktop add dsh-sidebar-expand-all
本地目錄或 GitHub 倉庫:
dsh plugin --profile desktop add ./dsh-sidebar-expand-all
dsh plugin --profile desktop add github:mzjqwq/dsh-sidebar-expand-all
插件以當前 DSH 進程的權限運行;安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證。DSH 社區插件目錄站點 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,屬於社區生態裏的獨立收錄。
安裝後需要應用 patch 纔會改 asar;且 必須完全退出 DSH 再啓動——主機啓動時會緩存 client bundle,dsh-client-hmr 對 asar 內文件的 stat 停留在啓動時刻,僅刷新頁面無法加載修改後的 client.js。
典型用法¶
Web 頁面¶
DSH 啓動後,在瀏覽器打開(端口替換爲本機 DSH 端口):
http://127.0.0.1:<your DSH port>/dsh-sidebar-expand-all
頁面展示當前 patch 狀態,並提供 Apply、Restore、Refresh。
CLI¶
在插件目錄下執行(與 README 一致):
node scripts/patch-workspace-expand-all.mjs --check # 僅檢查
node scripts/patch-workspace-expand-all.mjs # 應用(冪等)
node scripts/patch-workspace-expand-all.mjs --list # 列出內置 patch
node scripts/patch-workspace-expand-all.mjs --restore # 恢復官方文件
退出碼:0 成功;2 asar 或備份缺失;3 文件/頭 integrity 不一致(拒絕寫入);4 檢查發現頭不一致。
安全與升級¶
首次寫入前,原始 client.js 與 asar 頭會備份到 ~/.dsh/dsh-sidebar-expand-all/.asar-bak/(環境變量 DSH_BAK 可覆蓋路徑)。Restore 會寫回備份並校驗頭與內容。若當前內容與 header integrity 不符(例如已被其他工具改過 asar),apply 會直接中止。
DSH 整包升級會替換整個 app.asar,patch 會消失;升級後需重新 Apply 或跑 CLI。若新版本 client.js 中錨點變化,狀態會變爲 unsupported,需要在新版源碼裏重新定位上述兩處表達式後再更新插件。
結尾¶
dsh-sidebar-expand-all 面向經常在側欄管理大量會話的 DSH 桌面用戶:用一次點擊展開工作區全部會話,收起時回到固定的 5 條可見項,並在等長 patch、備份與 integrity 校驗的前提下操作 asar。更多信息見社區目錄 skillhub.cn/plugins/mzjqwq/dsh-sidebar-expand-all 與源碼 github.com/mzjqwq/dsh-sidebar-expand-all。