find focus/type dispatch: close its waived interaction guarantees (offscreen, parentOwnedTouchPoint, nonHittable, targetStability)

未關閉
#3,734 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
30/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
typescript
領域
testing-qa

研究方向

Start with the find-focus-dispatch row in packages/contracts/src/interaction-guarantees.ts and the cases in interaction-guarantees.test.ts, then read ADR 0011 for what a gap waiver must cite. Trace the focus/type dispatch seam to see where it uses centerOfRect instead of resolveInteractionTouchPoint, and where it skips the hittable and ref-stability checks the other paths run. Done means each of the four cells is classified as runtime, runner or delegated with a via that names the shared implementation, and each change has a red/green regression. Wait for #3727 to land before starting.

由索引模型根據 Issue 內容生成。

描述

enhancement ready-for-agent

Purpose

#3727 classifies the find <locator> focus / find <locator> type dispatch path as find-focus-dispatch in packages/contracts/src/interaction-guarantees.ts. Four of its cells are gap: waivers. ADR 0011 requires every gap waiver to cite an open tracking issue; this issue owns those four. (outcomeObservation is owned by #3335.)

Required behavior, per cell

  • offscreen: a focus/type match whose target is off screen is refused with a typed reason, or scrolled into view by the shared rule. It is not dispatched at an off-screen point.
  • parentOwnedTouchPoint: the seam aims at the point resolveInteractionTouchPoint chooses, not centerOfRect of the resolved node, so a center tiled by an independent child is not tapped.
  • nonHittable: a non-hittable match is either promoted with the targetHittable / hint annotation the other paths emit, or refused.
  • targetStability: the target is re-confirmed (or the ref frame checked) between capture and dispatch, the same way the other paths do it.

Completion

Each cell moves from waived to an enforced classification (runtime / runner / delegated) whose via names the shared implementation. interaction-guarantees.test.ts passes, and each change carries a red/green regression. Cells can close in separate PRs; close this issue when none remain waived.

Blocked by: #3727 (introduces the row).

主要語言
TypeScript
星號
5.2k
分支
359
平均合併
13 小時 37 分鐘
30 天內合併 PR
665

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

callstack/agent-device 的其他 Issue

查看 callstack/agent-device 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。