# v0.1.226 — File P2 Recent Files (PlayerPrefs + ContextMenu)

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

---

## Unity 신규 기능
- **Recent 버튼** — Ribbon File 탭. 최근 5개 .twn 파일 ContextMenu 표시- 클릭 -> 버튼 아래 ContextMenuElement 출현- 항목: 파일명(.twn 확장자 제외) — 클릭 시 OpenTwnPath(path) 호출- 파일 없음: 최근 파일 없음 (.twn Open/Save 후 누적) 토스트
## 인프라
- **PlayerPrefs SSOT**: factory00.recent_files (| separator, 최대 5개)- LoadRecentFiles(): PlayerPrefs split + System.IO.File.Exists 필터 (삭제된 경로 자동 제외)- AddToRecent(path): 중복 제거 + prepend + 최대 5개 + PlayerPrefs.Save- OpenTwnPath(string path) 신규 — cmd-open 핸들러 핵심 로직 추출- cmd-open + Recent 메뉴 항목 click 모두 동일 path 사용- try/catch + Load + ApplyTwnPayload + AddToRecent + Bus.Publish(TwnProjectLoadedEvent) 일원화
## 변경 파일
- Assets/UI/Components/Ribbon.uxml — cmd-recent 버튼 (Open 옆)- Assets/Scripts/Game/Factory00Bootstrap.cs (~80 라인)- OpenTwnPath(string path) 신규 (cmd-open 핸들러에서 추출)- LoadRecentFiles() / AddToRecent(path) 헬퍼- BindRibbonFileRecentCommand(root) 핸들러 (ContextMenuElement 표시)- cmd-open 핸들러 단순화 (OpenTwnPath 호출)- cmd-save/save-as 핸들러에 AddToRecent(path) 추가- SetupRibbonShell wire 추가
## Ribbon 8 탭 명령 누계 — 43 명령
- File = 6 (New · Open · **Recent** · Save · Save As · Import STEP)
## 협업자 spec 매칭
- studio-file-tab P2 Recent Files 완성 — TwnProjectLoadedEvent/SavedEvent 인프라 활용 (협업자 spec project-save-format §7)
## 다음 단계
- v0.1.227+ Edit Duplicate (Part Mesh/Material 복제 매트릭스)- v0.1.228+ View P2 카메라 프리셋 (Save View / Load View)- task #39 InspectorVM / MotorTableVM 분리


---

## 봉인 참조

본 사이클은 **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)
