DSH Web UI 移动端适配:窄屏好用,宽屏适用
📦 已内置于 DSHA —— DeepSeek Harness 安卓启动器把本插件作为内置移动端适配,装 APK 开箱即用。感谢作者 @qiannianhuanxiang 的集成与推广 🙏
dsh-web-mobile 是 DeepSeek Harness Web UI 的移动端适配插件——让 DSH 在手机竖屏下也能好好用:
- 弹窗变浮层:设置、文件树、预览改成底部 sheet,触屏好点
- 状态栏避让:刘海安全区、深/浅主题、双击缩放都处理
- 输入区不打架:权限胶囊、模型名、切换菜单在窄屏下不重叠
- 长会话不卡流量:宿主返回的大 JSON(会话历史等)自动 gzip/brotli 压缩,手机端加载明显提速
- 平板也管:768–1023px 触屏设备限宽居中,≥1024px 触屏大平板的会话行 ⋯ 菜单仍带「删除会话」;桌面端(鼠标指针)任何宽度都是完全 no-op,窄窗口/系统缩放也不会误启移动 UI
| 会话主页 | 目录抽屉 | 设置界面 |
|---|---|---|
- 建议 dsh 0.1.5 之前的版本使用本插件的 2.4.1 更好
新功能
- 输入区常驻「添加文件」入口:宿主 0.1.6 删掉回形针后文件入口只剩「+」菜单,现在放回工具行(「+」右侧),点按直接打开系统文件选择器;可用性仍由宿主判定
- 0.1.6-alpha.2 会话头部与输入框适配:空头部座位不再吃掉标题宽度、右侧栏展开按钮不再被误藏、后台任务/谱系芯片与标签行齐平、头部弹层改视口定位、输入卡片纵向留白压缩(单行 98 → 78px,moderate 档)
- 文件列表手势:屏幕右缘左滑打开文件列表,面板打开时右滑关闭
- 侧边栏面板的退出路径:进入替换主区的面板页(如插件管理)后,系统返回键 / 返回手势、再点一次已选中的面板行都能回到会话;面板视图下左上角按钮变为「返回会话」;面板出现时自右滑入、退出时会话淡入。宿主不提供面板选择能力时整条特性自动失效
修复
- 点按路径的抽屉动画恢复:点左上角按钮打开、点右侧遮罩或按 Esc 收起都会平滑滑出
- 打开抽屉后触摸抽屉本体左滑即可收回:判定区右缘与抽屉右缘对齐
- 抽屉内的导航项(新会话 / 任务板 / SSH / 搜索)点按后正常执行,抽屉同时收起
- 文件列表面板的顶部一行(标签 / 新建 / 分屏 / 退出全屏)不再被手机状态栏遮挡
- 会话头部的「打开文件列表」按钮固定在屏幕右上角,与左侧的目录抽屉按钮对称
- 「后台任务」芯片可以展开了:弹层不再被会话头裁掉,也不再落到屏幕外,列表项可点、点外部可收起
- 手机端会话头不再把模式名压成一个图标:模式名、会话标题与子代理计数各自保留文字,窄屏让位的是后台任务芯片的长标签
- 会话头两行紧凑化(97 → 77px),标题行与左右两侧的抽屉 / 文件列表按钮对齐在同一水平线上
- 抽屉里会话行的 ⋯ 菜单在手机上可用:长按会话行即打开,点按 ⋯ 只切换菜单、不再顺手收起抽屉,菜单与删除确认弹窗都显示在抽屉之上且可点
- 新会话页的输入框恢复两行高度:不再被压出滚动条,提示文案与输入内容完整可见(卡片 84 → 108px)
- 消息文字跟随设置里的「字号大小」,不再与代码块/表格混排成两种字号
- 抽屉里的会话行点按后可正常切换会话并收起抽屉
- 抽屉遮罩跟随抽屉滑出渐隐,宽窄断点来回切换后依然生效
- 与第三方适配插件(如 dsh-web-all)共存时,移动端框架与控件隐藏规则不再受样式表注入顺序影响,同一视口下结果一致
- Android 上「提问」自定义输入框与文件面板的搜索 / 跳转 / 页码框回到紧凑字号:16px 下限只为 iOS 的聚焦放大而设
- 上下文圈的可点区域增大到 28×34,环的墨迹保持官方 14px 不放大,与发送键之间留出 6px 缝
- 抽屉底部不再有失效的「文件」入口:文件列表从会话头右上角按钮或屏幕右缘左滑打开
- 抽屉里点「插件」等面板入口正常切换主区,抽屉同时收起(原先抽屉滞留不走)
- Agent Team 面板不再被会话头滚动盒裁掉:面板改视口定位,关闭键不会落到屏幕外关不掉;面板内长任务标题不再挤成单行撑破面板
- 插件详情页左上角的宿主返回键与目录按钮不再重叠:面包屑右移让位,点「返回插件列表」不再误开抽屉
- 会话头 chips 在任何手机宽度都保留全字:动作行不参与收缩,收缩职责交还标题段的横向滑窗当避震器(此前的分档规则在真机窄屏是死档,已删)
- 与 dsh-web-all 共存时会话头控件簇不再被外来规则顶成 44px:各控件回到自身设计尺寸并与标题带同线居中(状态类 chip 的 25px 触控下限不受影响)
- 状态行左端「N 轮」不再被裁掉且划不到:宿主居中排布叠加横向溢出让它落到负坐标,现改左对齐,溢出全部落在可滑到的一侧
修复
- 大平板横屏(≥1024px 触屏)会话行 ⋯ 菜单缺少「删除会话」:删除项解除宽度门控,触屏设备任何宽度都可用,确认弹窗在宽屏居中限宽;鼠标操作的桌面窗口任何宽度仍不注入
- 拖动桌宠类悬浮物经过屏幕左侧会误触发侧边栏:手势层新增两级让位——可拖动悬浮窗走位置启发式(起点落在
position:fixed|absolute且 ≤200px 的自由定位浮层上即让位,dsh-pet 桌宠实测命中),配合实现的组件可挂data-mobile-nav-dragging标记(被按住元素/祖先或 body)让手势层整笔让位;让位≠拦截,拖动照常执行
新功能
- 移动端会话删除(移植自 fork wzxmt-zhc v2.7.0):会话行 ⋯ 菜单新增「删除会话」项,配确认弹窗。宿主抽屉以会话行形式渲染会话列表后生效(0.1.1-rc.2 的抽屉是图标栏,属宿主升级预备)
- dsh-file-viewer 移动端适配(移植自 fork wzxmt-zhc):查看器面板套用移动端布局,未安装该插件时零影响
修复
- 手机端会话视图标签页过多时逐字竖排堆叠,现可横向滑动(#41 by @782042369)
- 贴左缘划词选择会被抽屉滑出手势劫持,选区被拖没(#43 by @chstd)
- 输入框里拖选择手柄仍会误开抽屉并清掉选区(#44 by @chstd)
- iPhone 上一点输入框页面就自动放大、捏合也缩不回来,只能重开应用(#45 by @pandady)
- 宿主改写 viewport meta 后刘海安全区适配失效(PR #46 by @BuvkB)
- 桌面窄窗口/系统显示缩放会误启移动端 UI(右上角 Files 按钮、底部状态条全套出现),现鼠标操作的窗口任何宽度都保持桌面版
- 设置页「Plugins」配置卡与「Web UI Plugins」分组卡标题恢复官方样式:左对齐、标准内边距与间距、箭头无灰底
- 移动端消息流排版与 DSH 0.1.2-rc.1 的 Lexical 输入框兼容,输入区不再出现左右死区(PR #47 by @johnhom1024)
- 会话视图任意标签页(轨迹、文件查看器、插件注册视图)打开期间,屏幕左缘横滑让位给标签页内的横向内容,FAB 按钮仍可呼出抽屉;文件查看器布局标记只由查看器自身触发
- 子代理会话输入区右侧的上下文圈与发送键贴右对齐
- 触屏设备上用户消息气泡正常显示,tooltip 压制仅作用于消息操作行
- 新会话输入框居中时,git 分支胶囊与输入行保持间距
- 输入区固定控件(模型条、上下文圈、发送键)的钉位与收缩规则覆盖 Lexical 可编辑输入框
- 响应压缩的响应头匹配不区分大小写
- iPhone 上键盘收起后,点发送/停止/加号按钮不再重新唤起键盘盖住对话(PR #48 by @johnhom1024)
下列版本为实装并验证过的版本(判据是 profile cordis.patch.yml 的行启用状态——包在 node_modules 里 ≠ 插件生效;profile 用 ^ 范围会静默升 minor,升级后重新对账)。
- @linxin666/dsh-web-all——0.3.20
- @linxin666/dsh-client-ui-market——0.3.20
- @ychris12138/dsh-usage-stats——0.3.1
- @changfenhuang/dsh-genui——0.10.0
- dsh-meme——0.1.39
- dsh-file-viewer——未安装(0.3.1 时期验证过布局兼容,装回后需复验)
DSHA 用户无需单独安装:DSHA 已内置本插件,装 APK 即用。
从 npm 一行装(仓库自带构建产物,无需构建配置),装完重启 dsh web:
dsh plugin --profile web add dsh-web-mobile旧版迁移:装过旧名
dsh-mobile-nav(更早为@dsh-external/dsh-mobile-nav)的用户请先移除再装新名——dsh plugin --profile web rm <旧键名>;patch 行 id 随包名一起换了,新旧并存会把同一插件注册两份,不迁移也会留下死依赖或加载失败。
GitHub 直装:dsh plugin --profile web add github:mexiaosqwq/dsh-web-mobile
本地开发:
dsh plugin --profile web add link:/path/to/dsh-web-mobilepnpm install
pnpm buildlib/ 与源码同步入库,改动源码后重新构建再提交。
欢迎大家的 issue 和 PR,我会尽可能地进行解决!
工程约定见 AGENTS.md;回归探针 scripts/probes/ 20 个锚点可单跑,兼作宿主升级绊线。