feat: LauncherUI 테스터 UX 개선 — sidecar 연동, 재생 속도 조절, 중단 버튼, Focus 스텝 처리 #15

Open
opened 2026-04-13 18:36:28 +09:00 by kimminsung · 0 comments
Owner

개요

LauncherUI를 테스터가 직접 사용할 수 있도록 UX 및 안정성 개선.

변경 사항

LauncherUI

  • Sidecar URL 입력란 추가 — 체크박스(ON/OFF) + URL 텍스트박스 (기본값 http://localhost:38080). 녹화/재생 모두 연동
  • 재생 속도 슬라이더 — 0.25x ~ 4.0x, 기본 1.0x. 슬라이더 값이 SpeedMultiplier로 PlayerEngine에 전달
  • 빌드 타임스탬프 타이틀[built YYYY-MM-DD HH:mm:ss] 표시로 재빌드 여부 즉시 확인 가능
  • 녹화 완료 후 RecordNameBox 초기화 — 이전 이름이 남아 덮어쓰는 문제 방지

PlayerEngine

  • 중단 버튼 동작CancellationTokenRun()에 전달, 스텝 사이마다 취소 확인
  • Focus 스텝 early return#32769 데스크톱 루트에서 시작하는 UIA path 해석 시도 없이 no-op 처리 (issue #11)
  • Type 스텝 unresolvable fallback — CommandBox 등 AutomationPeer 미부착 컨트롤: 현재 포커스된 엘리먼트에 타이핑
  • Drag 스텝 raw_coord fallback — UIA path 해석 실패 시 Click과 동일하게 raw_coord 사용
  • SpeedMultiplierPlayerEngineOptions에 추가, 딜레이를 delta / multiplier로 계산

테스트 결과

  • sphere, box 시나리오 재생 확인
  • 149 unit tests all pass
## 개요 LauncherUI를 테스터가 직접 사용할 수 있도록 UX 및 안정성 개선. ## 변경 사항 ### LauncherUI - **Sidecar URL 입력란 추가** — 체크박스(ON/OFF) + URL 텍스트박스 (기본값 `http://localhost:38080`). 녹화/재생 모두 연동 - **재생 속도 슬라이더** — 0.25x ~ 4.0x, 기본 1.0x. 슬라이더 값이 `SpeedMultiplier`로 PlayerEngine에 전달 - **빌드 타임스탬프 타이틀** — `[built YYYY-MM-DD HH:mm:ss]` 표시로 재빌드 여부 즉시 확인 가능 - **녹화 완료 후 RecordNameBox 초기화** — 이전 이름이 남아 덮어쓰는 문제 방지 ### PlayerEngine - **중단 버튼 동작** — `CancellationToken`을 `Run()`에 전달, 스텝 사이마다 취소 확인 - **Focus 스텝 early return** — `#32769` 데스크톱 루트에서 시작하는 UIA path 해석 시도 없이 no-op 처리 (issue #11) - **Type 스텝 unresolvable fallback** — CommandBox 등 AutomationPeer 미부착 컨트롤: 현재 포커스된 엘리먼트에 타이핑 - **Drag 스텝 raw_coord fallback** — UIA path 해석 실패 시 Click과 동일하게 raw_coord 사용 - **SpeedMultiplier** — `PlayerEngineOptions`에 추가, 딜레이를 `delta / multiplier`로 계산 ## 테스트 결과 - sphere, box 시나리오 재생 확인 - 149 unit tests all pass
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kimminsung/recordingtest#15