# v0.1.269 — QA-070 프로젝트 저장 경로 기억 + handoff 다이어트 (PM 18건 확정 반영)

- 버전: v0.1.269
- 분류: 48th stable seal (v0.1.366) 일괄 봉인 사이클
- 다운로드: [factory00-windows-x64-v0.1.269.zip](../../downloads/archive/factory00-windows-x64-v0.1.269.zip) (archive 보존)
- 캡처: [qa-screenshots/v0.1.269/](../../qa-screenshots/v0.1.269/)

---

## 협업자 PM 회신 1건 처리 + 협업자 git pull 반영
이번 사이클에서는 두 가지 일이 동시에 진행되었습니다.
**먼저**, 협업자 PM께서 2026-05-21 새벽 handshake r058 commit (4278c77)에서 누적 18개 QA 항목을 [완료] 완료 확정해 주셨습니다. 사용자 명시("협업자 git pull 했을 때 답변받거나 더이상 유효한 내용 아니면 handoff에서 삭제하여 문서 다이어트")에 따라 handoff-pm-action.html [2] spot-check 박스를 32건 -> 14건으로 정리했습니다.**다음**, QA-070 프로젝트 저장 기본 경로 + 경로 기억 기능을 구현했습니다. 협업자 PM께서 "Save As 대화상자가 매번 Windows 다운로드 폴더로 초기화되어 불편하다"고 요청하신 사항입니다.
---

## QA-070 fix — 저장 경로 기억 (PlayerPrefs `LastSaveDirectory`)

### 변경 동작
대화상자 초기 경로 결정에 3순위 fallback 체계를 도입했습니다.
| 우선순위 | 경로 | 적용 시점 |
|---|---|---|
| 1순위 | _currentTwnPath의 디렉토리 | 현재 작업 중인 .twn 파일이 있을 때 || 2순위 | PlayerPrefs.LastSaveDirectory | 이전 세션에서 사용자가 선택한 마지막 경로 || 3순위 | Application.dataPath/../Project/ | .exe 옆에 자동 생성되는 Project/ 폴더 |3순위 경로는 폴더가 없으면 자동으로 만들어줍니다. 협업자 spec의 정확한 기본값(.exe 실행 파일 위치 기준 상대 경로 ./Project/)을 따랐습니다.
### 경로 기억 시점
Save / Save As / Open 대화상자에서 사용자가 경로를 선택해 확정한 직후에 PlayerPrefs.SetString("LastSaveDirectory", ...) 호출 + PlayerPrefs.Save()로 즉시 디스크에 기록합니다. 다음 앱 실행 시 같은 폴더에서 시작합니다.
### 헬퍼 함수 추출
GetTwnDialogInitDir() + RememberTwnDialogDir(filePath) 두 헬퍼로 추출하여 Open 핸들러와 Save 핸들러에서 동일하게 사용합니다. 향후 신규 다이얼로그 추가 시에도 같은 패턴으로 일관성 유지 가능합니다.---

## handoff-pm-action.html 다이어트
협업자 PM이 r058에서 확정한 18개 항목 (QA-033/035/036/037/041/044/046/047/048/049/051/054/056/057/058/064/067/068)을 spot-check 박스에서 제거했습니다. 남은 14건은 seal별로 정리하여 표시합니다.| 박스 | 변경 전 | 변경 후 |
|---|---|---|
| [2] spot-check | 누적 32건 | 잔존 14건 (PM 확정 18건은 별도 표시) |
| [2] 38th seal | 12건 | 5건 (QA-007/009/021/031/052) |
| [2] 39th seal | 7건 | 2건 (QA-053/055) |
| [2] 40th seal | 6건 | 5건 (QA-038/039/040/062/063) |
| [2] 41st seal | 7건 | 2건 (QA-042/043) |
PM이 확정한 18건은 박스 하단에 별도로 한 줄로 표시해 협업자가 본인 진행 상황을 빠르게 확인할 수 있도록 했습니다.
---

## 변경 파일
- Assets/Scripts/Game/Factory00Bootstrap.cs — GetTwnDialogInitDir() + RememberTwnDialogDir() 헬퍼 추출 + Open/Save 핸들러 통합- wiki/handoff-pm-action.html — [2] spot-check 박스 다이어트 (32 -> 14건)- ProjectSettings/ProjectSettings.asset — bundleVersion 0.1.268 -> 0.1.269---

## 검증 절차
1. 첫 실행: Save As 대화상자 -> /Project/ 폴더가 자동 생성되고 그 폴더에서 시작2. 임의 경로(예: D:/MyProjects/) 선택 후 저장 -> 저장 성공3. 앱 종료 후 재실행 -> Save As 다시 누르면 D:/MyProjects/ 에서 시작 (마지막 경로 기억)4. 외부 URL handoff.html 모바일 확인 -> [2] 박스가 14건으로 정리되어 표시
---

## 다음 사이클 예정
- **v0.1.270** — QA-066 (씬 클릭 -> 부품 리스트 오토 트래킹, [[설정]옵션] 토글)- **v0.1.271** — QA-065 (Undo/Redo 드롭다운 히스토리, P2 검토 답변) / QA-069 (Collision Check 단일 선택)- **v0.1.272** — F10 SSOT 헬퍼 추출 (41st seal 중간 deferred) + publish-build-auto.sh HEADER_TITLE / FACTORY00_GIT / COLLAB_GIT marker hook 3종 추가- **42nd stable seal** — v0.1.268~272 5사이클 누적 후 봉인 예정


---

## 봉인 참조

본 사이클은 **48th stable seal (v0.1.366, 2026-05-24)** 일괄 봉인에 포함됨.

- journal: [2026-05-24-v0.1.298-366-48th-stable-seal.md](../../journal/2026-05-24-v0.1.298-366-48th-stable-seal.md)
- alias zip: [factory00-windows-x64-v0.1.366-stable.zip](../../downloads/factory00-windows-x64-v0.1.366-stable.zip) (170 MB)
