Repository navigation
Releases: kaijia323/dsh-mobile-ui
Release list
v0.3.0 — 对齐 DSH 0.2.2-alpha.3,抽屉交给官方、插件只补安全区
dsh-mobile-ui 0.3.0 — 对齐 DSH 0.2.2-alpha.3:抽屉交给官方,插件只补安全区
DSH Web 升级到 0.2.2-alpha.3 后,手机抽屉、frame 左上 opener、遮罩、Esc / 点会话 / 切面板关闭、全局面板顶部内边距都已由官方接管。0.2.2 插件仍自绘抽屉,结果被官方遮罩盖住(z-index 60 < 70)点不动,头栏还出现两个汉堡键。
变化
- 删除自绘抽屉 / 遮罩、头栏汉堡键、全局面板底栏与抽屉关闭逻辑(官方已提供);
- 改为给官方抽屉 / opener / 头栏 / 全局面板 / composer / 设置面板 / 通用弹窗 / Toast / 右侧栏标签条 / 轨迹详情浮层补刘海与小白条安全区;横屏刘海时抽屉内容收缩而不是被裁切;
- 16px 输入规则收敛到触屏(
pointer: coarse),键鼠窄窗口保留官方字号; - 保留:后台任务胶囊、子代理图标、模型名宽度、统计 pill、阅读字号、终端按键条、长按排序、聚焦兜底;
engines.dsh提高到>=0.2.2-alpha.3,版本 0.3.0。
验证
真实 DSH Web 0.2.2-alpha.3 + Chromium 390×844 iPhone 仿真 + CDP safe-area(top 47 / bottom 34):
- 官方 opener 唯一,位于 12/58;头栏 padding 57/20/28;抽屉 280 宽、padding 47/34、z-index 71 > 遮罩 70 且内容可点;遮罩 / Esc / 点会话 / 切面板都能关闭;
- 全局面板顶部 95(48 + 47)、底部 34;右侧栏标签条 57、终端按键条 7 键底边 810(= 844 − 34);轨迹 92% 浮层 / 设置面板 / 通用弹窗均在安全区内;
- 后台任务胶囊
aria-label保留整句、可见文本只有数字;合成触摸长按 450ms 触发 dragstart→dragend,150ms 内移动 20px 不产生 drag 事件; - 700×390 + 左侧 47 安全区:opener 59/11、clearance
calc(48px + 47px)、抽屉不裁切; ?dsh-mobile=off与 1280×800 桌面不受影响,无本插件相关 console 报错。
真机 iOS 的真实安全区数值与软键盘时序仍建议顺手确认。
升级
插件页 / 市场刷新后更新到 0.3.0;要求 DSH Web ≥ 0.2.2-alpha.3。也可以把依赖指到
github:kaijia323/dsh-mobile-ui#44b16a40d3ddcc9a04a088cf7ab158c60be7c4e8。
v0.2.2 — 手机抽屉:滚动不再变排序,点会话一次进入
dsh-mobile-ui 0.2.2 — 手机抽屉:滚动不再变排序,点会话一次进入
手机上打开抽屉后,滚动和点按会被「长按拖拽排序」的替代实现抢走:按住会话/工作区行超过 450ms 就直接变成排序;一次拖拽结束后紧接着点会话,第一次点击被吞掉,需要点两次。
修复
- 按下第一帧就监听移动和滚动:450ms 内移动超过 8px 或列表发生滚动 → 取消长按,按滚动处理,不再进入拖拽。
- 抬手 / pointercancel 立即清掉长按计时器,不会在 450ms 后补发一次「迟到」的 dragstart。
- 只有真正拖动过才设置点击保护,且下一次按下就清零,不会再吞掉新的点按。
- 静止长按 → 拖拽排序(插入标记、drop、取消不落盘)保持原样。
- 只挂
html[data-dsh-mobile],桌面端不受影响。
验证
真实 DSH Web 0.2.2-alpha.2 实例 + Chromium 390×844 iPhone 仿真 + CDP 触摸,20/20 通过:
- 立即滚动 / 停顿 250ms 再滚动:列表滚动 84px,0 个 drag 事件(会话行、工作区行都测);
- 点会话一次进入;点完后 1.1s 内无迟到 dragstart;
- 完成一次长按拖拽后 120ms 内点会话,一次进入(旧版此处稳定复现「吞点击」);
- 静止长按仍进入拖拽、出现 dropAfter 插入标记;取消不发 drop、不写排序;
- 1280 桌面视口无变化,0 console error。
真机 iOS 的触摸时序和 Safari 的 DataTransfer 构造仍建议顺手确认。
升级
插件页 / 市场刷新后更新到 0.2.2,或把依赖指到 github:kaijia323/dsh-mobile-ui#668a83838e66a4633b0a01d67f4d25f27cb8f74a。
v0.2.1 — 右栏标签关闭键回到正中央
dsh-mobile-ui 0.2.1 — 右栏标签关闭键回到正中央
0.2.0 为了手机上点得准,把右栏标签条的按钮触摸盒统一放到 28px;但官方的关闭键是「20px 盒子 + 距标签顶/右各 4px」的绝对定位,被撑成 28px 后盒子向右下各多出 4px —— × 图标既不在标签正中(偏下 4px、偏左 4px),盒子还漏出 28px 标签的底边。
修复
- 放大后的触摸盒改为贴标签顶/右边缘(
top: 0; right: 0),14px 图标回到官方像素位置(离标签右边 7px),点按区域仍是 28px。 - 规则只挂
html[data-dsh-mobile],桌面端仍是官方的 20px、top4/right4,不受影响。
验证
- Chromium 移动仿真 363 / 390 宽:两个标签的关闭图标中心与标签中心
dy=0,图标右距 7px,28px 盒子完整落在 28px 标签内(修复前盒子 y 14→42,漏出标签底边 4px)。 - 1280 桌面视口:
data-dsh-mobile未注入,关闭键几何与 0.2.0 一致。 - 直接在生产实例(390×844、iPhone UA)复核:
top: 0 / right: 0 / 28px,0 console error。
升级
插件页/市场刷新后更新到 0.2.1,或把依赖指到 github:kaijia323/dsh-mobile-ui#2dfb37fd44bfe82ded0a07800804f31c0ac318ef。
v0.2.0 — 移动端补丁层(DSH 0.2.2+)
dsh-mobile-ui 0.2.0 — 移动端补丁层(DSH 0.2.2+)
从 0.2.0 起,插件定位为 DSH Web 官方移动适配的补丁层:官方已经做好的部分(设置页全屏、触屏行操作、composer 手机焦点、右栏自动全屏等)不再覆盖;官方修好一块,这里就删一块。
主要变化
- 抽屉:56px 竖栏 → 覆盖式抽屉,对话区占满整屏;刘海/小白条安全区补齐。
- 安全区全覆盖:抽屉、顶栏、输入区、设置面板、通用弹窗、Toast、右栏标签条、终端、轨迹详情。
- 键盘:跟随官方“页面平移”策略(去掉
interactive-widget);设置/安装类输入框补聚焦滚动。 - 手机输入:文本框 ≥16px,避免 iOS 聚焦自动放大。
- 触屏:右栏标签横滑、按钮 ≥28px、长按拖拽替代 HTML5 DnD(模型/会话/工作区排序)。
- 终端:底部 Esc / Tab / ↑ / ↓ / ← / → / Ctrl(粘滞)按键条。
- 轨迹页:官方 <760 已有 92% 浮层,这里只补安全区 padding。
- 头栏/模型名/统计 pill/正文 16px 等原有优化保留。
兼容声明
package.json 新增 engines.dsh: ">=0.2.2-alpha.2",与 DSH 的插件兼容检查对接;低于该版本会明确提示不兼容。
BREAKING
- 0.2.0 仅支持 DSH Web 0.2.2-alpha.2 及以上。
- 还在 0.2.1 稳定版(rc.x)的用户请继续使用 0.1.6;0.2.0 删除的旧补丁不会在 0.2.1 上代偿。
验证
- Chromium 移动仿真(390×844、touch、iPhone UA)覆盖首屏、抽屉、设置、弹窗、右栏、终端、插件页、
?dsh-mobile=off、1280 桌面、触摸拖拽,0 console error。 - CDP 模拟刘海/小白条(top 47 / bottom 34、仅 bottom 34):抽屉 844px 不溢出、账号菜单可达、设置面板 390×844 + padding、右栏标签条 padding-top 57px。
- 独立校验者用自建 DSH 0.2.2-alpha.2 + Chromium 环境复核,问题全部修复后 PASS。
已知边界
- 真机 iOS 安全区/软键盘时序、Safari 的
DataTransfer构造(长按拖拽)、真实会话下的轨迹浮层仍需真机确认。 - 768–1023 平板宽度仍走桌面版。
- 截图/演示录制于 0.1.x,设置页导航已改为官方移动布局(README 已标注)。
完整变更:#2
对比:v0.1.4...v0.2.0
v0.1.4 — 修复桌面端左栏自动收起
修复:安装插件后,桌面端进入 DSH / 加载会话时左侧导航栏被自动收起。
原因:关闭抽屉的 MutationObserver 没有判断手机端,桌面端会话加载也会触发 toggleSidebar。
现在 closeDrawer 只在手机端生效;桌面端左栏保持用户原来的状态。
v0.1.3 — 设置里打开插件市场后无法关闭
修复手机上从设置打开「插件市场」后关不掉的问题。
- 根因:移动端把设置弹窗的头部(打开配置文件 / 关闭)用
position: absolute挪到右上角,但z-index是 auto;打开插件市场后,市场自己的标题行是后渲染的兄弟节点,画在头部上面,点「✕」实际点到市场标题行,弹窗关不掉。 - 修复:浮动头部提升到
z-index: 6并保持pointer-events: auto,始终压在内嵌面板内容之上。 - 桌面端不受影响。
验证:本地隔离实例(DSH 0.2.1-rc.2 + dshmarket 1.69.0,390×844 视口)用 Playwright MCP 复现——修复前关闭按钮中心 elementFromPoint 命中市场标题行,修复后命中按钮本身,点击后 dialog 正常关闭。
v0.1.2 — 头部在后台任务/多按钮时不换行
修复手机上头部被后台任务、Agent Team 等额外按钮挤到换行、右侧出现被截断文字的问题。
- 头部强制单行,标题列优先收缩;
- 动作按钮的长文案(含「N 个后台任务运行中」)截断为省略号;
- 桌面端不受影响。
v0.1.1 — 公开包名 dsh-mobile-ui
包名从 @local/dsh-mobile-ui 改为 dsh-mobile-ui,并修正浏览器模块注册 id。
安装方式不变:DSH Web → 插件 → 添加插件,填 github:kaijia323/dsh-mobile-ui。
v0.1.0 — 移动端外壳插件首发
首个可用版本,按 DSH Web 0.2.1-rc.2 构建。
- 移动端抽屉导航、全宽对话区、全局面板底栏、全屏设置
- 触控尺寸控件、安全区适配、软键盘高度跟踪
- 桌面端行为完全不变(样式只在 ≤767px 生效)
- 逃生开关:
?dsh-mobile=off,或在插件列表里禁用dsh-mobile-ui
安装:DSH Web → 插件 → 添加插件,填 github:kaijia323/dsh-mobile-ui。