fix(alignment): detach 상태에서 Start 눌러도 계속 팝업만 뜨는 무한루프 fix

증상 (사용자 보고 2026-08-11 · demo-final):
  Alignment 중 detach 판정 → 팝업 + step 0/3 회귀.
  사용자 재부착 후 Start 버튼 눌러도 "다시 부착하세요" 팝업만 계속.

원인:
  이전 fix (2026-08-04) 는 Start onClick 시 prevDetached=true 면 팝업 재발생 +
  진행 차단. 의도는 "부착 안 하고 Start 눌렀을 때 안내".
  문제: waitingForStart=true 상태에서는 auto-scan (isContinuousMode=false)
  이 멈춰 있어 prevDetached 값이 갱신 안 됨. 사용자가 실제 재부착해도
  prevDetached 는 이전 detach 값이 stale 하게 남아 Start 눌러도 항상 팝업.

수정:
  Start onClick 시 stale 상태 리셋 (prevDetached=false, showDetachAlert=false)
  후 정상 진행. 실제 detach 이면 첫 scan cycle 의 rising edge (line 882)
  로 팝업 자동 재발생 + waitingForStart=true 회귀 → 안내 유지.
  실제 부착이면 정상 진행. auto-scan 이 항상 진짜 상태를 판정.
This commit is contained in:
2026-08-11 10:31:33 +09:00
parent 8cab1d084c
commit 1aa15fad1a
@@ -1233,15 +1233,14 @@ fun PlacementGuideView(appState: AppState) {
if (waitingForStart) {
Button(
onClick = {
// 2026-08-04: 탈착 상태에서 Start 눌러도 진행 안 되던 사용자 혼란 fix.
// 기존: waitingForStart=false → 다음 scan 이 detach 재감지 → 다시
// waitingForStart=true 로 회귀 · rising edge 이미 소진되어 팝업 없음.
// 변경: onClick 시점에 prevDetached 감지 → 팝업 재발생 + Start 진행 차단.
// "센서 부착 후 다시 시도" 를 사용자에게 명확히 안내.
if (prevDetached) {
showDetachAlert = true
return@Button
}
// 2026-08-11 재수정: 이전 fix (prevDetached true 면 팝업+차단) 는
// auto-scan 멈춘 사이 prevDetached 값이 stale 인 문제 있음.
// → 사용자가 재부착해도 상태 갱신 X · Start 누를 때마다 팝업만.
// 현재 정책: stale 상태 리셋하고 첫 scan 이 재판정. 실제로 detach
// 이면 첫 scan rising edge (line 882) 로 팝업 자동 재발생 →
// waitingForStart=true 자동 회귀. 실제 부착이면 정상 진행.
prevDetached = false
showDetachAlert = false
waitingForStart = false
isContinuousMode = true
// V2 alignment 리셋 — baseline 동안 silent push 가 없었더라도 안전망.