前言¶
DeepSeek Harness(DSH)左側一列通常同時承擔兩件事:上方是一疊面板入口(插件、插件市場、自動化任務等),下方是工作區與會話樹。插件裝多了之後,面板圖標會把會話列表擠成窄條;置頂會話分散在各個工作區裏,歸檔會話又和進行中的行混在一起。宿主自帶的 createPanelPins 只在內存裏記面板順序,刷新即丟,且會永久固定「插件」那一行。
下面介紹社區插件 dsh-sidebar-entries(維護者 FragrantLotus,分類爲客戶端)。它在不 patch 宿主應用的前提下,通過 DOM 與 localStorage 調整已渲染的側邊欄,把面板排序、摺疊、高度上限、置頂區、視圖標籤、歸檔歸攏和頁腳入口提升串成一套可持久化的交互。
這是什麼¶
dsh-sidebar-entries 是面向 DeepSeek Harness Web 客戶端的側邊欄增強插件。npm 包名與倉庫名均爲 dsh-sidebar-entries,當前版本 0.7.16,許可證 MIT。可在社區目錄 SkillHub 查看簡介與安裝指引;SkillHub 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。
實現上分爲 Host 半部(lib/index.js,診斷路由)與瀏覽器半部(lib/client.js,實際 UI 邏輯),通過 cordis.patch.yml 在 sidebar-entries 下掛載;包聲明無運行時依賴,安裝時不拉取額外構建產物。
核心功能¶
面板圖標區¶
- 長按約 0.3 秒後拖拽排序。短按仍切換面板,避免誤拖導航。鬆手後順序寫入
localStorage(鍵dse.sidebar.order.v2),每次渲染後由MutationObserver重放;行以aria-label識別,「More」行固定爲錨點且不可拖。 - 列表頂部的摺疊箭頭。展開時顯示
v,摺疊後顯示^,一鍵隱藏全部面板圖標;狀態鍵dse.sidebar.collapsed.v1,刷新後保留。箭頭本身不可拖,始終可找回展開入口。 - 頁腳入口提升到同一軌道。凡註冊在側邊欄頁腳(
sidebar.footer.action或注入頁腳容器的按鈕)的控件,會被複製爲軌道內一行並隱藏原按鈕(data-dse-lifted);點擊轉發到原控件,插件無需被本包硬編碼。卸載或客戶端重建時會清理佔位行並清除標記。
面板圖標棧高度上限爲側邊欄總高度的 30%,按整行(36px)向下取整,窗口縮放時重算。
工作區會話列表¶
- 置頂(置頂)分區。各工作區裏已置頂的 Session 歸攏到列表最上方單獨一組,原行
display:none保留在 DOM 供 React 更新;副本點擊通過子節點路徑回放至原行,取消置頂直接調用uiWorkspace.unpinSession(id)。狀態圓點與「待回覆 / 待批准」等文案從隱藏的原行鏡像同步,而非靜態複製標題。 - 分叉子會話跟進。新建 Session 的
parentId指向已置頂會話時,在 ten 分鐘內更新過的候選會被自動置頂並插在父會話之後;首次運行只種子化已知 id,避免升級時誤置頂歷史會話。取消父會話置頂不會連帶取消子會話。 - 歸檔會話沉底。每組內按
updatedAt新到舊排到組末,上方加細分隔線,活躍行順序仍由宿主決定。
置頂區同樣受 30% 整行高度上限約束;分區摺疊狀態鍵 dse.pin.closed.v1,置頂順序鍵 dse.pin.order.v1。
對話視圖標籤欄¶
對話 / 軌跡 / 上下文 等標籤可拖拽排序(與面板類似的 lift + FLIP),順序鍵 dsh.sidebar-entries.viewtab.v1。對話 標籤由宿主固定在首位,不可移動;可見標籤數量由欄寬決定,本插件不改動該邏輯。
內置與容錯¶
插件自帶 文獻 一行,用於打開文獻插件面板(在頁腳按鈕、遷移後的 dock 或服務之間降級查找)。各子系統在獨立 guard 下啓動,單塊失敗不會阻止整包掛載;Host 提供 /sidebar-entries/* 診斷路由(如 GET /sidebar-entries/ping、GET/POST /sidebar-entries/log),開發時可配合 POST /sidebar-entries/reload 熱重載客戶端包。
安裝與啓用¶
推薦從 npm 安裝預構建包:
dsh plugin --profile web add dsh-sidebar-entries
若需直接從 GitHub 源安裝:
dsh plugin --profile web add https://github.com/FragrantLotus/dsh-sidebar-entries
package.json 要求 dsh 版本 >=0.2.0-rc.2 || >=0.2.1-rc.2,Node ^22.19.0 || >=24.0.0。無論哪種方式,安裝後需 重啓 Web 應用 以加載 bundle patch,再 刷新頁面。
社區目錄頁亦可將「請安裝 DSH 插件 FragrantLotus/dsh-sidebar-entries」一類指令發給 Harness 代理完成安裝,具體文案以 SkillHub 插件頁 爲準。
典型用法¶
安裝並重啓、刷新後,行爲主要來自手勢與側邊欄 UI,無需額外配置文件。
整理面板圖標:在左側軌道對某一圖標 按住約 0.3 秒 再拖動到目標位置,鬆手即持久化。需要把縱向空間還給會話列表時,點軌道頂部的 摺疊箭頭 收起全部面板圖標。
集中跟進置頂會話:在宿主裏照常置頂 Session;插件會在列表頂部生成 置頂 分區,運行中與待交互狀態會隨原行更新。從置頂區 fork 出的新子會話,在符合條件時會出現在父會話下方。
調整對話區標籤順序:在會話上方的視圖標籤欄拖拽除 對話 以外的標籤;順序保存在瀏覽器 localStorage。若要恢復默認,可在瀏覽器中清除該站點數據(會一併重置 dse.sidebar.order.v2 等鍵)。
開發調試(可選):Host 運行時可訪問 GET /sidebar-entries/ping 查看存活與版本;設置 window.__dseDebug 後客戶端會向 GET/POST /sidebar-entries/log 上報更多事件。
適用場景與注意¶
適合長期在 DSH Web 端並行多個插件、多個工作區與會話的用戶:面板可排序與一鍵摺疊,置頂與歸檔規則讓列表可讀性更接近日常 IDE 側欄。
使用前請注意:
- 插件在 當前 DSH 進程與 Web 客戶端權限 下運行,會讀寫瀏覽器
localStorage並操作 DOM;安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全策略。 - 置頂區副本隱藏了
⋯菜單按鈕(爲保持點擊回放索引),複雜菜單操作仍可能需要到原工作區展開列表。 - 頁腳提升依賴頁腳按鈕仍在 DOM 中;文獻等內置行在對應插件未安裝時會安靜降級。
清除站點本地存儲會丟失自定義排序、摺疊狀態與標籤順序,屬於預期行爲。
結尾¶
dsh-sidebar-entries 把 DSH 左側欄裏「面板太多擠佔會話樹」「置頂分散」「歸檔穿插」「頁腳與軌道分裂」等具體問題,收成可持久化的排序、摺疊、分區與高度上限,並保留置頂會話的實時狀態與子會話跟進。若你在 SkillHub 或 GitHub 檢索側邊欄類 DSH 插件,可從下面鏈接進入詳情與 Issue: