前言¶
在 DeepSeek Harness(DSH)的 Web GUI 裏,會話通常從左側欄打開;切走之後,很難一眼看出「當前究竟還開着哪些會話」。若同一臺宿主上還要在電腦和手機之間來回切換,本地視圖更容易脫節:一端關掉的標籤,另一端可能仍顯示在集合裏。
dsh-synced-tabs 在 Web 界面掛一條顯式的會話標籤欄,並把「打開過的會話」維護爲同一宿主實例下、多設備共享的活躍集合,而不是各瀏覽器各記各的。下面介紹它的定位、安裝方式與日常操作,並說明同步邊界與使用注意。
這是什麼¶
- 插件:
dsh-synced-tabs(npm 包名與客戶端註冊 id 一致) - 維護者:mujiannan
- 分類:客戶端(
platform: web) - 許可:MIT
- 依賴環境:需要 DSH
>= 0.2.1(README 寫明);當前包版本爲0.4.1(見倉庫package.json)
它只掛官方 shell.overlay 槽位,不改宿主任意文件;卸載時可清理乾淨。關標籤不會刪除、歸檔或停止會話,僅從共享集合中移除。
它解決什麼問題¶
- 會話太多、缺少顯式視圖:提供一條標籤欄,把當前打開的會話攤開可見。
- 多設備對齊:電腦上關掉的標籤,手機上不應長期殘留;手機上新開的會話,其它設備應在幾秒內看到——標籤是共享集合,不是本地緩存視圖。
- 手機觸屏:窄屏不擠在頂部一條裏,而是「當前會話 + 底部橫條 + 抽屜」;橫條貼底,左下
≡ N開抽屜,抽屜不蓋住橫條。 - 狀態可讀:標籤上有狀態點(運行中 / 等待回答 / 完成未讀等);抽屜入口有聚合狀態,手機端每行第二行直接寫狀態與 workspace 名。
與「再寫一個本地標籤欄」不同,跨設備共享是核心設計:宿主提供 GET/POST /api/dsh-tabs/state,狀態落在 $DSH_HOME/dsh-tabs/state.json;客戶端樂觀更新、補發隊列與 3 秒輪詢,斷網退回本機模式,恢復後自動補發。
核心功能(已覈實)¶
| 能力 | 說明 |
|---|---|
| 共享標籤集合 | 同一 $DSH_HOME 下的多瀏覽器/多設備共享打開列表 |
| Workspace 分組 | 標籤左內側色條與徽章,同組標籤視覺連貫 |
| 狀態點 | 運行、待回答、完成未讀等,桌面懸停有文字說明 |
| 桌面快捷鍵 | ← → 在標籤間移動;Alt+Shift+←/→ 調序 |
| 手機優先佈局 | 窄屏底部橫條 + 抽屜;軟鍵盤通過 interactive-widget=resizes-content 壓佈局視口(見倉庫 COMPATIBILITY.md) |
| 離線可測客戶端 | 單文件 client.js,無構建;倉庫含 75 條離線測試(npm test) |
明確不做(當前版本):不新建會話;不 hook 會話生命週期;無拖拽排序 / pin / 歸檔 / 分屏;不跨兩臺各自獨立的 DSH 宿主實例同步。
安裝與啓用¶
插件以當前 dsh 進程權限運行,安裝前建議瀏覽 GitHub 倉庫 源碼與 MIT 許可證。
在 Web 配置檔下安裝:
dsh plugin --profile web add dsh-synced-tabs
安裝完成後重啓 DSH,或讓宿主重載插件,即可在 Web GUI 頂部(桌面)或底部橫條(窄屏)看到標籤欄。
卸載:
dsh plugin --profile web remove dsh-synced-tabs
典型用法¶
日常操作因端而異,下表摘自官方 README。
| 操作 | 桌面 | 手機 |
|---|---|---|
| 切換會話 | 點標籤;← → 移動;Alt+Shift+←/→ 調序 |
點標籤;或點橫條左下 ≡ N 打開抽屜 |
| 關閉標籤 | 標籤 ×;中鍵點標籤;聚焦後 Delete/Backspace |
抽屜行右側 × |
| 看狀態 | 標籤狀態點,懸停看說明 | 抽屜每行第二行:狀態 + workspace 名 |
| 辨認歸屬 | 標籤內側 workspace 色條與徽章 | 抽屜行左側色條 + workspace 名 |
跨設備同步範圍限於同一 DSH 宿主實例(同一 $DSH_HOME),不是跨機器各跑一個 DSH 之間的同步。宿主未加載 Host 半邊或端點不可用時,客戶端退回本設備本地模式;網絡恢復後按隊列補發。衝突規則與 state.json 格式見倉庫 docs/DESIGN.md §4.8。
DSH 客戶端 API 仍在演進,各版本需單獨驗收;逐版本結論見 COMPATIBILITY.md,未驗證版本不做推測。
適用場景與注意¶
適合:常在 Web GUI 同時開多個會話,並在手機與桌面之間切換、希望標籤列表一致的用戶;需要 workspace 色條與狀態點快速掃一眼集羣進度的團隊。
注意:
- 同步依賴宿主路由與輪詢(約 3 秒),不是 WebSocket;低頻變更高負荷可接受,且利於宿主重啓與閃斷後自愈。
- 內部 API 路徑與數據目錄仍帶歷史前綴
dsh-tabs(如/api/dsh-tabs/state),與對外包名dsh-synced-tabs並存,避免已有實例丟共享集合。 - 社區目錄 SkillHub 插件頁 與 GitHub 爲獨立信息源,與 DeepSeek / 幻方無官方應用商店從屬關係;DSH 生態理念是「一切皆插件」,安裝來源請自行覈對。
結尾¶
dsh-synced-tabs 把 DSH Web 裏「開過哪些會話」收成一條可跨設備對齊的標籤欄,並在手機上用底欄與抽屜補足觸屏可用性。若你需要在同一宿主的多端之間保持會話標籤一致,可按上文命令安裝,並對照 README 與兼容性表選擇 DSH 版本。