feat(flow): focus session api v2 웹 계약 전환

This commit is contained in:
2026-03-16 17:30:52 +09:00
parent f4910238a0
commit 38abc1e0c7
30 changed files with 390 additions and 702 deletions

View File

@@ -14,10 +14,10 @@ Last Updated: 2026-03-16
## 현재 우선순위
1. `/app` Atmosphere Entry Shell
2. `Custom Duration Contract`
3. `Weekly Review Dock Reposition`
4. `Core Loop Alignment` browser audit
1. `/space` current-session-only cleanup
2. `Core Loop Alignment` browser audit
3. `Weekly Review` carry-forward 고도화
4. `Premium Ambience` polish
## 최근 세션 상태
@@ -30,7 +30,7 @@ Last Updated: 2026-03-16
- no-session 상태는 더 이상 legacy `goal + microStep + fixed ritual` 화면을 쓰지 않는다.
- 현재는 `goal 1개 + 예상 시간(분) + atmosphere 12개 grid + start CTA`로 들어간다.
- 선택한 atmosphere는 `/app` 배경 preview와 `/space` start payload의 `scene/sound`에 같이 반영된다.
- duration은 우선 가장 가까운 기본 리듬으로 매핑하는 임시 계약을 사용한다.
- duration은 raw `focusDurationMinutes`로 server에 전달한다.
- weekly review entry는 right-side quiet dock 위치로 옮겨 main CTA보다 낮은 위계를 유지한다.
- `/app` Atmosphere Entry Shell visual premium polish를 반영했다.
- utility card 묶음 대신 `decision rail + selected atmosphere stage + curated library` 구조로 재구성했다.
@@ -122,10 +122,6 @@ Last Updated: 2026-03-16
- `Weekly Review Entry Flow`의 Pro personalized handoff까지 연결됐다.
- Pro에서는 `/stats` carry-forward에 추천 ritual을 함께 보여준다.
- `/stats` 마지막 CTA와 `/app` teaser / return hint가 더 구체적인 handoff 톤으로 바뀐다.
- `/space` complete 이후 secondary review teaser까지 연결됐다.
- goal complete로 setup 상태로 돌아왔을 때만 setup drawer 아래에 작은 review teaser가 보인다.
- full review 강제 이동 없이 `/stats`를 여는 secondary entry로만 동작한다.
- 방금 끝낸 흐름을 반영한다고 과장하지 않는 카피로 정리했다.
- `Weekly Review` recovery의 서버 연결이 들어갔다.
- server `focus-summary` 응답에 `recovery`가 추가됐다.
- 현재는 `pause 뒤 복귀`만 실집계이며, `자리 비움 뒤 복귀`는 partial note로 남아 있다.
@@ -166,7 +162,6 @@ Last Updated: 2026-03-16
- HUD 내부 status line 제거
- Notes/Goal/잠금 피드백이 동일 위치 토스트로 표시
- 기본 기능 잠금을 해소했다.
- Time `90/20`을 Free로 개방
- 기본 Sound 잠금 제거
- Pro 잠금 구조를 Session OS 중심으로 재구성했다.
- `Daily Focus Plan / Rituals / Weekly Review` 요약 카드 추가
@@ -182,17 +177,17 @@ Last Updated: 2026-03-16
- 옵션: `컨트롤 자동 숨김`
- ON 상태에서 Control Center가 8초 무입력이면 자동 닫힘 처리
- `/space`에 Scene 추천 자동 적용 규칙을 도입했다.
- Room 데이터에 `recommendedSoundPresetId`, `recommendedTimerPresetId`를 추가했다.
- Room 데이터에 `recommendedSoundPresetId`를 추가했다.
- 초기 진입/Scene 변경 시 override가 없는 항목만 추천값으로 자동 반영된다.
- `/space`에 override 상태(`sound`, `timer`)를 추가했다.
- 사용자가 직접 고른 사운드/타이머는 Scene 변경에도 자동 덮어쓰지 않는다.
- `/space`에 override 상태(`sound`, `duration`)를 추가했다.
- 사용자가 직접 고른 사운드/duration은 Scene 변경에도 자동 덮어쓰지 않는다.
- `추천으로 되돌리기(더미)` 액션으로 override 초기화 + 추천값 즉시 복원이 가능하다.
- Control Center를 Scene/Time 중심으로 단순화했다.
- Sound/Preset Packs 섹션 제거
- 추천 정보 1줄 + `추천으로 되돌리기`만 유지
- 우하단 Sound Quick 선택 경로를 `onQuickSoundSelect`로 분리해 override.sound 규칙을 명시했다.
- `/space` 선택 상태 로컬 저장/복원을 추가했다.
- 저장: `sceneId`, `timerPresetId`, `soundPresetId`, `goal`, `override(sound/timer)`
- 저장: `sceneId`, `durationMinutes`, `soundPresetId`, `goal`, `override(sound/duration)`
- 복원 우선순위: 쿼리 파라미터 > 저장 상태 > Scene 추천
- `/space` 진입 시 Resume CTA를 추가했다.
- 저장된 목표가 있고 쿼리 오버라이드가 없으면 `지난 한 조각 이어서`를 1회 노출