dsh-plugin-mobile-ui: DeepSeek Harness 移動端界面適配插件

前言

DeepSeek Harness (DSH) 的 Web 界面主要針對桌面端設計,在手機上使用時存在控件過小、缺乏手勢交互、佈局錯位等問題。dsh-plugin-mobile-ui 是一個官方 slot 客戶端插件,旨在將 DSH 的 Web 界面改造成適合手機操作的界面。它通過注入樣式和替換部分組件,在不修改 DSH 源碼的前提下,實現抽屜導航、鍵盤適配、橫屏支持等功能。

插件概況

  • 名稱: dsh-plugin-mobile-ui
  • 維護者: loeissu
  • 許可: MIT
  • 定位: 官方 slot 客戶端插件,不 fork dsh-tether,不修改 DSH 源碼。

核心功能

插件主要解決移動端的交互體驗問題:
- 抽屜導航: 提供類似原生 App 的側滑導航面板。
- 啓動頁: 優化冷啓動和熱啓動的展示。
- 鍵盤適配: 使用 visualViewport 處理軟鍵盤遮擋。
- 橫屏支持: 適配橫屏場景的佈局。
- 工具卡: 替換部分官方工具卡(read/grep/edit/write),支持摺疊和失敗自動展開。
- 複製助手: 針對 Android WebView 中 async 剪貼板被拒的問題,提供兜底方案,確保複製功能可用。
- 自動重連: 程序回到前臺時自動嘗試重連。

安裝與啓用

安裝需要從 GitHub Releases 下載發佈包。

  1. 下載 dsh-plugin-mobile-ui-<版本>.tgz 到固定目錄(不要放在 %TEMP%)。
  2. 執行安裝命令:
dsh plugin --profile web add <那個 tgz 的完整路徑>

安裝完成後,必須重啓 dsh web 服務,插件纔會生效。如果後續需要重新加載插件內容(如修改了源碼),直接刷新手機頁面即可,無需重啓服務。

典型用法

安裝並重啓服務後,在手機上訪問 DSH Web 客戶端:

  1. 打開導航: 點擊頂欄最左的文字 「導航」。
  2. 管理會話: 在抽屜內,列表按分組顯示:剛剛 / 今天 / 昨天 / 更早。
  3. 新建會話: 點擊抽屜底部的 + 號。
  4. 查看設置: 點擊抽屜底部的 設置,支持左右滑動切換分區。
  5. 刷新連接: 如果連接看起來卡住,點擊抽屜底部的 刷新連接。
  6. 複製內容: 在消息下方點擊 複製。插件接管了 WebView 的剪貼板邏輯,解決了 Android 上靜默失敗的問題。

開關與配置

插件的核心邏輯通過 src/client/config.ts 中的 FEATURES 開關控制。主要配置項包括:

  • splash: 啓動頁開關。
  • drawerOverlay: 抽屜導航覆蓋層開關。
  • settings: 設置頁移動端分區及彈層排版。
  • toolCards: 工具卡列表(默認替換 read/grep/edit/write)。
  • keyboardFit: 鍵盤遮擋適配。
  • resumeReconnect: 回到前臺自動重連。
  • clipboardFallback: 剪貼板兜底邏輯。

適用場景與注意事項

  • 適用場景: 主要用於在手機瀏覽器或 WebView 中使用 DSH 進行開發調試、查看日誌或簡單交互。
  • 已知取捨: 工具卡替換了 4 張官方卡(read/grep/edit/write),因此會失去官方的「在軌跡中查看」和點開文件的功能。
  • 驗證方式: 插件未包含 CI 和單元測試,主要依賴 npm run verify 進行離線契約校驗和 CDP 探針測試。
  • 文件依賴: 安裝包必須保留 .tgz 文件,否則在後續執行 dsh plugin 操作時會報錯找不到文件。

結語

該插件通過簡單的安裝和配置,顯著改善了 DSH 在移動端的可用性。對於需要在移動設備上頻繁使用 DSH 的開發者來說,它是解決交互痛點的有效方案。

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

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

小夜