Skip to content

fix(dialog): prevent cyclic accessibility recursion#287

Merged
steipete merged 1 commit into
mainfrom
steipete/peekaboo-recursion-crash-59d31b
Jul 21, 2026
Merged

fix(dialog): prevent cyclic accessibility recursion#287
steipete merged 1 commit into
mainfrom
steipete/peekaboo-recursion-crash-59d31b

Conversation

@steipete

Copy link
Copy Markdown
Collaborator

Summary

  • replace recursive dialog accessibility walks with iterative, identity-aware depth-first traversal
  • preserve pre-order, sheet-before-child ordering, and first-match behavior while breaking cycles and deduplicating aliases
  • add deterministic coverage for cyclic graphs, shared nodes, first-match short-circuiting, and a 20,000-node hierarchy
  • document the fix in the app and CLI changelogs

Test plan

  • DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer swift test --package-path Core/PeekabooAutomationKit --filter DialogElementTraversalTests --no-parallel
  • DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer swift test --package-path Core/PeekabooAutomationKit --no-parallel
  • DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer swiftlint lint --config .swiftlint.yml (13 existing non-serious warnings, none in changed files)
  • safe release checks plus swift test --package-path Apps/CLI -Xswiftc -DPEEKABOO_SKIP_AUTOMATION --no-parallel

@clawsweeper

clawsweeper Bot commented Jul 21, 2026

Copy link
Copy Markdown

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(dialog): prevent cyclic accessibility recursion This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

@steipete
steipete merged commit 6fdcad1 into main Jul 21, 2026
5 checks passed
@steipete
steipete deleted the steipete/peekaboo-recursion-crash-59d31b branch July 21, 2026 03:00
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.

1 participant