ksj09406 4d66abb7fa 끌 때 저장하지 않은 편집을 묻는다 (사용자 요청 · 결정)
편집이 있어도 하단 [종료] 를 누르면 묻지 않고 꺼졌다(편집은 보관본이 다음에
되살렸다). 사용자 판단 "잘못 고치고 있었으면 버릴 수 있어야 한다" 에 따라
끌 때 [저장하고 종료] · [저장하지 않고 종료] · [취소] 를 묻는다.

범위(사용자 결정): 파일 비교의 모든 탭 - 지금 화면(두 파일 · Git 모드 · 네 칸),
뒤에 맡겨 둔 탭, 닫았지만 편집이 남은 짝. 메모는 제외. 창에 파일 이름을 댄다.
저장은 기존 길(SaveWorkingCopy · WritePlainFile)로, 하나라도 못 쓰면 끄지
않는다. 버리면 걸려 있던 보관 쓰기를 기다린 뒤 보관본을 비워 다음에 되살아
나지 않게 한다.

플랫폼의 ICloseGuard 를 HomeViewModel 이 구현(플랫폼 수정 없음). 처음엔 곧바로
답해 셸의 Close() 가 Closing 안에서 불려 창이 안 꺼졌다(로그: 창을 닫는 중에는
Close 를 호출할 수 없습니다) - await Task.Yield() 로 비켜선 뒤 묻는다.

시험: 빌드 경고 0 · 오류 0. 화면 g19-exit-confirm 다섯 경우 실패 0 - 고친 것
없으면 묻지 않음, [취소] 면 그대로, [저장하지 않고 종료] 면 파일 그대로 · 보관본
빔 · 다시 켜도 안 살아남, 고친 직후 [저장하고 종료] 면 파일에 씀, 뒤 탭에만 편집이
있어도 묻고 그 파일만 씀. Git 모드는 화면 시험 안 함. 기존 회귀는 사용자
지시로 돌리지 않았다.

Agent: main (claude-opus-5-5)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:19:05 +09:00
..