@mdalboni/dsh-mobile: Completing mobile viewport and scroll behavior for DSH Web interface

前言

DeepSeek Harness(DSH)的 Web GUI 在手机浏览器里打开时,常见问题是整页跟着手势上下「橡皮筋」滚动、虚拟键盘顶起布局时页面平移而不是收缩可视区,以及输入框字号过小触发 iOS/Android 自动缩放。这些体验问题并不写在业务逻辑里,却直接影响在移动端查看会话、切换侧边栏和输入消息。下面介绍社区客户端插件 @mdalboni/dsh-mobile(仓库 mdalboni/dsh-mobile),它通过前端补丁在 DSH Web 侧锁定视口、约束过滚动,并处理键盘与侧边栏等移动端细节。

这是什么

@mdalboni/dsh-mobile 由 mdalboni(Maxwell Dalboni)维护,归类为 客户端 插件:在 DSH Web 平台加载时立即生效(immediately: true),不替代服务端能力,只调整浏览器里的布局与交互。当前 npm 包版本为 1.0.0,许可证 MIT;要求 DSH 引擎 >=0.2.1-rc.3(与 peerDependencies 中的 @deepseek-ai/dsh 一致)。

插件目录页:skillhub.cn/plugins/mdalboni/dsh-mobile。该目录为社区生态站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

资料中列出的能力如下,均针对 DSH Web GUI:

  1. Viewport Lock(视口锁定)
    防止 html, body 随滚动或回弹进入应用下方的空白黑边区域。

  2. Overscroll Containment(过滚动 containment)
    在 [data-conversation-scroll] 上使用 overscroll-behavior-y: contain,把滚动手势限制在会话滚动容器内。

  3. Virtual Keyboard Resizing(虚拟键盘缩放纵)
    配置 interactive-widget=resizes-content,使虚拟键盘以调整视口高度的方式呈现,而不是整页平移。

  4. Sidebar Auto-Retraction(侧边栏自动收起)
    在移动端点击会话区域任意处,或在会话列表选中一行时,自动折叠侧边栏。

  5. Input Zoom Prevention(输入框防自动缩放)
    对移动端视口上的文本输入强制最小 16px 字号,降低 iOS/Android 聚焦输入时的自动放大。

README 中含三张截图(聊天视图、键盘打开、侧边栏打开),路径在仓库 assets/ 下,便于对照上述行为。

安装与启用

插件作为 DSH web profile 的 bundle 安装;安装命令须使用文档原文,勿自行拼接 github:owner/repo 形式。

方式一:编辑 web profile 的 package.json

在 ~/.dsh/profiles/web/package.json 中加入依赖与 bundle:

{
  "dependencies": {
    "@mdalboni/dsh-mobile": "^1.0.0"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@mdalboni/dsh-mobile"
      ]
    }
  }
}

保存后按你现有的 DSH web profile 流程安装依赖并重启或刷新 Web GUI,使 bundle 加载。

方式二:DSH CLI

dsh plugin add @mdalboni/dsh-mobile

方式三:cordis.patch.yml

在 profile 或 patch 配置中增加:

- id: dsh-mobile
  name: '@mdalboni/dsh-mobile'

包内通过 dsh.bundle.patch 指向 ./cordis.patch.yml,与 Cordis 补丁机制一致。

典型用法

该插件 无额外配置项 暴露在 README 中:启用 bundle 后,客户端脚本在 Web 平台自动注入样式与行为。开发与验证时可按 README 建议关注:

  • 会话列表与 [data-conversation-scroll] 区域的滚动是否不再带动整页;
  • 手机浏览器中打开输入框时视口是否随键盘收缩;
  • 点开会话或点按聊天区后侧栏是否自动收起。

本地包提供 node --test test/index.test.js 测试脚本,供维护者在发布前自检;终端用户仅需保证 web profile 已包含 @mdalboni/dsh-mobile。

适用场景与注意

适合谁: 经常在手机或平板浏览器里使用 DSH Web 界面、需要稳定视口和会话区滚动的用户;分类为「客户端」,与仅在服务端运行的插件互补。

权限与安全: 插件随当前 DSH 进程的 Web 客户端加载,修改的是页面 DOM 与 CSS 行为。安装前应查看 GitHub 仓库 源码(入口 client.js、cordis.patch.yml)并确认 MIT 许可证是否符合你的合规要求。

版本: 依赖 @mdalboni/dsh-mobile ^1.0.0 与 DSH >=0.2.1-rc.3;升级 DSH 主版本时需对照 peerDependencies 是否仍满足。

生态: DSH 采用「一切皆插件」思路;本插件通过 SkillHub 等社区目录分发,星标与关注度以各站点展示为准(目录线索为 0 星),选型时以功能说明与源码为准即可。

结尾

经过上面的步骤,在 web profile 中启用 @mdalboni/dsh-mobile 后,可在不改变 DSH 核心业务的前提下,改善移动端视口锁定、过滚动、虚拟键盘与侧边栏等细节。更多说明见目录页 skillhub.cn/plugins/mdalboni/dsh-mobile 与 GitHub mdalboni/dsh-mobile。

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

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

Xiaoye