前言¶
在 DSH 裏同時維護多個工作區、大量會話時,原生側欄往往只能按宿主默認樹形結構瀏覽。想按工作區聚合查看、用元數據搜索會話、或在空白頁上更快切換工作區,通常要在多個入口之間來回點。下面介紹社區客戶端插件 dsh-workspace-browser(維護者 FFFengMJL,GitHub:FFFengMJL/dsh-workspace-browser),它在 Web UI 側欄增加一塊全寬、以工作區爲先的瀏覽面板,瀏覽與篩選留在插件內,真正打開或切換會話仍交回 DSH 原生導航。
這是什麼¶
dsh-workspace-browser 是純客戶端 DSH 插件(platform: web),不 patch 宿主代碼。它在側欄註冊入口,用於瀏覽已註冊工作區、查看各工作區下的會話,並在你選中會話或新建會話時把導航交還給 DSH。插件 manifest 聲明的已驗證目標是 DSH 0.2.1-rc.5;其他版本未在資料中聲明爲已測,加載時可能需宿主兼容性確認。
README 說明:實現主體、重構與文檔由 AI 編碼代理完成,需求與產品方向來自維護者;這不代表質量、安全或兼容性已審閱,安裝前宜自行查看源碼、測試與許可證。
核心功能¶
工作區與會話視圖¶
- 工作區網格與詳情視圖,支持按註冊順序、名稱、最近活動排序,以及原生工作區重排。
- 工作區卡片上保留置頂、新建會話和「更多」控件;隱藏、重命名、上移/下移、刪除放在溢出菜單中,並處理鍵盤、Escape 與區外點擊。
- 支持工作區視圖、按父目錄分組視圖、扁平會話視圖;未分組會話直接展示,不掃描磁盤、不改變歸屬。
- 元數據搜索覆蓋工作區名稱/路徑與會話標題/ID,範圍可選全部、僅工作區或僅會話;工具欄集中搜索與排序,篩選與插件設置收在一個 disclosure 裏。
添加與管理 workspace¶
- 在面板中通過 DSH 原生目錄選擇器添加工作區:選中已有主機目錄後,經 DSH 公開 workspace 服務註冊。原生選擇失敗時可重試,或使用手動路徑/應用內瀏覽回退;重複路徑會解析到已有工作區。
- 工作區重命名、刪除經 DSH 公開 workspace 服務;刪除僅移除註冊,保留文件夾與會話日誌,相關會話回到「未分組」。
- 隱藏的工作區支持選擇性恢復:搜索列表、單條恢復、勾選子集恢復或全部恢復。
可選:簡化原生會話樹¶
默認關閉。開啓後,用緊湊條目替代 DSH 原生工作區/會話區域。「已打開會話」列表僅在真正進入會話時記錄,按當前工作區分組,保留手動順序並本地持久化;移除快捷方式不會關閉或刪除會話。長列表在條目內滾動,帶細滾動條與底部漸隱。在插件面板設置中關閉,或卸載插件,可恢復原生樹。
可選:增強原生工作區選擇器¶
默認關閉。開啓後,新建/空白會話頁上原有工作區按鈕彈出的菜單變爲可搜索列表。匹配標題與完整路徑子串、無聲調全拼與拼音首字母(README 舉例:「廣州項目」可匹配「廣州」「guangzhou」「gzxm」)。選擇仍調用宿主的 onPick,會話歸屬與草稿處理保持原生行爲。
會話操作與篩選¶
- 會話手動/最近排序、歸檔篩選、原生置頂/重命名/歸檔/恢復、fork、複製 ID、新建會話等;僅改狀態的操作(含歸檔當前選中會話)保持瀏覽器打開,打開會話或新建會話纔是明確導航動作。
- 委託子代理會話默認隱藏,可通過開關顯示;標記來自 catalog 的
origin字段。 - 空白會話(
blank)默認跟隨原生樹:僅列出當前打開的一條,標爲「New session / not started yet」,切走後從列表消失且不刪除;開啓「Show blank sessions」可列出所有未發送草稿並按元數據搜索。 - 緊湊側欄中每個真實工作區分組標題右側有新建會話按鈕,調用原生
startSession(workspaceId);未歸屬分組無此按鈕。 - 統一緊湊密度;舊版保存的「comfortable」密度值會被忽略,其餘偏好保留。
範圍與限制(資料原文要點)¶
- 搜索只匹配 catalog 元數據,不搜索對話正文。
- 分組、排序、歸檔篩選、子代理可見性、工作區置頂/隱藏、簡化側欄與增強選擇器偏好等持久化在插件鍵
dsh-workspace-browser.preferences.v1;已打開會話 ID 在dsh-workspace-browser.opened-sessions.v1;不存會話標題、路徑或正文。同源標籤頁通過 localStorage 同步,存在極窄的 last-writer 競態。 - 響應式佈局、可見鍵盤焦點;瀏覽器不從插件側爲每個會話加載歷史。
客戶端 bundle 內含 pinyin-pro 3.29.5(MIT),用於拼音索引。
安裝與啓用¶
插件未發佈到 npm。發行版以 GitHub Releases 附帶的預構建 .tgz 提供,安裝時不編譯、不跑 install 腳本。
從 Release tarball(推薦)¶
- 打開已發佈的 release,複製
.tgz資源 URL,例如:
https://github.com/FFFengMJL/dsh-workspace-browser/releases/download/v0.2.1/dsh-workspace-browser-0.2.1.tgz
Draft release 無可用下載鏈接,鬚髮布後才能解析 URL。
- 安裝到運行 Web UI 的 profile:
dsh plugin --profile web add <tarball-url>
DSH 會在該 profile 註冊 bundle,無需手改 dsh.profile.bundles。
- 重啓該 profile,刷新 Web UI。側欄面板列表中會出現插件入口。
若 bundle 已存在但被關閉,在插件管理器中重新啓用;重裝不會自動打開開關。
安裝前可選校驗(示例 URL 與文件名與 release 一致時):
curl -fLO <tarball-url>
curl -fLO <tarball-url>.sha256
sha256sum -c dsh-workspace-browser-0.2.1.tgz.sha256
dsh plugin --profile web add "$PWD/dsh-workspace-browser-0.2.1.tgz"
本地 checkout(開發)¶
- 在倉庫內執行
pnpm install與pnpm build。 - 執行
dsh plugin --profile <profile> add link:/absolute/path/to/dsh-workspace-browser。 - 重啓 profile。
link:安裝指向工作樹,不是可分發的 release。
典型用法¶
- 按上述步驟爲
webprofile 安裝 0.2.1 對應 tarball,重啓並刷新頁面。 - 在側欄打開 DSH Workspace Browser(或 README 中的側欄入口),在工作區網格中瀏覽、排序或重排工作區;點進詳情查看該工作區下的會話。
- 用頂部工具欄搜索工作區或會話元數據,切換全部/工作區/會話範圍;需要時在 disclosure 中調整歸檔、子代理、空白會話等篩選,以及「簡化原生會話樹」「增強原生工作區選擇器」。
- 在面板中添加工作區:走原生目錄選擇器註冊主機上已有目錄;或按需使用路徑回退。
- 選中某條會話或點擊新建會話時,插件將導航交回 DSH;僅歸檔、重命名等狀態操作時界面仍停留在瀏覽器視圖。
適用場景與注意¶
適合:經常在 DSH Web UI 中切換多個工作區、需要按元數據找會話、希望可選地壓縮側欄會話樹或增強空白頁工作區選擇器的開發者。
注意:
- 插件在當前 DSH 進程與 Web UI 同源環境中運行,權限與宿主一致;安裝前請閱讀 GitHub 倉庫 源碼、
LICENSE與THIRD_PARTY_NOTICES.md。 - 僅在與 manifest 一致的 DSH 0.2.1-rc.5 上做過驗證聲明;其他版本行爲未保證。
- 社區目錄 SkillHub 插件頁 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,安裝來源以維護者發佈的 release 與 README 爲準。
結尾¶
dsh-workspace-browser 把「先看工作區、再管會話」收進側欄一塊全寬界面,並通過可選項在不大改宿主的前提下替換或增強部分原生 UI。需要安裝包與完整功能列表時,可查閱 GitHub README(含中文版 README.zh-CN.md)與 Release 資產。
- 目錄頁:https://www.skillhub.cn/plugins/FFFengMJL/dsh-workspace-browser
- GitHub:https://github.com/FFFengMJL/dsh-workspace-browser