前言¶
DeepSeek Harness (DSH) 的默認 Web 界面採用三欄桌面佈局。在手機寬度視口下(≤ 820px),側邊欄軌道、188px 設置導航欄以及僅懸停顯示的工具行會變得擁擠或無法觸及。dsh-client-ui-mobile 插件在 max-width: 820px 斷點以下重塑外殼,且不觸碰上游代碼。這是一個純客戶端(瀏覽器)插件,包含一個 <style> 塊以及一個微小的 React 覆蓋層。
功能¶
抽屜式側邊欄
在 820px 以下,側邊欄變爲左側抽屜。有兩種入口方式:
1. 在會話頁面上,在官方頂部欄的“Session log”按鈕旁邊注入一個“expand sidebar”按鈕。
2. 在主頁(無對話頭)上,右上角出現一個 FAB(浮動操作按鈕)。
兩者互斥。一旦頂部欄按鈕出現,FAB 即讓出位置。它帶有一個覆蓋對話的背景,支持 Esc 關閉,並在會話切換時自動關閉。
全屏設置表單
設置對話框(桌面端爲 188px 導航軌道 + 內容)變爲全屏表單,包含頂部標題、水平滾動的選項卡、絕對定位的關閉按鈕以及安全區域插入。
設置入口動畫
遮罩淡入 + 面板上滑。受 prefers-reduced-motion 約束。
詳情面板作爲底部表單
工具調用詳情列(默認在小屏幕上隱藏)變爲由佈局的 data-details-collapsed 狀態驅動的上滑底部表單。
工具行“Inspect”按鈕
在桌面端爲懸停顯示,在小屏幕上可見並放大爲 32px 觸摸目標。
安全區域與觸摸優化
env(safe-area-inset-*),16px 輸入字體,touch-action: manipulation,更密集的輸入框間距。
升級抗性選擇器
針對穩定屬性([role="dialog"][aria-modal="true"]:has(>nav),[data-shell-overlay])以及 CSS 模塊本地名稱後綴([class*="_options"]),而非哈希類名,以在 DSH 前端重建後生存。
安裝與啓用¶
此插件爲純 ESM,無構建步驟,無安裝腳本。
dsh plugin --profile web add github:raomaiping-hash/dsh-client-ui-mobile
# 固定提交哈希以實現可重複性:
dsh plugin --profile web add github:raomaiping-hash/dsh-client-ui-mobile#<sha>
重啓 DSH Web 進程,並在手機寬度視口(或 ≤ 820px 的瀏覽器窗口)下打開 GUI。
典型用法¶
- 在手機寬度下打開 GUI。
- 使用頂部欄按鈕或 FAB 打開抽屜。
- 使用設置表單訪問設置。
- 觸摸目標上顯示檢查按鈕。
兼容性與注意事項¶
- 目標版本:DSH
0.1.5-rc.2(在package.json中聲明爲dshTarget)。 - 執行環境:此插件爲 UI 僅 插件。它不處理主機路由、文件訪問、網絡或設置持久化。它讀取
ctx.layout(側邊欄/詳情切換)和ctx.slots;僅寫入 DOM 節點和<style>標籤,所有內容在停止/更新時被拆除。 - 安全:受限的執行環境不是安全邊界。僅安裝您信任的來源的插件。固定提交哈希以實現可重複性。
生態背景¶
DeepSeek Harness 理念是“一切皆插件”。社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。