기존 state.client.clientInstalled boolean 은 packKey/installPlatform/skipMap 차이를 보지 않아, 참가자→싱글 로 뒤로가서 변경했을 때 skipMap=false 경로의 맵 설치가 영영 안 일어났다 (반대로 싱글→참가자 면 안 풀어도 될 맵이 남음). state.client.lastInstall 에 마지막 성공 payload 전체를 저장하고, 진입 시 새 payload 와 필드별 비교해서 다르면 재설치한다. 실패는 lastInstall 을 비워 다음 진입에서 자동 재시도. 리뷰어 지적사항(installer/renderer.js:657) 대응. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>