작업 내용
이 저장소 최초의 Compose+Orbit feature 모듈(feature:chat)을 만들고 채팅 화면의 상태 기계(ChatViewModel)를 구현한다. 핵심은 Flow<String>.typewriter() 연산자 — SSE delta 도착 속도와 화면 표시 속도(한 글자씩)를 분리한다.
상위 이슈: #59
설계 문서: designs/issue-59-F-chat-viewmodel.md (병합 후 이슈 번호에 맞춰 파일명 변경 예정)
선행 이슈: #72 (도메인 모델), #73 (UseCase), #76 (RepositoryImpl+Hilt 바인딩) — 3개 모두 머지된 뒤 시작
할 일
작업 내용
이 저장소 최초의 Compose+Orbit feature 모듈(
feature:chat)을 만들고 채팅 화면의 상태 기계(ChatViewModel)를 구현한다. 핵심은Flow<String>.typewriter()연산자 — SSE delta 도착 속도와 화면 표시 속도(한 글자씩)를 분리한다.상위 이슈: #59
설계 문서:
designs/issue-59-F-chat-viewmodel.md(병합 후 이슈 번호에 맞춰 파일명 변경 예정)선행 이슈: #72 (도메인 모델), #73 (UseCase), #76 (RepositoryImpl+Hilt 바인딩) — 3개 모두 머지된 뒤 시작
할 일
settings.gradle.kts/app/build.gradle.kts—feature:chat모듈 등록feature/chat/build.gradle.kts+AndroidManifest.xmlTypewriterFlow.kt— 도착 속도/표시 속도 분리, catch-up 로직ChatContract.kt— ChatState/ChatPhase/ChatSideEffectChatViewModel.kt— Start에서 실제 userMessageId/assistantMessageId/quota 반영, Action 이벤트 캡처FakeChatRepository.kt/TypewriterFlowTest.kt/ChatViewModelTest.kt