前言¶
DeepSeek Harness(DSH)把能力拆成插件後,帶側欄入口的插件會在左側 sidebar.panellist 裏各佔一行,每行大約 46px。裝到七八個以後,入口區 alone 就可能佔掉左欄三分之一高度,下面的工作區、會話列表被擠得很緊。
外殼對這批入口沒有摺疊或溢出處理:有幾個 panel 就排幾行,也沒有「隱藏其他插件入口」的接口。要在不改動每個插件的前提下收回縱向空間,只能由客戶端插件在現有 DOM 上動手。下面介紹社區插件 dsh-sidebar-fold-zxp(維護者 zengxiangpeng123,分類:客戶端)的做法。
這是什麼¶
dsh-sidebar-fold-zxp 把 DSH 左側那一排插件入口收成一行「插件列表」,支持按組歸類、自定義順序,並在摺疊時把高度還給工作區與會話列表。插件當前版本爲 v0.9.1,許可證 MIT,要求 DSH ≥ 0.2.1-rc.1。
社區目錄 SkillHub 與 GitHub 倉庫由作者維護;目錄站點獨立於 DeepSeek / 幻方,並非官方應用商店。
裝完以後側欄長什麼樣¶
側欄大致結構如下(README 示意):
▾ 插件列表 ← 點一下,下面全部收起
▾ 日常 2
│ 打開工作臺(任務 / 日曆 / 知識庫 / 點子)
│ 插件市場
▾ 開發 2
│ 任務看板
│ 自動化任務
▸ 統計與記憶 2 ← 收起狀態,箭頭朝右
(「更多」這類外殼自己的入口會被隱藏)
核心功能¶
摺疊與分組¶
- 點擊「插件列表」可收起整塊插件入口區域。
- 點擊某個組標題可單獨收起或展開該組。
- 在 設置 → 插件列表 中可新建分組、改名、刪除、調整組順序;條目可拖到其他組或拖到某一行前面換位置;也可用下拉框和 ↑ ↓ 做精確調整。
每條入口的三態顯示¶
每行有一個三態選擇(README 說明):
- 跟隨摺疊(默認):摺疊時與組一起收起。
- 摺疊時仍顯示:整塊摺疊後該條目仍可見。
- 始終隱藏:側欄中一直不出現。
對外殼行爲的邊界¶
插件只改自己以外兄弟行的樣式(排序、顯隱),不改任何插件的註冊、圖標或點擊行爲;卸載時會還原改過的行。若 DSH 更換左欄 DOM(行不再是 nav > button),摺疊會失效,失效方式是「什麼都不做」,不會破壞界面。
安裝與啓用¶
SkillHub 目錄頁給出的安裝方式爲:在 DSH 中安裝插件 zengxiangpeng123/dsh-sidebar-fold-zxp(頁面文案爲「請安裝 DSH 插件 zengxiangpeng123/dsh-sidebar-fold-zxp」)。安裝前建議閱讀 GitHub 源碼與 MIT 許可證;客戶端插件在當前 DSH 進程權限下運行,與裝任何 DSH 插件一樣需要自行評估信任邊界。
啓用後需注意 README 中的緩存行爲:改完插件代碼要徹底退出桌面端再打開,只刷新頁面不夠。客戶端插件按 ?rev=<文件元數據哈希> 加載,響應頭爲 immutable(緩存一年),桌面端可能長期沿用舊緩存。
典型用法¶
側欄操作¶
- 需要專注會話列表時,點「插件列表」收起全部插件入口。
- 常用組保持展開,不常用的組點組標題收起。
- 偶爾才用的入口可在設置裏設爲「始終隱藏」,避免佔視覺和順序。
設置頁維護分組¶
- 打開 設置 → 插件列表。
- 按使用習慣建組(例如「日常」「開發」),把條目拖進對應組。
- 用 ↑ ↓ 或拖拽微調順序;對需要常駐側欄的條目選「摺疊時仍顯示」。
分組與順序寫入本地配置文件:
~/.dsh/dsh-sidebar-fold-zxp/settings.json
摺疊狀態與設置頁交互狀態保存在當前頁面會話中;寫入時先落本地再同步宿主,避免保存失敗時點擊看起來毫無反應。
實現要點(便於排查問題)¶
外殼用 React 渲染側欄行,插件據此做了幾件非顯而易見的事:
- 排序用 CSS
order,不移動 DOM 節點,否則下一次渲染會復原。 - 隱藏用內聯
display,不用hidden屬性,因爲行上的類設置了display: flex,會覆蓋瀏覽器對[hidden]的默認樣式。 - 組標題由本插件創建並插入外殼
nav;外殼重渲染沖掉時,由觀察者補回。 - 組標題點擊在捕獲階段攔截並
stopPropagation,否則外殼會用本插件 id 去selectPanel,而該 id 沒有對應面板。
宿主側暴露三個 HTTP 接口(README):
GET /api/dsh-sidebar-fold-zxp/settings 讀配置
PUT /api/dsh-sidebar-fold-zxp/settings 寫配置(原子寫)
GET /api/dsh-sidebar-fold-zxp/plan?entryIds= 按當前條目算佈局
排序規則在 src/plan.js 與 src/edits.js 中實現爲純函數,README 註明 node --test 覆蓋 40 項。
適用場景與注意¶
適合:側欄已裝多個帶入口插件、希望按場景分組並摺疊入口、把縱向空間留給會話與工作區的 DSH 用戶。
注意:
- 依賴 DSH ≥ 0.2.1-rc.1;左欄 DOM 結構變化會導致功能靜默失效。
- 改插件或升級後,桌面端需完全退出再啓動,避免 immutable 緩存舊腳本。
- 安裝與配置前請覈對 GitHub 倉庫與 SkillHub 目錄頁信息;本文事實以 README v0.9.1 與目錄頁爲準。
結尾¶
dsh-sidebar-fold-zxp 針對 DSH 側欄「只增行、不折疊」的默認行爲,用分組與摺疊把插件入口收成可控的一列,並通過設置頁維護順序與顯隱策略。需要安裝或 issue 時可訪問:
- 目錄頁:https://www.skillhub.cn/plugins/zengxiangpeng123/dsh-sidebar-fold-zxp
- GitHub:https://github.com/zengxiangpeng123/dsh-sidebar-fold-zxp