fix(window): AX 메시징 타임아웃 설정 실패 시 해석 중단#107
Merged
Merged
Conversation
setMessagingTimeout 실패를 로그만 남기고 기본 6초 경로로 계속 진행하던 것을, 즉시 해석 중단으로 바꾼다. 타임아웃 값은 상수 2.0이라 SDK가 실패를 반환하는 경우는 무효 element뿐인데, 그 element로는 이후 AX 읽기·쓰기도 성공할 근거가 없다. WindowResolutionError에 messagingTimeoutConfigurationFailed(code:)를 추가하고 userFacingMessage를 붙였다. 두 호출부(app·window element)가 실패를 전파한다. Shared·WindowAccess AGENTS.md에 이 동작을 반영했다.
이번 세션에서 겪은 두 함정을 남긴다. - 실행 중인 서명 앱을 건드리지 않고 컴파일 검증하려면 별도 -derivedDataPath로 빌드한다. #if DEBUG는 구성별로 다르므로 그 블록을 건드릴 땐 Debug·Release 양쪽을 확인한다. - squash-merge가 head 브랜치를 지우므로 그 위에 스택된 PR은 머지 시 자동으로 닫히고 재개설·base 변경이 불가하다 — main 대상으로 재개설한다. 한 PR이 다른 PR이 수정하는 코드를 옮기면(테스트 파일 분할 등) 내용 변경을 먼저, 이동을 마지막에 머지한다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AXUIElementSetMessagingTimeout실패를 로그만 남기고 계속 진행하던 것을 즉시 중단으로바꾼다. 이전 감사(
algorithm-improvement-implementation-review-2026-07-23.md)의 LOW 항목이다.타임아웃 값은 상수
2.0이라 SDK가 실패를 반환하는 경우는 무효 element뿐인데, 그 element로는이후 AX 읽기·쓰기도 성공할 근거가 없다. 기본 6초 타임아웃으로 계속 진행하면 응답 없는 앱에서
메인 스레드를 더 오래 막을 뿐이다.
WindowResolutionError에messagingTimeoutConfigurationFailed(code:)+userFacingMessage추가AGENTS.md를 현행화 (이 변경 + 이미 머지된CommandOutcomePolicy·테스트 분할)커밋
fix(window):— 타임아웃 중단 코드 + Shared/WindowAccess AGENTS.mddocs(agents):— 이미 머지된 fix(window): AX 결과 커밋 정합성 + 실패 경로 노출 #103/#106을 반영한 나머지 문서Type
Checklist
make lintclean — 0 violations / 49 filesmake test— 208 checksBUILD SUCCEEDEDmake run)로 실제 앱 라이브 검증 — 스냅·던지기·최대화·되돌리기·디스플레이 이동 정상.docs/not stagedNotes / risk
출처: 이 코드 변경은 이번 세션에서 작업 트리에 이미 존재하던 것을(다른 세션/편집으로 추정)
사용자 승인 하에 커밋한 것이다. 라이브 테스트에 포함해 정상 동작을 확인했다.
리뷰어가 볼 곳: 이 변경은 이전 리뷰에서 "도달 불가에 가까워 이득 없다"고 반려됐던 지점이다.
반대 결론으로 구현됐으므로,
messagingTimeoutConfigurationFailed가 정상 사용 중 발동하지 않는지(= 타임아웃 설정 실패가 실제로 무효 element에서만 나는지) 확인이 필요하다. 라이브 44회 조작에서는
한 번도 발동하지 않았다(모든 명령 정상).