refactor(ios): drop the unused modal-scope input and document corpus recording
Merged
TH
1d ago+413+413+012345678901234567890123456789-85-85-01234567890123456789
Summary
SnapshotPresentedSurface.classifydrops itsmodalScopeinput. Its only caller always passednil. ThemodalScopeExpectedcolumn, its fixture text, and its Swift test go too. The table rows and the TS rule stay as they are.ModalSurface(follow-up to #4128): a note that an empty honor-modal read reportsrootMismatchonly as a label, the duplicate-occurrence rule in the walk comment, and each parent's children counted once. No behavior change.- Corpus README: prerequisites, a worked
expect+expectModalScopeexample, the closingswift teststep, and a screenshot-first rule: expectations come from what the screen shows, never from the rule's output. An ambiguous duplicate may be expected asunknown(duplicatedChild). pnpm print:alert-surface: prints a recording's honor-modal tree with indexes and kept-children markers, plusModalSurface's reading labelled as the rule's answer, not ground truth. It rejects malformed or non-format-2 recordings.- Test-app README: a fresh-simulator recipe for the SpringBoard prompt (create/boot, build and install, open a session, raise it).
Tree printer on a real recording
$ pnpm print:alert-surface apple/snapshot-presentation/Tests/AlertSurfaceCorpus/iphone-duo-folded-springboard-open-in-app.json
ModalSurface reads (the rule's answer, not ground truth): modal
0 Application "" [kept 1 of 40 children]
1 Window "" [kept 1 of 3 children]
2 Other "" [kept 1 of 3 children]
3 Alert "Open in “Agent Device Tester”?"
...
Verification
swift test --package-path apple/snapshot-presentation: 50 passedgeometry-policy-presented-surface.test.ts: passedbuild:xcuitest:iosandbuild:xcuitest:macos: succeededpnpm check:affected --run --head 4b6ccdf7cc: passed
🤖 Generated with Claude Code