dsh-sidebar-hover:懸停預覽側欄與會話歷史導航

前言

在 DeepSeek Harness(DSH)里長時間切換會話和工作區時,側欄若一直佔寬,主內容區會被擠窄;若完全收起,又要靠點擊展開才能看到列表。Claude Code 一類桌面客戶端常用「懸停短暫預覽、選中後收起、點擊固定」的側欄交互,而 DSH 原生側欄默認是展開/摺疊的點擊邏輯,也不自帶瀏覽器式的前進/後退會話棧。

下面介紹社區插件 dsh-sidebar-hover(維護者 ingeb0rga),它在 DSH 客戶端 UI 上覆刻這類行爲:懸停窄軌預覽側欄、點擊固定、選中會話後自動收起,並在 macOS 桌面版增加會話歷史箭頭與快捷鍵。插件歸類爲客戶端擴展,當前 GitHub 星標爲 0;許可證爲 MIT,包版本 0.1.24。

這是什麼

dsh-sidebar-hover 是 DSH 的 runtime client plugin(client-UI extension)。它不改服務端協議,而是在宿主渲染的側欄與標題欄區域掛載邏輯:懸停摺疊側欄軌(或 macOS 上標題欄重開區)經意圖延遲後,以浮層方式預覽展開側欄,不推動主內容 reflow;離開後經寬限期收起;在預覽態點擊側欄開關則固定展開,直至再次點擊關閉。

插件還實現 session history arrows(← →):因 DSH 本身不維護導航歷史,插件在客戶端記錄 uiWorkspace.selection 形成最多 100 條、會話級的前進/後退棧,並通過 uiWorkspace.openSession() 跳轉。該能力在 README 中標註爲 macOS 桌面版可用;Web(dsh web)側欄懸停與設置頁共用同一套客戶端代碼,但 README 標明 Web 懸停與設置未做現場驗證,且歷史箭頭與 ⌘[ / ⌘] 在瀏覽器中不可用。

核心功能

懸停預覽與固定

默認開啓 Hover to reveal sidebar。行爲要點(與 README「Behavior」表一致):

  1. 懸停側欄軌或(darwin)側欄開關圖標,經可配置意圖延遲(默認實現爲 180 ms 量級,設置範圍 50–1000 ms)後進入 peek。
  2. Peek 時佈局在內部仍展開側欄,但通過 overlay 將 frame grid 釘在摺疊軌道,寬側欄以不透明填充與陰影疊在內容之上。
  3. 指針離開 peek 後 250 ms 寬限期收起;重新進入可取消收起。
  4. 在 peek 中點擊側欄 toggle → pinned;由點擊打開或固定的側欄在關閉前忽略 hover。
  5. 選中 session/workspace 行、New Session、Settings,或 peek 中按 Esc → 立即收起(行內帶 stopPropagation 的控件不受影響)。
  6. Mod+B 在 peek 中可關閉;由用戶或宿主觸發的 Mod+B / toggle 視爲外部摺疊,插件不搶權。

啓動時 DSH 默認側欄展開;若首次加載偏好時功能已開啓,插件會摺疊一次以便懸停邏輯立即可用;會話中途纔開啓功能則不會強制摺疊。

會話歷史箭頭(macOS 桌面)

默認開啓 Session history arrows。← → 按鈕通過 shell.overlay 放在側欄 toggle 右側;桌面端註冊 ⌘[ / ⌘] 快捷鍵(無歷史可去時放行給宿主)。已刪除、無法打開的條目會從棧中丟棄。

設置與持久化

獨立設置頁:Settings → Sidebar hover,包含:

  • 「Hover to reveal sidebar」開關(默認 ON)與懸停延遲;
  • 「Session history arrows」開關(默認 ON)。

偏好寫入宿主 settings 命名空間 dsh-sidebar-hover 的 volatile 字段(enabled、hoverDelayMs),經 node 半邊的插件路由 POST /sidebar-hover/api/prefs.get 與 POST /sidebar-hover/api/prefs.update 讀寫,並落到 profile 的 cordis.patch.yml 對應 config: 塊(路徑形如 ~/.dsh/profiles/<name>/cordis.patch.yml)。桌面部署下渲染進程不能直接調用 settings remote,故由插件 HTTP 路由代理。

平臺與測試範圍

README 給出的能力矩陣摘要:

能力 Desktop (macOS) Web (dsh web)
懸停 peek 懸停 traffic lights 旁側欄 toggle 懸停 56 px 摺疊軌(未 live 測試)
歷史箭頭 ← → 有 無
⌘[ / ⌘] 有 無(瀏覽器佔用)
Settings → Sidebar hover 有 同代碼路徑(未 live 測試)

已在 DeepSeek Harness macOS 桌面版 0.2.0-rc.2、0.2.1-rc.2 上測試。Windows / Linux 桌面構建未測試。

安裝與啓用

插件通過 DSH 的 Cordis bundle(cordis.patch.yml)注入客戶端模塊;manifest 中 client.platform 爲 web,並依賴 @deepseek-ai/dsh-client-ui-sidebar、@deepseek-ai/dsh-client-ui-settings 等宿主插槽。

本次引用的 GitHub README 與 package.json 片段未給出完整的 CLI 安裝命令。 安裝步驟請以社區目錄 SkillHub 插件頁 與 GitHub 倉庫 README 當前說明爲準,不要自行拼接未在文檔中出現的 dsh plugin add 參數。

安裝並加載插件後,在應用內打開 Settings → Sidebar hover 即可開關功能並調整延遲。peer 依賴要求 @deepseek-ai/dsh-client-store 與 @deepseek-ai/dsh-client-ui-primitives 爲 >=0.2.0-rc.2 <0.3.0-0,與上述測試宿主版本線一致。

典型用法

  1. 日常瀏覽會話列表:保持側欄摺疊以擴大編輯區;指針移到 macOS 標題欄一側的側欄 toggle(或 Web 上 56 px 摺疊軌),稍停即可預覽列表;移開指針,側欄自動收回。
  2. 固定側欄編輯:預覽過程中點擊 toggle,側欄 pinned 展開;再次點擊 toggle 或 Mod+B 關閉後,懸停預覽恢復可用。
  3. 選中即走:在 peek 中點擊某個 session 或 workspace,側欄立即收起並進入目標視圖。
  4. macOS 上回溯視圖:用標題欄 ← → 或 ⌘[ / ⌘] 在插件維護的 selection 歷史棧中前進/後退(僅限桌面版且開關開啓時)。

適用場景與注意

適合:主要在 DSH 桌面客戶端(尤其 macOS)工作、希望側欄交互接近 Claude Code、且需要在多個 session/workspace 視圖間快速來回的用戶。

注意:

  • 插件代碼在 DSH 進程權限下運行,安裝前請閱讀 GitHub 源碼 與 MIT 許可證,並確認與當前 DSH 版本匹配。
  • 故意不修改側欄幾何、軌寬、darwin 標題欄契約、Mod+B 綁定等宿主行爲;若與另一側欄類插件同時啓用,需自行驗證是否衝突。
  • SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;星標與版本以倉庫爲準(當前 0.1.24)。
  • 非 macOS 或未測試平臺上的懸停、箭頭行爲請以實際表現爲準,必要時在倉庫 Issues 反饋。

結尾

dsh-sidebar-hover 把懸停預覽、點擊固定、選中收起和 macOS 會話歷史導航接到 DSH 客戶端側欄上,設置集中在 Settings → Sidebar hover。目錄與文檔鏈接:

更細的集成分析與 QA 矩陣見倉庫內 FINDINGS.md、QA-CHECKLIST.md 與 DEVELOPMENT.md。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜