1.9 KiB
1.9 KiB
2026-04-07 이슈 #11 — smoke gap fix (Generator)
- 관련 이슈: #11
- 역할: Generator
- 소요 시간: ~45분
- Context 사용량: ~70k tokens
무엇을 했나
EG-BIM Modeler 스모크 테스트에서 노출된 4개 통합 갭 수정.
recorder
KeyTranslator추가: Win32 VK → 문자/키 이름 (A-Z/0-9/F1-F24/Enter/Tab/Esc/Arrows/...). 대문자 컨벤션 채택.DragCollapser.key_down재작성:- 연속 printable key_down은 단일
type스텝으로 누적 (BOX등) - 모디파이어(Ctrl/Shift/Alt/Win)는 상태 추적, 단독 스텝 미방출
- 조합 시
ctrl+c형태의hotkey스텝 - 명명 키(enter/tab/...) →
hotkey스텝 ScenarioStep.RawVk필드 추가 (진단용)
- 연속 printable key_down은 단일
Program.cs:[STAThread]추가 (UIA3 쓰레드 친화성)unresolved_paths(리졸버 실행 후 null) +no_resolver_attempt(키 이벤트/automation null) 분리 카운터null_target_steps최종 집계 출력- 키 이벤트는 의미 없는 좌표(0,0)로 리졸버 호출 방지
player
StepKind.Wheel,StepKind.Focus추가PlayerEngine.ExecuteStep:- null target + target 필요 종류(Click/Drag/Type/Focus)는 경고 후 skip (데스크탑 오클릭 방지)
Wheel/Focus케이스 no-op 로그 (이슈 #11 코멘트)
테스트
RecorderTests: KeyTranslator, printable→"BOX", ctrl+c→hotkeyPlayerEngineTests: NullTarget_Skips, Wheel/Focus 파싱, Wheel 실행SmokeRegressionTests신규 파일: 실제 recorder output 모사 yaml → 전체 파이프라인
결과
- 빌드: 경고 0, 오류 0 (TreatWarningsAsErrors 유지)
- 테스트: 53 → 60 (전원 통과)
미결
Hotkey스텝에 target이 null일 때도 현재는 실행됨(모디파이어 전역 키 가정). 필요 시 추후 정책 조정.- recorder 실사용에서 target이 여전히 null인 경우 root cause는 STA/automation 부재일 수 있어 smoke 재실행 확인 필요.