Skip to content

fix: preserve iOS overlay contexts through delivered touches - #266

Merged
originalix merged 3 commits into
mainfrom
codex/fix-ios-home-more-scroll
Nov 13, 2026
Merged

originalix merged 3 commits into
mainfrom
codex/fix-ios-home-more-scroll

Conversation

@huhuanming

@huhuanming huhuanming commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

问题

iOS 27 首页 More 快速关闭后约 250–300 ms 立即拖动,可能滑动吃力、松手无惯性,后续 React 点击失效。#263 仅在交互式控制器转场时保留退出窗口;普通列表拖动没有该 coordinator,窗口仍会提前释放。修前实测 4 个带旧 context 的 UIEvent 到达首页,随后 16 个输入无法还原为 UIEvent,手势未正常结束。

修复

  • 在实际 appWindow 和每个 active/retired overlay UIWindow 安装不取消、不延迟、不阻断其他手势的被动观察器,接受并发触摸类型。
  • 按同一实际宿主汇总触摸;退出项立即移出排序、恢复焦点,保留原窗口/root/scene 到触摸和交互式转场都结束,下一 main turn 重查完整触摸集合,无固定延时。
  • 触摸结束按当前及仍需保留的历史宿主跨 scene 唤醒退出项;旧 scene 断开按剩余使用者清理观察器,避免迁移后泄漏或提前释放。焦点恢复限制在实际同一 scene。

改动限于 iOS 窗口管理器、现有原生测试和生命周期 SPEC;无公共 API 或依赖变更。修复代码提交 c59572b79 已先 push,再完成以下本地验收;后续提交仅记录验收结果。

当前修复版本验证

Astra high 独立设计/验收,sol high 执行。

  • UIKit 原生 harness 30/30 通过,覆盖下层/退出窗口触摸、混合类型、跨窗口 UP/DOWN、反复更换宿主、coordinator 持有期间的空隙、受控 scene 归属/断开及焦点边界。
  • 本地原生重建 App:基于 App 189be24c24、SDK 6.7.0-61 加当前 Swift;已核对源码 SHA、实际编译和安装二进制符号。iPhone 17 Pro / iOS 27.0 模拟器 Debug,当前版本 4/4 聚焦交互回归通过:
场景 结果
首页 More 关闭后 header/250 ms 首次拖动 20/20 旧 context 事件完整送到主窗口,pan ended,随后首次 React More 点击重开
首页 More 关闭后 body/300 ms 首次拖动 20/20 旧 context 事件完整送到主窗口,pan ended,随后首次 React 账户入口打开选择器
下层 More 触摸中,上层独立 passive entry 关闭 下层自身 context 的 16/16 事件完整,随后 React 关闭按钮有效
触摸退出窗口自身 DOWN 到上层;关闭时焦点归还下层,关闭回调后 657 ms 的 UP 仍送原上层窗口/context;随后下层 React 关闭按钮有效

四组 main/background JS 标记稳定。嵌套用例使用实际独立退出的 OverlayView,不使用常驻窗的 Toast.message。下层用例没有观察到上层旧 context 路由到下层,不宣称复现 review 推断的修前丢事件。

git diff --check 通过。保留观察器而恢复 coordinator-only 条件的历史对照实现,按预期在 touch-only 窗口保留断言处失败。

先前版本验证与边界

初始修复 404e87c 已完成 8/8 首页(header/body × 250/300/350/400 ms,含松手后惯性)和 2/2 账户选择器同宿主回归。选择器使用 Watch-Only 账户行 More,与原钱包 More 共用 global NativeOverlay UIWindow / UIKit modal 宿主;并非原三账户 HD 钱包菜单。上述完整矩阵没有在本轮再次全量重跑。

混合类型测试直接投递合成 UITouch,并断言观察器配置;scene 测试用内部 resolver 在真实 UIWindow 上投影管理器归属。物理 Pencil 输入、系统实际多 scene 迁移、真机及 Release/TestFlight 仍未验收。公开观察器也无法预知尚未由 UIKit 投递的 DOWN。

该修复需要 SDK 发布和 App 原生重建才能进入用户安装包;本 PR 不发包。Hosted CI 状态以本 PR checks 为准,与本地验收分开。

@sidmorizon

Copy link
Copy Markdown
Contributor

@codex review

@sidmorizon

Copy link
Copy Markdown
Contributor

@codex security review

@sidmorizon

Copy link
Copy Markdown
Contributor

Cursor review failed.

Remote error: cursor_permission_denied: HTTP 403 Forbidden: Cloud Agent is not available for free users. Please upgrade to Pro.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-13T12:18:06.852982Z 404e87c Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown

Skipping Bugbot: Bugbot is disabled for this repository. Visit the Bugbot dashboard to update your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 404e87c680

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 404e87c680

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@sidmorizon

Copy link
Copy Markdown
Contributor

@huhuanming huhuanming left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Astra high 只读审计:混合触摸 P2 已在现有线程补充独立核对结果;另有以下宿主窗口跨 scene 迁移的 P2。两项均为代码路径发现,本次未重跑设备测试。

@sidmorizon

Copy link
Copy Markdown
Contributor

Devin Cloud review ↗

@huhuanming huhuanming changed the title fix: preserve iOS overlay contexts during app touches fix: preserve iOS overlay contexts through delivered touches Nov 13, 2026
@huhuanming
huhuanming enabled auto-merge (squash) November 13, 2026 13:05
@originalix
originalix merged commit e815612 into main Nov 13, 2026
16 checks passed
@originalix
originalix deleted the codex/fix-ios-home-more-scroll branch November 13, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants