# 90. Current State Last Updated: 2026-03-05 ## DONE - Focus 피드백 채널 단일화: - HUD 내부 status line을 제거하고 상단 중앙 고정 토스트로 통합 - Notes 저장/Undo, Goal 전환, 잠금 안내 피드백이 동일 위치에서 노출 - Free 코어 루프 개방: - Quick Controls Time의 `90/20` 잠금을 제거 - 기본 Sound 잠금 제거로 Free에서도 기본 3~6 프리셋 선택 가능 - Pro 가치 재배치: - Pro 잠금 대상을 `Scene Packs / Sound Packs / Profiles`로 재정의 - 기본 Scene/Time/Sound는 잠금 없이 선택 중심으로 정리 - Control Center UI 재구성: - Scene/Time/Sound 중심 구조 유지 - 추천 조합을 정보 1줄로 축소(비인터랙션) - 하단에 Packs/Profiles 요약 카드(작은 🔒 배지) 추가 - Paywall 의도 기반 트리거 적용: - 잠금 카드 클릭 시에만 Paywall Sheet 오픈 - Plan Pill(NORMAL) 클릭은 즉시 결제창 대신 상태 안내만 표시 - Paywall Sheet를 3개 가치 포인트 + 2개 CTA로 간결화 - Focus-First 전환: - Quick Controls의 `기본/몰입` 토글 제거 - HUD를 외부 모드 상태 없이 기본 몰입 톤으로 고정 - 컨트롤 노출은 패널 열림 상태에서만 보이도록 단순화 - 표시 정책 옵션 추가: - Quick Controls 패널 하단에 `컨트롤 자동 숨김` 옵션 추가 - 옵션 ON 상태에서 Control Center 8초 무입력 시 자동 닫힘 처리 - Quick Controls 모드 전환 UI 재정렬: - 헤더에서 모드 토글 UI를 제거하고 `Plan + 닫기`만 유지 - 패널 바디 첫 섹션에 `기본/몰입` segmented pill 배치 - 모드 설명 1줄(기본: 모든 컨트롤 표시, 몰입: 필수만 남기고 숨김) 추가 - 모드 상태를 workspace -> tools-dock -> focus-hud 경로로 연결해 HUD 톤 반영 유지 - `/space` Scene 기반 자동 추천 적용: - `RoomTheme`에 `recommendedSoundPresetId`, `recommendedTimerPresetId` 필드 추가 - 첫 진입/시작 시 Scene 추천 타이머/사운드가 자동 반영되도록 초기화 로직 정리 - Scene 변경 시 `override.sound/timer`가 `false`인 항목만 자동 동기화 - `/space` 사용자 override 존중 규칙 도입: - `override.sound`, `override.timer` UI 상태 추가 - 사용자가 직접 고른 항목은 이후 Scene 변경에도 자동 덮어쓰기되지 않도록 반영 - `추천으로 되돌리기(더미)` 액션으로 override 초기화 + 추천값 즉시 복원 지원 - `Control Center`를 Scene/Time 중심으로 단순화: - Sound/Preset Packs 섹션 제거 - 비인터랙션 추천 정보 1줄(`추천: 사운드 · 타이머`) 추가 - 하단 tertiary 액션 `추천으로 되돌리기` 추가 - 우하단 Sound Quick 경로를 override 적용의 명시적 경로로 분리: - `onQuickSoundSelect` 콜백으로 연결해 `override.sound` 규칙을 코드 레벨에서 고정 - 세션 상태 더미 저장/복원 추가: - `sceneId`, `timerPresetId`, `soundPresetId`, `goal`, `override(sound/timer)`를 localStorage에 저장 - 복원 우선순위: 쿼리 파라미터 > 저장 상태 > Scene 추천 - `/space` 진입 Resume CTA 추가: - 저장된 목표가 있고 쿼리 오버라이드가 없을 때 `지난 한 조각 이어서` 블록 1회 노출 - `이어서 시작`: 저장 목표로 즉시 Focus 진입 - `새로 시작`: 목표를 비워 새 세션 입력 흐름으로 전환 - 세션 복구 운영 문서 추가: - `docs/06_commit_convention.md` - `docs/07_session_recovery.md` - 워크플로우 토큰 절약 모드 추가: - `docs/context_core.md` 신설 - `docs/workFlow.md`를 기본 3문서 + 조건부 로드로 변경 - 워크플로우 기본 로드를 2파일로 축소: - `docs/work.md` - `docs/session_brief.md` - 복구 스크립트 추가: - `scripts/session/recover-context.sh` - `npm run session:recover` 명령 추가 - `/app` Start Ritual에서 절차감을 높이던 `건너뛰기` 제거 - `/app`에서 `다시 시작(30초)` 제거 - `/space` HUD에 `features/restart-30s` 기반 `↻ 다시 시작 + 30초 배지` 추가 - `/space` 하단 사운드 프리셋 바 제거, 오른쪽 `🎧 Sound` 시트로 이동 - `features/sound-preset` + `widgets/sound-sheet` 추가 - `features/immersion-mode` 추가, Quick 시트에서 몰입 모드 토글 연결 - `/space` 상단 헤더 크롬 최소화: - 헤더 프레임(border/강한 배경) 제거 - 패딩 축소로 배경 노출 증가 - 타이머 HUD 하단 위치를 safe-area 기반 최소 여백으로 조정 - 몰입 모드 ON 시 상단 액션을 `나가기` 버튼으로 전환 - 클릭 시 토스트 `나가기(더미)` 노출 + 몰입 모드 OFF - `/space` 상단 우측 나가기 액션을 롱프레스(1초)로 변경 - 0.05초에 진행률 20%까지 빠르게 상승 - 1초 유지 시 `나가기(더미)` 토스트 + 몰입 모드 OFF - 몰입 OFF: 좌→우 fill(bar), 몰입 ON: 원형 ring 진행 표시 - 롱프레스 bar 진행 표시 버그 수정: - 눌렀을 때 즉시 fill이 보이도록 CSS keyframes 기반으로 교체 - 완료 후 fill이 0으로 역방향 축소되는 현상 제거(짧은 유지 후 언마운트) - fill 끝단을 직선 형태로 정리(rounded 캡 제거) - 30초 복귀 액션 카피를 감성 라운지 톤으로 리브랜딩: - 버튼 라벨: `숨 고르기 30초` - 진입 시 HUD 모드 라벨: `BREATHE` - 클릭 시 저자극 안내 문구 노출(2초 이내 미니 안내 + 토스트) - `/landing` 이후 앱 플로우 배경 톤을 밝은 무드로 조정: - `/app` 허브 배경 오버레이를 밝게 조정하고 룸 카드 어두운 마스크 강도 완화 - `/space` 배경 오버레이/비네팅 강도를 낮춰 배경 노출 증가 - `/stats`, `/settings` 배경/패널을 라이트 팔레트로 전환 - `/app` 룸 카드 hydration 에러 수정: - `RoomPreviewCard`의 중첩 `