dsh-sidebar-expand-all:側欄會話一次展開全部、收起嚴格回到 5 個

前言

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。

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

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

小夜