fix(flow): app entry를 no-session 전용으로 단순화

This commit is contained in:
2026-03-16 12:28:28 +09:00
parent 721212ec1f
commit 16d620ee4a
9 changed files with 172 additions and 787 deletions

View File

@@ -32,12 +32,10 @@ Last Updated: 2026-03-16
- 선택한 atmosphere는 `/app` 배경 preview와 `/space` start payload의 `scene/sound`에 같이 반영된다.
- duration은 우선 가장 가까운 기본 리듬으로 매핑하는 임시 계약을 사용한다.
- weekly review entry는 right-side quiet dock 위치로 옮겨 main CTA보다 낮은 위계를 유지한다.
- `Paused Session Takeover Flow`를 구현했다.
- `/app` paused gate에 `새 목표로 전환` 액션이 추가됐다.
- takeover confirm sheet에서만 기존 paused session을 정리하고 새로 시작할 수 있다.
- server `startSession()`은 더 이상 silent abandon을 하지 않고, current session이 남아 있으면 direct start를 거절한다.
- takeover confirm 후에만 `abandon -> single-goal start` 순서로 넘어간다.
- `/app`은 이제 session gate를 보여주지 않는다.
- current session이 있으면 상태와 상관없이 즉시 `/space`로 이동한다.
- 따라서 paused resume gate와 takeover sheet는 current UX가 아니다.
- server `startSession()`은 여전히 current session 존재 시 direct start를 거절해 silent abandon을 막는다.
- `/space` Refocus System 첫 slice를 구현했다.
- pause 직후 바로 편집 시트가 아니라 작은 recovery prompt를 먼저 띄운다.
- 여기서 `한 조각 다시 잡기`를 누르면 refocus tray로 들어간다.
@@ -107,10 +105,7 @@ Last Updated: 2026-03-16
- recovery는 서버의 `pause 뒤 복귀` 집계를 사용하고, `away recovery`만 limited state로 남긴다.
- `/app`에서 `/stats`로 들어가는 primary path 1차가 생겼다.
- current session이 없을 때는 quiet review dock에서 `/stats`로 진입할 수 있다.
- paused session 상태에서도 resume gate 안에 조용한 secondary review entry가 남는다.
- review entry는 main start/resume CTA보다 항상 낮은 강조를 유지한다.
- `/app` Resume 상태에서도 weekly review entry가 보이게 정리했다.
- review primary entry가 active session 상태에서 사라지지 않도록, resume card 안에 조용한 secondary review link를 추가했다.
- review entry는 main start CTA보다 항상 낮은 강조를 유지한다.
- `/stats` 마지막 CTA의 `/app` return handoff가 연결됐다.
- carry-forward CTA는 `/app?review=weekly&carryHint=...`로 돌아온다.
- `/app`은 review-aware return hint를 먼저 보여주되, goal은 사용자가 직접 입력하게 유지한다.
@@ -124,20 +119,10 @@ Last Updated: 2026-03-16
- `Weekly Review` recovery의 서버 연결이 들어갔다.
- server `focus-summary` 응답에 `recovery`가 추가됐다.
- 현재는 `pause 뒤 복귀`만 실집계이며, `자리 비움 뒤 복귀`는 partial note로 남아 있다.
- paused session 재진입 정책을 별도 source of truth로 고정했다.
- `running focus -> /space`
- `running break -> /space`
- `paused focus -> /app`
- `/app`의 explicit continue 이후 `/space`에서는 다시 start를 묻지 않고 자동 resume해야 한다.
- paused session 위의 새 시작은 direct가 아니라 takeover flow로만 허용한다.
- `Paused Session Re-entry`의 Session Routing Contract를 1차 구현했다.
- `/app`은 running session을 감지하면 hero를 보여주지 않고 즉시 `/space`로 보낸다.
- `/space`는 paused session 상태에서 explicit handoff intent 없이 직접 열리면 `/app`으로 되돌린다.
- `/app``이어서 들어가기`는 다음 slice를 위해 `/space?resume=continue` handoff를 사용한다.
- `Paused Resume Gate``Auto-Resume Handoff`를 구현했다.
- paused 상태의 `/app``이어서 몰입하기`, `한 조각 다시 잡기`, quiet `주간 review 보기`를 함께 보여준다.
- `이어서 몰입하기``/space?resume=continue`로 들어간 뒤 자동 resume된다.
- `한 조각 다시 잡기``/space?resume=refocus`로 들어간 뒤 refocus tray를 바로 연다.
- session routing 정책을 다시 단순화했다.
- current session이 있으면 `/app`에서 머무르지 않고 바로 `/space`로 이동한다.
- `/space`는 paused session이라고 `/app`으로 되돌리지 않는다.
- `/app`은 no-session entry surface로만 남는다.
- `Product Alignment Audit` 운영을 시작했다.
- `docs/product/16_product_alignment_audit_plan.md`를 기준 문서로 추가했다.
- `docs/product/17_product_alignment_findings.md`에 core loop의 P1/P2 mismatch를 수집하기 시작했다.