前言¶
DeepSeek Harness(DSH)左側「全局面板」和會話頂部的「對話 / 閱讀 / 軌跡」等標籤,順序通常由宿主默認佈局決定。插件一多,常用入口沉在列表中間,想臨時把某個面板頂到標籤欄快速切換也不方便。官方沒有提供側欄與標籤的自由排序,也沒有把側欄條目當成真實會話標籤來用的能力。
dsh-entry-organizer(入口編排)是維護者 xishuai-zero 發佈的客戶端插件:在瀏覽器裏用拖拽(或設置頁按鈕)調整側欄條目與頂部標籤順序,並支持把側欄行搬到標籤區、再拖回側欄。順序與搬移狀態寫在本機 localStorage,重啓後保留。包爲零依賴、無構建步驟,MIT 許可;當前 npm 版本爲 0.1.1,要求宿主 DSH >=0.2.1-rc.5。
這是什麼¶
一句話:dsh-entry-organizer 只改「入口出現在哪、以什麼順序出現」,不替換官方面板組件,也不接管 pin 顯隱。
名稱裏的 entry 指側欄面板條目和會話視圖標籤,與入場動畫類插件(如 dsh-entry-transition)或 payload 塑形類插件(如 dsh-entry-shaper)不是同一概念。
插件通過 dsh.bundle manifest 安裝:瀏覽器半身由 dsh.client 聲明,宿主側用根目錄 cordis.patch.yml 的一行 insert 掛進 profile。無服務端狀態,index.js 僅爲空殼聲明。
核心功能¶
側欄與標籤拖拽排序¶
按住左側欄「全局面板」列表中的插件行拖動即可重排;實現上只寫各行 style.order,側欄 nav 爲 flex 佈局,不移動、不重建官方 React 節點。
會話頂部標籤可左右拖動重排;「對話」固定首位,不參與拖拽。標籤容器同樣用 flex order 生效。
跨區搬移¶
把側欄行拖到頂部標籤行:側欄該行消失,頂部出現同名標籤。點擊標籤走官方 layout.selectPanel() 打開對應面板,並顯示左上角「← 返回對話」浮標。把標籤拖回側欄(或拖到側欄空位)則還原爲側欄行,落點決定插在目標行上方還是下方。
搬移通過 ctx.slots.register({ name: 'conversation.view', ... }) 註冊真實 View,啓動器只負責回對話並打開面板,不手寫渲染他人面板 Component。
溢出與無障礙¶
標籤行寬度不足時,宿主會把部分標籤截進右側「…」菜單,菜單內沒有可拖 DOM。插件在同一「…」菜單註冊「把搬入的標籤全部移回側欄」,保證能一鍵恢復。
「設置 → 入口編排」提供帶 ↑/↓ 的「側欄順序」「標籤順序」列表,無鼠標、觸屏或拖拽被截斷時仍可逐項調整。
持久化與設置頁¶
狀態存 localStorage 鍵 dsh.entry-organizer.v1(結構 v2:sidebarOrder、tabOrder、moved 等),全局一份,多窗口通過 storage 事件同步。設置頁顯示側欄行數、可排序標籤數、已搬入列表,支持逐項「移回側欄」或「恢復默認」。界面文案在 client.js 的 DICT 中,跟隨宿主語言。
從舊包名 dsh-entry-arrange 升級時會讀取舊鍵並遷移到新鍵;升級到 0.1.1 時 v1 存儲會自動遷到 v2(排序鍵改爲穩定 panel/view id),無需手動清緩存。
安裝與啓用¶
不確定本機 profile 名稱時,用 dsh plugin --help 或官方文檔確認;下文以市場常用的 web 爲例,桌面版常見爲 desktop,把 --profile web 換成你的 profile 即可。
# 1) 從 npm(推薦,預構建、免 allowBuilds 構建授權)
dsh plugin --profile web add dsh-entry-organizer
# 2) 從 GitHub 源碼(按 tag 固定版本)
dsh plugin --profile web add github:xishuai-zero/dsh-entry-organizer#v0.1.1
# 3) 從 GitHub Release 的預構建 tarball
dsh plugin --profile web add https://github.com/xishuai-zero/dsh-entry-organizer/releases/download/v0.1.1/dsh-entry-organizer-0.1.1.tgz
安裝後重啓 DSH(或等待宿主熱加載)。驗證:左側欄條目可拖、設置裏出現「入口編排」。卸載通過插件管理界面或官方文檔從 profile 移除該包。
插件在 DSH 客戶端進程內運行,與頁面同源權限;安裝前建議瀏覽 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的使用習慣。
典型用法¶
1、側欄排序:在「全局面板」列表按住某行拖動到目標位置,鬆手後順序立即生效並寫入本地存儲。
2、標籤排序:在會話頂部拖動除「對話」外的標籤左右排列;僅對當前可見標籤集合生效(可見數量由宿主寬度與 order 共同決定,見下文限制)。
3、搬到標籤欄:把側欄某行拖到頂部標籤行,用新標籤切換面板;需要還原時拖回側欄,或在「設置 → 入口編排」點「移回側欄」,或在「…」菜單使用「把搬入的標籤全部移回側欄」。
4、不用拖拽:打開「設置 → 入口編排」,用 ↑/↓ 調整「側欄順序」「標籤順序」。
適用場景與注意¶
適合:插件較多、希望固定側欄順序;希望把常用面板臨時放到頂部標籤切換;多窗口同時開 DSH 且希望順序在本機各窗口一致(storage 同步)。
下列限制來自 README 中的「已知限制」,屬於宿主契約邊界:
- 「…」菜單裏的官方標籤不能拖出,只能菜單內一鍵把本插件搬入的標籤移回側欄。
- 標籤重排只作用於可見標籤;調小
order只能讓條目更容易進入可見集,插件不修改官方條目的排序邏輯。 - 側欄顯隱仍由官方「更多 → 固定/取消」決定;本插件只管順序與搬移。
- 「插件管理」行未被硬編碼排除,也可能被拖動;本版無鎖定開關。
- 狀態僅存本機瀏覽器,不隨賬號跨設備;清站點數據會恢復默認。
- 依賴宿主 DOM 標記(如
[data-slot="sidebar.panellist"]、[data-conversation-tabs]);宿主大改結構時需插件適配。 - 切換界面語言後,已搬入標籤的顯示文案需重新搬移一次纔會更新爲新語言字符串;排序與 id 不會丟。
數據與隱私:不聯網、不收集數據;只讀寫上述 localStorage 鍵,遷移時只讀舊鍵 dsh.entry-arrange.v1 且不刪除。
結尾¶
dsh-entry-organizer 用最小侵入方式(flex order + 動態 View 註冊)解決側欄與標籤的順序和跨區擺放,並給出溢出菜單與設置頁兜底。社區目錄與 DeepSeek / 幻方無官方從屬關係,可按需從目錄頁或 GitHub 獲取包信息與 issue 入口。
- 目錄頁:https://www.skillhub.cn/plugins/xishuai-zero/dsh-entry-organizer
- 倉庫:https://github.com/xishuai-zero/dsh-entry-organizer