Orchestrate smoke gap fix evaluation + close smoke iter 1 (#11)

- Recorder STAThread + KeyTranslator + 3 split counters
- Player StepKind Wheel/Focus + null-target guard
- 60/60 tests, regression trap verified
- gitignore artifacts/ and scenarios/ (smoke local data)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
minsung
2026-04-07 17:34:49 +09:00
parent 139fbbc0bc
commit a5523b41e5
5 changed files with 101 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
# 2026-04-07 이슈 #11 — Smoke gap fix 오케스트레이션
- **이슈**: #11 (smoke test 1회차 gap 수정)
- **소요 시간**: ~25분 (Generator + Evaluator 백그라운드)
- **Context 사용량**: ~330k tokens (orchestrator 누적)
## 사이클
1. Smoke 1회차 실행 → 4개 gap 발견
2. 이슈 #11 생성
3. Generator 백그라운드 → commit `139fbbc`
4. Evaluator 백그라운드 → **pass**
5. PROGRESS 갱신, 이슈 close
## 근본 원인
recorder의 Main 스레드가 **MTA** (`[STAThread]` 누락). UIA3은 STA 필요 → 모든 resolver 호출 조용히 null 반환. 키 이벤트는 (0,0) 좌표로 resolver 호출까지 했지만 역시 null. 단위 테스트는 `IElementSnapshot` fake 기반이라 실제 STA/UIA 경로를 안 탐.
## 수정 요약
- recorder: `[STAThread]`, key 이벤트 resolver skip, 카운터 3종, `KeyTranslator.cs`, printable 런 collapse
- player: `StepKind` Wheel/Focus, null-target guard, 스킵 로그
- 테스트: 53 → 60, 새 테스트는 regression trap 역할 검증됨
## 비용
Generator ~94k + Evaluator ~39k + Orchestrator ~20k = **~153k**
## 다음 단계
Smoke 2회차 — 사용자 환경에서 재녹화/재생 시도.

View File

@@ -0,0 +1,24 @@
# 이슈 #11 Smoke Gap Fix — Evaluator
- 날짜: 2026-04-07
- 역할: Evaluator (Generator 독립 채점)
- 대상 커밋: `139fbbc`
- 이슈: #11 smoke gap fix (recorder target null + VK 번역, player enum + null guard)
## 소요 시간
약 8분 (빌드/테스트 ~15초 + 소스 및 테스트 검증)
## Context 사용량
약 45K 토큰 (소스 파일 7개, 테스트 3개, git show HEAD~1 2회)
## 결과
- 빌드: green (경고 0, 오류 0)
- 테스트: 60/60 pass (10+10+12+5+5+6+6+6)
- 판정: **pass**
- 4개 gap 모두 실제 수정 + 회귀 테스트 확인
- 3개 신규 테스트 모두 실질 assertion (stub 아님)
- Regression trap: `HEAD~1` 대비 enum/guard/KeyTranslator 부재 시 신규 테스트 실패 확인 (소스 diff 기반)
## 산출물
- `docs/contracts/smoke-gap-fix.evaluation.md`
- `docs/history/2026-04-07_이슈11-smoke-gap-fix-evaluator.md` (본 문서)