dsh-mobile-adaptive:dsh web 的移動端適配插件

前言

DeepSeek Harness(DSH)採用“一切皆插件”的架構理念。在實際開發場景中,開發者常需在移動設備上調試,或通過遠程訪問進行協作。默認的桌面端佈局在手機屏幕上往往難以操作,側邊欄、設置面板及文件選擇器均缺乏適配。

dsh-mobile-adaptive 是一個掛載在 dsh 客戶端的適配插件。它通過純 CSS/JS 注入的方式,在不修改 dsh 業務邏輯的前提下,對移動端界面進行重構。桌面端(寬度 >= 1024px)保持零改動,僅針對移動端進行響應式調整。

安裝與掛載

插件以組合包(dsh.bundle)和客戶端插件(dsh.client)形式提供。安裝後,瀏覽器半邊和宿主半邊會自動激活。

安裝命令:

dsh plugin --profile web add dsh-mobile-adaptive

本地開發調試(熱更):
如果需要修改源碼並立即生效,建議使用本地鏈接方式:

dsh plugin --profile web add link:<本機倉庫絕對路徑>

安裝完成後,務必先停止正在運行的 dsh web,再重新啓動,使新插件生效。

功能說明

插件主要解決佈局適配、目錄瀏覽和文件上傳三個問題。

1. 佈局適配

針對寬度小於 1024px 的屏幕,插件調整了界面結構:

  • 側邊欄摺疊:側欄隱藏爲覆蓋式抽屜,通過漢堡按鈕、遮罩層或 Escape 鍵關閉。
  • 設置頁單列:設置面板全屏化,採用兩層導航(分區列表 → 具體設置項)。控件拉滿寬度,觸控區域 ≥44px。
  • 頂部工具條:在 ≤1023px 時,將權限選擇和模型選擇從輸入欄上移至會話頭部,原頭部條目收進“+”號彈出面板。

2. 目錄瀏覽移動端化

插件僅對 dsh 內置的 browse(應用內目錄樹)對話框做適配。

  • 固定爲 browse 模式:插件強制使用 browse 而非系統原生選擇器。這是爲了解決 dsh 由 launchd 託管時的迴環網絡誤判問題——directory-picker-auto 在遠程訪問場景下會誤掛載原生 Finder,導致手機端無 UI。需在 ~/.dsh/profiles/web/cordis.patch.yml 中禁用 directory-picker 並靜態裝配 directory-picker-browse。
  • 樣式調整:窄屏下瀏覽對話框全屏,Miller 雙欄佈局收斂爲單欄,行高 ≥44px。

3. 本地上傳

上傳功能從輸入欄移至頂部工具條,支持批量操作。

  • 傳輸機制:客戶端按 1 MiB 切片,將文件轉換爲 base64,通過通用 RPC 通道 /dsh-mobile-adaptive 傳輸。宿主端只寫工作區的 <cwd>/上傳/ 目錄。
  • 文件處理:文件名清洗爲單路徑段,重名自動改名(格式如 文件名(1).txt),拒絕空文件,上限 2 GiB。
  • 狀態管理:支持失敗重試,使用 .part 臨時文件,1 小時後自動清掃。

技術細節與限制

  • 兼容性:100dvh 需 iOS 15.4+,舊版系統自動回退 100vh。
  • 桌面端:寬度 >= 1024px 時,除附件按鈕位置微調外,無其他迴歸改動。
  • 權限:插件以當前 dsh 進程權限運行,請確保源碼與許可證可信賴。
羽毛球分组比赛记分
小程序二维码

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

小夜