Commit Graph

25 Commits

Author SHA1 Message Date
5f7ca99f44 feat(resume): 지난 한 조각 이어서 시작하는 진입 플로우 추가
맥락:
- /space 재진입 시 마지막 목표를 다시 쓰게 되어 시작 마찰이 컸다.
- work.md 작업 2 요구사항에 맞춰 목표 기반 Resume CTA를 진입 의식 안에 추가했다.

변경사항:
- workspace localStorage 스키마에 goal 필드를 추가하고 저장/복원에 반영했다.
- Setup Ritual에 지난 한 조각 이어서 블록을 추가했다.
- 이어서 시작은 저장 목표로 즉시 Focus 전환, 새로 시작은 목표 초기화 후 새 세션 입력으로 전환하도록 연결했다.
- session 문서 docs/session_brief.md, docs/90_current_state.md를 최신 상태로 갱신했다.

검증:
- npx tsc --noEmit

세션-상태: Resume CTA와 목표 복원 흐름이 /space 진입에 반영됨
세션-다음: Goal Complete 루프와 Recover(Notes→Inbox) 플로우 마감
세션-리스크: localStorage 기반 복원이라 다중 탭/스토리지 초기화 시 세션 연속성이 약할 수 있음
2026-03-05 18:18:13 +09:00
8917cd8e77 docs(session): Pro 잠금 재배치와 상단 중앙 토스트 기준으로 상태 갱신
맥락:
- workflow 실행 후 세션 복구 문서가 최신 구현 상태를 반영해야 다음 턴 복구 품질이 유지됩니다.

변경사항:
- 90_current_state의 DONE/NEXT/RISKS/CHANGED FILES를 최신 커밋 기준으로 갱신했습니다.
- session_brief의 우선순위와 최근 세션 상태를 Packs/Paywall/Feedback 구조로 압축 업데이트했습니다.

검증:
- npx tsc --noEmit

세션-상태: 문서 기준점이 최신 Focus/Plan/Paywall UX와 일치함
세션-다음: 선택 작업(Profiles 더미 슬롯) 여부 결정 후 구현
세션-리스크: docs/work.md는 사용자 작업 입력 파일로 워킹트리에 유지
2026-03-05 17:36:49 +09:00
b1bafd5e9a docs(session): Focus-First 전환 및 자동 숨김 정책 기준으로 상태 갱신
맥락:
- workflow 종료 규칙에 따라 최근 구현(토글 제거, 표시 정책 옵션)의 상태를 세션 복구 문서에 반영해야 했습니다.

변경사항:
- docs/90_current_state.md DONE/NEXT/CHANGED FILES를 Focus-First 전환과 컨트롤 자동 숨김 정책 기준으로 업데이트했습니다.
- docs/session_brief.md 최근 세션 상태를 최신 구조(토글 제거, 정책 옵션 추가)로 갱신했습니다.

검증:
- 문서 갱신 작업(코드 검증 없음)

세션-상태: 세션 복구 문서가 최신 Focus-First 구조를 반영합니다.
세션-다음: 추천 매핑 품질과 override UX 체감 검증을 진행합니다.
세션-리스크: docs/work.md는 사용자 편집 상태로 워크트리에 남아 있습니다.
2026-03-05 15:26:45 +09:00
31d91c1bc8 docs(session): 모드 선택 pill 재배치 기준으로 세션 문서 갱신
맥락:
- workflow 종료 규칙에 따라 최근 작업 상태를 세션 복구 문서에 반영해야 했습니다.

변경사항:
- docs/90_current_state.md DONE/CHANGED FILES에 Quick Controls 모드 재배치 내용을 추가했습니다.
- docs/session_brief.md 최근 세션 상태에 모드 UI 재배치와 HUD 연동 내용을 업데이트했습니다.

검증:
- 문서 갱신 작업(코드 검증 없음)

세션-상태: 세션 복구 문서가 최신 모드 UI 구조를 반영합니다.
세션-다음: work.md의 다음 우선순위(추천 매핑/override UX 검증)를 진행합니다.
세션-리스크: docs/work.md는 사용자 편집 상태로 워크트리에 남아 있습니다.
2026-03-05 14:12:01 +09:00
c9817f518e docs(session): 추천 자동화/override 흐름 기준으로 세션 상태 갱신
맥락:
- workflow 종료 규칙에 따라 현재 구현 상태와 다음 리스크를 세션 복구 문서에 반영해야 했습니다.

변경사항:
- docs/90_current_state.md의 DONE/NEXT/RISKS/CHANGED FILES를 Scene 추천 자동화, override, Control Center 단순화, 로컬 저장/복원 기준으로 업데이트했습니다.
- docs/session_brief.md의 현재 우선순위/최근 세션 상태/리스크를 최신 구현 상태로 압축 갱신했습니다.

검증:
- 문서 갱신 작업(코드 검증 없음)

세션-상태: 세션 복구 문서가 현재 코드 상태와 다음 작업 우선순위를 반영합니다.
세션-다음: work.md의 다음 작업 지시를 기준으로 구현을 이어갑니다.
세션-리스크: docs/work.md와 docs/01_ui_guidelines.md의 사용자 수정분은 별도 검토 없이 유지 중입니다.
2026-03-05 12:27:24 +09:00
85488f542e style(profile): 멤버십 배지를 Quiet Premium 톤으로 2차 고급화
맥락:
- 프로필 왼쪽 등급 칩에 고급스러운 대우감이 더 필요해 재질감/여백/위계를 추가 보정했다.

변경사항:
- MembershipTierBadge의 높이(h-9), 최소폭, 자간을 조정해 배지가 독립된 프리미엄 토큰처럼 보이도록 정렬했다.
- PRO는 모바일에서 PRO, 데스크톱에서 PRO MEMBER를 표시하도록 분리해 작은 화면 밀집을 줄였다.
- 등급별 표면을 샴페인/뉴트럴/틸 계열 저채도 그라데이션과 미세 하이라이트로 조정해 차분한 프리미엄 톤을 강화했다.
- AppTopBar 우측 그룹 간격을 gap-3으로 넓혀 배지와 프로필 트리거 간 시각 충돌을 완화했다.
- docs/session_brief.md, docs/90_current_state.md에 변경사항과 리스크를 갱신했다.

검증:
- npx tsc --noEmit

세션-상태: /app 헤더의 멤버십 배지를 조용한 프리미엄 위계로 고도화했다.
세션-다음: RoomSheet 인원수 기반 UI의 큐레이션형 치환 범위를 확정해야 한다.
세션-리스크: 등급 칩 최소폭 증가로 초소형 화면에서 헤더 가로 여유가 줄어들 수 있다.
2026-03-01 12:39:27 +09:00
6069457b4e style(profile): 멤버십 등급 칩을 저자극 프리미엄 톤으로 개선
맥락:
- 프로필 왼쪽 등급 칩의 글자가 작아 위계가 약했고, 유료 멤버 대우가 직관적으로 전달되지 않았다.

변경사항:
- MembershipTierBadge의 타이포를 text-xs 이상으로 상향하고 칩 높이/패딩을 키워 가독성을 개선했다.
- PRO는 PRO MEMBER 라벨과 조용한 그라데이션/내부 하이라이트/부드러운 그림자를 적용해 프리미엄 톤을 강화했다.
- NORMAL/TEAM도 등급별 표면 톤과 점 마커를 분리해 차분한 위계를 유지했다.
- docs/session_brief.md, docs/90_current_state.md에 이번 변경 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: 멤버십 배지의 크기와 재질감을 상향해 대우받는 인상을 강화했다.
세션-다음: RoomSheet 인원수 기반 UI의 큐레이션형 치환 범위를 확정해야 한다.
세션-리스크: PRO MEMBER 라벨이 작은 폭에서 프로필과 밀집해 보일 수 있어 실제 기기 간격 점검이 필요하다.
2026-03-01 11:32:03 +09:00
a3ecb7b6c2 style(app-hub): 헤더 톤과 프로필 등급 배지 배치를 정리
맥락:
- /app 헤더가 시작 카드 톤과 달라 시각 흐름이 끊기고, 멤버십 등급이 프로필 트리거 내부에 있어 위계가 어색했다.

변경사항:
- AppTopBar를 Start Ritual 카드와 같은 라이트 톤(bg-white/78, text-brand-dark)으로 맞췄다.
- 멤버십 등급을 독립 뷰로 분리하기 위해 entities/user에 MembershipTierBadge 컴포넌트를 추가했다.
- ProfileMenu 트리거에서 등급 배지를 제거하고, 아바타+이름만 남겨 정보 위계를 단순화했다.
- docs/session_brief.md, docs/90_current_state.md에 최신 상태를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 헤더와 프로필 영역의 톤/위계 정렬을 완료했다.
세션-다음: RoomSheet 인원수 기반 UI를 큐레이션형 정보로 치환할지 확정이 필요하다.
세션-리스크: 밝은 사진 배경과 라이트 헤더 조합에서 상단 경계 인지가 약해질 수 있다.
2026-03-01 00:19:43 +09:00
e9556afa53 style(app-hub): 헤더와 공간 카드 전환 디테일을 정리
맥락:
- /app 상단 헤더 배경과 로고 보조 배지가 시각적으로 무거워 현재 라이트 카드 톤과 어긋났다.
- 카드 사진 크기와 배경 전환 시 resize처럼 보이는 체감이 있어 선택 전환 품질 보정이 필요했다.

변경사항:
- AppTopBar에서 헤더 배경을 제거하고 로고 왼쪽 원형 V 배지를 삭제했다.
- ViewerProfile에 membershipTier를 추가하고, 프로필 이름 왼쪽에 등급 배지(PRO/NORMAL/TEAM)를 노출했다.
- RoomPreviewCard 높이를 고정해 카드 사진 크기를 통일했다.
- AppHub 배경 레이어의 transition-all을 제거해 카드 선택 시 배경이 리사이징 애니메이션처럼 보이는 현상을 완화했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 헤더/프로필 배지/카드 전환 디테일 보정 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 헤더 배경 제거로 밝은 배경 구간에서 상단 텍스트 대비가 낮아질 수 있어 점검 필요
2026-03-01 00:14:35 +09:00
92a915633b style(app-hub): 허브 배경을 선택 카드 사진 블러와 동기화
맥락:
- /app 배경이 카드와 동일한 맥락의 블러 이미지로 보여야 공간 톤 연결이 자연스럽다.
- 앱 첫 진입 시 선택 상태가 명시되지 않으면 배경/선택 테두리 기준이 모호해질 수 있다.

변경사항:
- AppHub 배경 레이어를 hubColor 단색에서 선택 카드 사진 기반 블러 배경으로 전환했다.
- 배경 워시/그레인 오버레이 강도를 블러 사진 배경에 맞춰 재조정했다.
- useRoomSelection 초기값을 ROOM_THEMES[0].id로 명시해 첫 진입 시 첫 카드 선택 상태를 고정했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 배경이 선택 카드 사진 블러와 동기화되고 첫 카드 초기 선택이 명시됨
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 배경 블러 강도 증가로 저사양 환경에서 GPU 부담이 늘 수 있어 실기기 점검 필요
2026-03-01 00:04:05 +09:00
a1981b0577 feat(room): 공간 카드에 실제 사진 소스와 교체 경로를 연결
맥락:
- 오늘의 공간 카드를 단색에서 실제 사진 기반으로 전환하고, 사진 출처를 추적할 수 있는 링크가 필요했다.
- 추후 자가 호스팅 이미지로 교체할 수 있도록 데이터 구조에서 전환 경로를 미리 확보해야 했다.

변경사항:
- entities/room 모델에 cardPhotoUrl, googleImageSearchUrl, managedCardPhotoUrl 필드를 추가했다.
- 10개 공간 카드에 실제 사진 URL과 Google 이미지 검색 링크를 매핑했다.
- getRoomCardPhotoUrl, getRoomCardBackgroundStyle helper를 추가해 추후 managed 이미지로 교체 가능한 fallback 구조를 만들었다.
- RoomPreviewCard 배경을 실제 사진 렌더링으로 변경하고, 텍스트 가독성을 위한 오버레이를 적용했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: 오늘의 공간 카드에 실제 사진 소스/구글 링크/교체 경로 반영 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 외부 이미지 URL 의존으로 소스 만료/속도 이슈 가능성이 있어 자가 호스팅 전환 필요
2026-03-01 00:01:39 +09:00
22ff9e6e41 style(app-hub): 오늘의 공간 카드를 룸별 단색 팔레트로 전환
맥락:
- 오늘의 공간 카드가 이미지 기반 배경이라 색/질감이 복잡하게 보였고, 카드와 페이지 배경의 톤 연결이 약했다.
- 룸 이름별로 분리된 단색 팔레트를 사용해 카드 가독성과 허브의 색 일관성을 높일 필요가 있었다.

변경사항:
- entities/room 모델에 hubColor 필드를 추가하고 10개 룸에 겹치지 않는 단색 팔레트를 정의했다.
- RoomPreviewCard를 이미지 배경 대신 룸 고유 단색 배경으로 렌더링하도록 변경했다.
- RoomPreviewCard 내부 텍스트/칩 스타일을 단색 카드 대비에 맞춰 어두운 텍스트 중심으로 재정렬했다.
- AppHub 배경을 선택 룸의 hubColor로 동기화해 카드 선택과 페이지 배경이 같은 색 계열로 연결되게 조정했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 오늘의 공간 카드/허브 배경 단색 팔레트 전환 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 일부 디스플레이에서 단색 팔레트 간 체감 차이가 작아 보일 수 있어 기기별 색 분리도 점검 필요
2026-02-28 23:53:34 +09:00
e041f6b25a style(app-hub): 시작/공간 카드를 라이트 카드 톤으로 전환
맥락:
- /app에서 핵심 카드(지금 몰입/오늘의 공간)가 배경 이미지와 함께 어둡게 겹쳐 보이며 시인성이 떨어졌다.
- 배경은 가상 공간을 유지하되 카드 표면은 stats와 유사한 흰 톤으로 분리해 정보 가독성을 높일 필요가 있었다.

변경사항:
- StartRitualWidget과 RoomsGalleryWidget 컨테이너를 흰 표면 + 어두운 텍스트 라이트 카드 톤으로 조정했다.
- StartRitual 입력/칩/보조 버튼 색상을 라이트 카드 팔레트에 맞춰 재정렬했다.
- AppHub 배경 이미지의 blur/밝기 보정을 강화하고 다크 오버레이를 완화해 카드 외곽에서 가상 공간 배경이 부드럽게 보이도록 조정했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내역과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 핵심 카드 라이트 톤 전환 및 배경 블러 강화 반영 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 룸 프리뷰 카드는 이미지 기반 다크 톤이라 라이트 컨테이너와 미세한 톤 차이가 남을 수 있음
2026-02-28 23:48:01 +09:00
3280df7aa1 style(custom-entry-modal): 커스텀 입장 모달 톤과 크기를 안정화
맥락:
- 커스텀 입장 모달이 허브 대비 과도하게 어두워 화면 톤 일관성이 떨어졌다.
- 탭(공간/사운드/타이머) 전환 시 본문 높이가 달라져 모달 외곽 크기가 흔들리는 UX 이슈가 있었다.

변경사항:
- Modal 오버레이/패널/헤더/푸터 스타일을 밝은 글래스 톤으로 조정해 허브 톤과 맞췄다.
- CustomEntryModal의 탭 콘텐츠 영역을 고정 높이 컨테이너로 변경해 탭 전환 시 모달 전체 크기가 변하지 않도록 했다.
- 공간/사운드/타이머 옵션 버튼과 커스텀 타이머 입력 필드를 밝은 팔레트로 재정의했다.
- Tabs 컴포넌트를 밝은 표면 톤에 맞게 보정했다.
- 세션 문서(90_current_state, session_brief)에 이번 작업 내용/리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: 커스텀 입장 모달의 밝은 톤 정렬 및 탭 전환 크기 고정 반영 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 모달 고정 높이 적용으로 작은 화면에서 탭 본문 내부 스크롤 의존도가 증가할 수 있음
2026-02-28 23:29:17 +09:00
105c5785b8 style(app-hub): 허브 배경 밝기와 카드 가시성을 함께 보정
맥락:
- /app 허브에서 배경 이미지가 전면에 강하게 드러나 전체 인상이 어둡고, 룸별 배경 복잡도에 따라 카드 가독성이 흔들릴 수 있었다.
- 밝은 톤 전환과 동시에 카드 정보 표면을 안정화해 저자극 톤을 유지할 필요가 있었다.

변경사항:
- AppHub 배경에 blur + 밝기/채도 필터를 적용하고, 밝은 워시 오버레이로 명도를 상향했다.
- 전역 그레인 강도를 낮춰 시각적 노이즈를 줄였다.
- RoomPreviewCard 배경 마스크를 재조정하고, 내부 콘텐츠 영역에 반투명 패널을 추가해 텍스트 대비를 고정했다.
- RoomPreviewCard 내 메타 텍스트/칩의 대비를 상향해 복잡한 배경에서도 읽기 쉬운 상태로 보정했다.
- GlassCard의 표면 불투명도와 그림자를 조정해 /app 전반의 무게감을 완화했다.
- 세션 문서(90_current_state, session_brief)에 이번 패치 내역과 잔여 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 배경 밝기와 카드 가시성 안정화 패치 반영 완료
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 배경 blur/filter 적용으로 저사양 환경에서 렌더링 비용이 소폭 증가할 수 있음
2026-02-28 23:24:30 +09:00
9c6c01a3b2 fix(room-select): 룸 카드 중첩 버튼 hydration 에러 수정
맥락:
- /app 룸 카드에서 카드 전체를 버튼으로 사용하면서 내부 Chip도 버튼으로 렌더링되어 HTML 중첩 버튼 규칙을 위반했다.
- Next.js hydration 단계에서 콘솔 에러가 발생해 UI 신뢰도와 디버깅 효율을 저하시켰다.

변경사항:
- RoomPreviewCard 내부의 Chip 컴포넌트 사용을 제거했다.
- 카드 내부 태그/추천 정보 칩을 비인터랙티브 span 스타일로 교체해 버튼 중첩 구조를 해소했다.
- 세션 문서(90_current_state, session_brief)에 이번 에러 수정 내역을 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /app 룸 카드의 중첩 버튼 hydration 에러 해소
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 밝은 배경 구간에서 white 텍스트 대비가 약해질 수 있어 기기별 시인성 점검 필요
2026-02-28 23:18:26 +09:00
23f103c7b7 style(app-theme): landing 이후 앱 배경 톤을 밝은 무드로 조정
맥락:
- /landing 이후 진입하는 앱 화면들의 배경이 전반적으로 어두워 초기 인상과 톤 연속성이 떨어졌다.
- 기존 감성/저자극 분위기를 유지하면서 배경 명도를 올려 부담을 낮출 필요가 있었다.

변경사항:
- /app 허브 배경 오버레이를 밝은 그라디언트 중심으로 조정하고 grain 강도를 낮췄다.
- 룸 카드 마스크 강도를 완화해 미리보기 이미지의 밝은 톤 노출을 늘렸다.
- /space 배경 오버레이, 그레인, 비네팅 강도를 단계적으로 낮춰 전체 명도를 상향했다.
- /space suspense fallback 배경을 라이트 그라디언트로 변경했다.
- /stats, /settings 페이지를 라이트 팔레트 기반 배경/패널 스타일로 전환했다.
- 세션 복구 문서(90_current_state, session_brief)에 이번 변경과 리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /landing 이후 앱 플로우 배경이 밝은 톤으로 정리됨
세션-다음: RoomSheet/도크 패널의 인원수 기반 표현을 분위기형 정보로 전환
세션-리스크: 밝은 배경 구간에서 일부 white 텍스트 대비가 약해질 수 있어 기기별 시인성 점검 필요
2026-02-28 23:12:54 +09:00
313ef88961 style(space-hud): 30초 복귀 액션을 숨 고르기 톤으로 리브랜딩
맥락:
- /space 하단 HUD의 30초 복귀 액션을 저자극 감성 톤으로 정리해 복귀 행동의 심리적 부담을 낮춘다.

변경사항:
- restart-30s feature에 카피 상수(model/copy)를 추가하고 버튼/모드/안내 문구를 중앙 관리로 전환했다.
- useRestart30s에 더미 상태 전환(isBreatheMode, hintMessage)을 추가해 클릭 후 2초 내 안내 노출과 자동 복귀를 구현했다.
- HUD에서 30초 진입 중 상태 라벨을 BREATHE로 표시하고, 안내 문구를 목표 라인에 저대비로 잠깐 노출하도록 조정했다.
- 30초 액션 버튼을 "숨 고르기 30초" + 🌬️ 형태의 보조 액션 톤으로 변경했다.
- 세션 복구 문서(90_current_state, session_brief)에 이번 작업 상태/리스크를 반영했다.

검증:
- npx tsc --noEmit

세션-상태: /space 30초 복귀 액션 카피 리브랜딩 및 HUD 더미 안내 반영 완료
세션-다음: RoomSheet/도크 인원수 기반 카피를 큐레이션형 표현으로 전환
세션-리스크: HUD 목표 문구와 안내 문구가 교체 노출되어 정보 우선순위 점검 필요
2026-02-27 14:58:35 +09:00
20638b69a4 fix(exit-hold): bar 진행 표시 즉시 반영 및 리셋 애니메이션 수정
맥락:

- 몰입 OFF의 나가기 롱프레스 bar에서 진행 표시가 즉시 보이지 않고 완료 시 0으로 역방향 축소되는 문제를 해결하기 위해

변경사항:

- bar 진행 표시를 JS width 갱신에서 CSS keyframes 기반으로 교체

- 키프레임에 가속 규칙 반영(0.05초 20%, 1.0초 100%)

- 완료 후 100% 상태를 짧게 유지한 뒤 언마운트하도록 훅 상태(isCompleted) 보강

- progress fill의 rounded 캡을 제거해 끝단 직선화

- docs/90_current_state.md, docs/session_brief.md 최신 상태 반영

검증:

- npx tsc --noEmit

세션-상태: bar 롱프레스 진행은 눌렀을 때 즉시 보이고 완료 리셋 시 역방향 축소가 사라짐

세션-다음: 롱프레스 인지성 보조 카피 도입 여부 검토

세션-리스크: bar(CSS)와 ring(JS) 진행 로직이 분리되어 향후 규칙 변경 시 동시 점검 필요
2026-02-27 14:36:31 +09:00
73e7d5004c feat(space): 나가기 버튼 롱프레스 가속 진행 인터랙션 추가
맥락:

- /space에서 실수 이탈을 줄이면서도 명확한 탈출 동선을 유지하기 위해 나가기 액션을 1초 롱프레스 방식으로 변경

변경사항:

- features/exit-hold 추가(useHoldToConfirm, ExitHoldButton)

- 1초 롱프레스와 가속 진행 규칙(0.05초 -> 20%)을 feature 내부에 구현

- 몰입 OFF에서는 bar(좌->우 fill), 몰입 ON에서는 ring 진행 표시로 분기

- 1초 미만 해제/마우스 leave/touch cancel 시 진행률 즉시 리셋

- 완료 시 나가기(더미) 토스트 + 몰입 모드 OFF 동작 연결

- docs/90_current_state.md, docs/session_brief.md 상태 업데이트

검증:

- npx tsc --noEmit

세션-상태: 상단 나가기 액션은 롱프레스 완료 시에만 트리거됨

세션-다음: 롱프레스 인터랙션 인지성 보완용 힌트 카피 도입 여부 검토

세션-리스크: 터치 환경에서 롱프레스 UI 의도를 즉시 이해하지 못할 가능성 있음
2026-02-27 14:29:46 +09:00
e2fb720a55 feat(immersion): 몰입 모드 상단 액션을 나가기로 전환
맥락:

- 몰입 모드 ON에서 상단 우측 액션이 허브 이동으로 보이는 혼선을 줄이고 즉시 이탈 동선을 제공하기 위해

변경사항:

- 몰입 모드 훅에 exitImmersionMode 액션 추가

- 몰입 모드 ON 시 상단 우측 액션을 나가기 버튼으로 전환

- 나가기 클릭 시 토스트(나가기(더미)) 노출 후 몰입 모드 OFF 처리

- docs/90_current_state.md, docs/session_brief.md 최신 상태 반영

검증:

- npx tsc --noEmit

세션-상태: 몰입 모드 ON에서 상단 우측 액션은 나가기로 동작함

세션-다음: RoomSheet/도크의 인원수 중심 정보를 분위기형 정보로 교체

세션-리스크: 터치 환경에서 미니 레일 발견성이 낮을 수 있어 UX 보완이 필요
2026-02-27 14:22:56 +09:00
ce1664f472 feat(space): 사운드 시트와 몰입 모드 크롬 정리 적용
맥락:

- /space 하단 사운드 바를 제거하고 도구를 우측 도크에 수납해 배경 몰입을 강화하며, 몰입 모드 ON 체감을 높이기 위해

변경사항:

- 하단 사운드 프리셋 바를 제거하고 도크에 🎧 Sound 패널을 추가

- features/sound-preset + widgets/sound-sheet를 추가해 프리셋 선택/믹서 UI(더미) 구성

- features/immersion-mode + shared/ui/Toggle을 추가하고 Quick 시트 토글과 연결

- 몰입 모드 ON 시 상단 Current Room 숨김, 허브 버튼 소형화, 레일 미니화, HUD 저대비, 비네팅/그레인 강화

- widgets/space-chrome를 신설해 /space 상단 크롬 렌더링을 분리

- docs/90_current_state.md, docs/session_brief.md 최신 상태로 갱신

검증:

- npx tsc --noEmit

세션-상태: /space는 사운드 시트 기반 도크 구조와 몰입 모드 UI를 제공함

세션-다음: RoomSheetWidget 인원수 기반 정보를 큐레이션 표현으로 전환

세션-리스크: 터치 환경에서 미니 레일 발견성이 낮을 수 있어 보조 힌트가 필요할 수 있음
2026-02-27 14:14:12 +09:00
f0efd74af3 docs(workflow): 기본 컨텍스트 로드를 2파일로 축소
맥락:

- workFlow 실행 시 기본 로드 문서 수를 줄여 토큰 사용량을 추가로 절감하기 위해

변경사항:

- docs/session_brief.md 신설(세션 시작용 초소형 스냅샷)

- docs/workFlow.md 기본 로드를 work + session_brief 2파일로 변경

- docs/README.md 우선 읽기 순서와 운영 원칙 갱신

- docs/90_current_state.md에 정책 변경 기록

검증:

- 문서 내용 수동 검토

- 기본 로드 입력 크기: work(497) + session_brief(718) = 1215 chars

세션-상태: workflow 기본 로드는 2파일 모드로 동작함

세션-다음: session_brief를 작업 종료 시 최신 상태로 유지

세션-리스크: session_brief 갱신이 누락되면 복구 정확도가 떨어질 수 있음
2026-02-27 13:50:10 +09:00
91fce428ec docs(workflow): 컨텍스트 로드를 토큰 절약 모드로 전환
맥락:

- workFlow 실행 시 매번 여러 문서를 전부 읽어 토큰이 과도하게 소모되는 문제를 줄이기 위해

변경사항:

- docs/context_core.md 신설(핵심 규칙 요약본)

- docs/workFlow.md를 기본 3문서 + 조건부 로드 방식으로 변경

- docs/README.md에 context_core 및 토큰 절약 로드 원칙 반영

- docs/90_current_state.md에 이번 정책 변경 기록

검증:

- 문서 문자 수 기준 로드량 비교 계산

- old_always_chars=6226, new_always_chars=3015

세션-상태: workflow가 토큰 절약형 컨텍스트 로드를 사용함

세션-다음: 조건부 로드 문서 기준을 실제 작업 로그로 튜닝

세션-리스크: work.md 입력이 장문이면 절감 효과가 상대적으로 줄어들 수 있음
2026-02-27 13:46:27 +09:00
ecb17a485a docs(session): add restart-safe recovery workflow
Context:

- codex cli 중단 후에도 작업 품질과 맥락을 안정적으로 복구하기 위해

Changes:

- docs/00~07, 90 문서 세트 추가/정리

- commit convention 문서 및 .gitmessage-session.txt 템플릿 추가

- scripts/session/recover-context.sh 추가

- package.json에 session:recover 스크립트 추가

Validation:

- npm run session:recover

Session-State: session recovery docs, template, and script are in place

Session-Next: apply this commit format to feature and refactor commits

Session-Risks: legacy commits before this change do not include session trailers
2026-02-27 13:27:20 +09:00