目录

v0.2.12:顶层移动端弹层与稳定拖拽

在 GitHub 上查看源文件

v0.2.12 是 v0.2.11 的聚焦修复版本,解决真实手机上的弹窗遮挡,让移动端 Sheet 动画保持连续,并把顶部把手升级为可靠的下拉关闭控件。

修复

  • 全部 15 个 Mnemon 工作区操作弹窗现在统一使用共享 MnemonDialog 组件,并通过页面 body 顶层 portal 渲染。DSH 导航栏及其他宿主堆叠上下文不再覆盖 Sheet 边缘或拦截其中的控件。
  • 移动端 Sheet 提供真实的 28px 顶部拖拽区。下拉超过距离阈值或完成明确的向下甩动时关闭弹窗,较短手势则平滑回到原位。
  • 页眉关闭、遮罩关闭、Escape、底部取消和拖拽关闭共用同一条协调退出路径,只有可见退出动画完成后才移除弹窗状态。
  • 长表单继续保持固定页眉与操作区,正文可在竖屏、窄视口和矮横屏中独立滚动。

动效与可靠性

  • 进入、退出和回弹只使用适合合成器处理的 transform 与 opacity 动画。关闭或第二次拖拽会从当前可见位置继续,避免手势与动画状态切换时跳变。
  • 全局 pointer 跟踪确保手指离开把手后仍能完成手势;丢失 pointer capture、pointer 取消、窗口失焦、应用切换和页面可见性变化都会恢复到稳定静止状态。
  • 新拖拽会使旧回弹清理失效,因此快速再次抓取 Sheet 时不会被前一次延迟完成的动画打断。
  • 弹窗打开期间锁定背景滚动,并在所有关闭路径后恢复。繁忙写入仍阻止关闭;减少动态效果偏好和不支持 Web Animations 的浏览器使用安全的即时回退。
  • 现有焦点圈定、初始焦点、异步内容就绪后的焦点移交和关闭后的焦点归还继续由共享组件统一处理。

安全与兼容性

  • 存储格式、Provider 连接、配置键、RPC 权限、公开工具 schema、凭据和服务端行为均未改变,已有数据无需迁移。
  • 手势只在移动端 Sheet 布局的顶部把手生效,弹窗正文仍可原生纵向滚动,桌面弹窗行为保持不变。
  • 更新 dsh-mnemon 并重启受影响的 DSH profile 即可;如需回滚,正常降级包版本即可恢复 v0.2.11 的客户端行为。

验证

  • 本地完整验证共 369 项测试通过;Windows 专用 smoke test 只会在非 Windows 本地环境跳过。
  • 8 项定向弹窗回归覆盖 body portal 与滚动锁、动画关闭时序、距离关闭、短拖拽回弹、失焦恢复、快速二次抓取隔离、busy 守卫和减少动态效果回退。
  • 结构检查覆盖最高顶层、全局 pointer 监听、粗指针尺寸和全部共享弹窗调用点。
  • 已在 390×844 和 667×375 的真实浏览器交互中检查展开的宿主导航栏、左边缘命中、竖横屏滚动、拖拽关闭、回弹、快速再次抓取、底部取消和版本检查状态。
  • 类型检查、确定性构建、Headless 激活、发布包校验、publint、attw,以及 Ubuntu 与 Windows CI 均通过。

上一个补丁版本见 v0.2.11 发布说明。