Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

iOS alert resolution reads every element of the app window when a popover is found

オープン
#2,905 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
64/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
swift

調査の方向性

Start in RunnerTests+Alert.swift around the resolution root and preferredAlertTitle, then inspect actionableElements in RunnerTests+SystemModal.swift and compare the no-alert fix from #2901. Bound the XCTest queries under the popover or dimming region and check the deadline between reads. Add a popover-over-long-list regression fixture and verify the command finishes within its budget.

索引モデルが issue の本文から書いたものです。

説明

ready-for-agent

Problem

Alert handling in the iOS runner reads per element over a whole app window, with no deadline check, when a popover is found. #2901 fixed the no-alert case (firstDismissPopupWindow now uses one predicate query). The same cost remains when a popover is present:

  • the resolution root becomes the whole app window (RunnerTests+Alert.swift ~47-48);
  • actionableElements (RunnerTests+SystemModal.swift ~121-143) makes about 5 XCTest reads for each button, cell and link;
  • preferredAlertTitle (RunnerTests+Alert.swift ~219) walks every descendant.

A popover over a list with many rows can therefore overrun the command watchdog and keep the runner busy. The synchronous XCTest work continues after the watchdog answers the client, so later commands get RUNNER_BUSY. This is the same wedge #2901 fixed for the no-alert path.

Required behavior

Alert resolution makes a bounded number of XCTest reads, whatever the screen size: query under the dimming or popover region, use predicates instead of walks, and check the command deadline between reads. Add a regression fixture with a popover over a long list, and assert the command finishes well within its budget.

Found in the adversarial review of #2901.

主要言語
TypeScript
スター
5.1k
フォーク
339
平均マージ
12時間 50分
マージ済み PR(30日)
632

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

callstack/agent-device のほかの issue

callstack/agent-device の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。