前言¶
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 進程權限運行,請確保源碼與許可證可信賴。