You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
refactor(core): MVI 전환 — core·platform·onboarding·receiver·afternote 몫 총괄 #1812
feature/*/presentation 의 ViewModel 선언 50개 중 MviViewModel 을 상속한 것은 0개다. MviContractKonsistTest.kt 의 PENDING_MVI_MIGRATION 은 51개이고, 실존 50개에 사문 1건이 더해진 값이다. 사문 항목은 MviContractKonsistTest.kt:431 의 com.afternote.feature.receiver.presentation.home.ReceiverHomeViewModel 이고, develop 의 실제 위치는 feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModel.kt 다. PR #2039 가 ISSUE_1803_RECEIVER 를 블록째 지우면서 이 줄도 같이 사라지므로 따로 조치할 것은 없다.
기반은 이미 들어와 있다. 베이스는 core/ui/src/main/kotlin/com/afternote/core/ui/mvi/MviViewModel.kt (#1800 닫힘), konsist 강제와 docs/convention/mvi.md 도 있다(#1801 닫힘). 남은 것은 전환뿐이다.
1. 자식 트리에서 새는 범위가 둘 있다
#1968(편집기 외 afternote ViewModel 8개)과 #2022(MainViewModel 판정과 전환 종료 검사)는 각각 #1804 와 #1809 에서 분리됐는데, GraphQL 로 확인한 parent 가 둘 다 없다. afternote 와 platform 은 이 이슈가 본문에서 선언한 자기 범위다.
지금 subIssuesSummary 는 total 7 / completed 2 (28%) 다. 열린 자식 5개가 닫히면 7/7 로 완료 표시가 되지만, 그 시점에도 이것들이 남는다.
두 이슈를 이 이슈의 자식으로 붙이거나, 붙이지 않는다면 이 이슈가 닫혀도 둘이 남는다는 것을 본문에 명시해야 한다.
2. onboarding 네 번째 ViewModel 이 미귀속이다
feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/findaccount/FindPasswordViewModel.kt 는 #457(PR #1624)로 이미 develop 에 도착해 있다. 전환 전 모양 그대로다.
:43private val _uiState = MutableStateFlow(FindPasswordUiState())
:145onSocialAccountBlockedConsumed()
:147onErrorConsumed()
:156onPasswordResetConsumed()
그런데 konsist/src/test/kotlin/com/afternote/konsist/MviContractKonsistTest.kt:411-420 의 PENDING_ARRIVAL_ONBOARDING KDoc 은 아직 "아직 develop 에 없다" 로 적혀 있다. 사실이 아니다. PR #1825 는 ISSUE_1802_ONBOARDING 3개만 빼고, 이 항목과 틀린 KDoc 은 그대로 둔다.
어느 열린 이슈도 이 ViewModel 의 MVI 전환을 맡지 않는다. #1802 완료 조건은 ViewModel 3개(LoginViewModel, SignUpViewModel, FindIdViewModel)뿐이고, #1829 는 Content visibility, #1863 은 실패 모델, #1789 는 온보딩 그래프 배선이다. #1863 과 #1789 가 본문에서 이 파일을 언급하긴 하지만 둘 다 MVI 전환을 완료 조건에 넣지 않는다.
착수 전에 풀려야 하는 것이 하나 있다. PR #1963 이 FindPasswordUiState.kt 와 FindPasswordViewModel.kt 를 바꿔 errorMessage 와 isSocialSignUpAccount 두 칸을 단일 실패 모델로 갈아엎는다. 그 전에 Intent.ConsumeError, ConsumeSocialAccountBlocked 를 옛 두 칸 위에 세우면 #1863 이 그대로 다시 쓴다. 그러므로 착수는 #1963 머지 뒤이고, 귀속처는 #1802 후속 신규 이슈이거나 #2022 의 영구 예외 판정이다.
귀속 판정이 날 때까지 이 항목을 추적하는 열린 이슈는 이 이슈(#1812) 하나다. onboarding 담당자에게 어사인된 이슈는 아직 없다. 1번의 조치 없이 이 이슈를 닫으면 추적자가 사라지므로, 판정은 이 이슈가 닫히기 전에 나야 한다.
Activity
OnlyReadOneBook commentedon Sep 13, 2026
총괄 실측 기록 (origin/develop
7d87aa3f4기준)이 이슈에서 코드로 뗄 독립 범위가 없어 기록만 남긴다. 열린 자식 5개가 전부 이미 열린 PR 에 물려 있다.
refactor/1863-onboarding-failure(PR #1963)developrefactor/1902-memorial-photo(스택 #1839 → #1837 → #1838 → #1971 → #1972)developdevelop기준선
feature/*/presentation의 ViewModel 선언 50개 중MviViewModel을 상속한 것은 0개다.MviContractKonsistTest.kt의PENDING_MVI_MIGRATION은 51개이고, 실존 50개에 사문 1건이 더해진 값이다. 사문 항목은MviContractKonsistTest.kt:431의com.afternote.feature.receiver.presentation.home.ReceiverHomeViewModel이고, develop 의 실제 위치는feature/home/presentation/src/main/kotlin/com/afternote/feature/home/presentation/receiver/ReceiverHomeViewModel.kt다. PR #2039 가ISSUE_1803_RECEIVER를 블록째 지우면서 이 줄도 같이 사라지므로 따로 조치할 것은 없다.기반은 이미 들어와 있다. 베이스는
core/ui/src/main/kotlin/com/afternote/core/ui/mvi/MviViewModel.kt(#1800 닫힘), konsist 강제와docs/convention/mvi.md도 있다(#1801 닫힘). 남은 것은 전환뿐이다.1. 자식 트리에서 새는 범위가 둘 있다
#1968(편집기 외 afternote ViewModel 8개)과 #2022(MainViewModel 판정과 전환 종료 검사)는 각각 #1804 와 #1809 에서 분리됐는데, GraphQL 로 확인한 parent 가 둘 다 없다. afternote 와 platform 은 이 이슈가 본문에서 선언한 자기 범위다.
지금 subIssuesSummary 는 total 7 / completed 2 (28%) 다. 열린 자식 5개가 닫히면 7/7 로 완료 표시가 되지만, 그 시점에도 이것들이 남는다.
refactor/1804-editor-mvi).app/src/main/java/com/afternote/afternote_fe/MainViewModel.kt미전환. refactor(platform): 최종 앱 루트 책임 판정과 MVI 전환 종료 검사 (#1809 분리) #2022 에는 아직 PR 이 없다.MviContractKonsistTest.kt:63)의- PENDING_MVI_MIGRATION예외 분기를 지울 수 없다. 그 분기는 allowlist 가 비어야 지워지고, 비우는 마지막 조각이 refactor(afternote): 편집기 외 기존 ViewModel 8개의 MVI 전환 #1968 과 refactor(platform): 최종 앱 루트 책임 판정과 MVI 전환 종료 검사 (#1809 분리) #2022 다.두 이슈를 이 이슈의 자식으로 붙이거나, 붙이지 않는다면 이 이슈가 닫혀도 둘이 남는다는 것을 본문에 명시해야 한다.
2. onboarding 네 번째 ViewModel 이 미귀속이다
feature/onboarding/presentation/src/main/java/com/afternote/feature/onboarding/presentation/findaccount/FindPasswordViewModel.kt는 #457(PR #1624)로 이미 develop 에 도착해 있다. 전환 전 모양 그대로다.:43private val _uiState = MutableStateFlow(FindPasswordUiState()):145onSocialAccountBlockedConsumed():147onErrorConsumed():156onPasswordResetConsumed()그런데
konsist/src/test/kotlin/com/afternote/konsist/MviContractKonsistTest.kt:411-420의PENDING_ARRIVAL_ONBOARDINGKDoc 은 아직 "아직 develop 에 없다" 로 적혀 있다. 사실이 아니다. PR #1825 는ISSUE_1802_ONBOARDING3개만 빼고, 이 항목과 틀린 KDoc 은 그대로 둔다.어느 열린 이슈도 이 ViewModel 의 MVI 전환을 맡지 않는다. #1802 완료 조건은 ViewModel 3개(
LoginViewModel,SignUpViewModel,FindIdViewModel)뿐이고, #1829 는 Content visibility, #1863 은 실패 모델, #1789 는 온보딩 그래프 배선이다. #1863 과 #1789 가 본문에서 이 파일을 언급하긴 하지만 둘 다 MVI 전환을 완료 조건에 넣지 않는다.착수 전에 풀려야 하는 것이 하나 있다. PR #1963 이
FindPasswordUiState.kt와FindPasswordViewModel.kt를 바꿔errorMessage와isSocialSignUpAccount두 칸을 단일 실패 모델로 갈아엎는다. 그 전에Intent.ConsumeError,ConsumeSocialAccountBlocked를 옛 두 칸 위에 세우면 #1863 이 그대로 다시 쓴다. 그러므로 착수는 #1963 머지 뒤이고, 귀속처는 #1802 후속 신규 이슈이거나 #2022 의 영구 예외 판정이다.귀속 판정이 날 때까지 이 항목을 추적하는 열린 이슈는 이 이슈(#1812) 하나다. onboarding 담당자에게 어사인된 이슈는 아직 없다. 1번의 조치 없이 이 이슈를 닫으면 추적자가 사라지므로, 판정은 이 이슈가 닫히기 전에 나야 한다.
3. 본문 자식 표가 분리 전 수치다
세 줄이 현행 범위와 어긋난다.
VM 8, Consumed 5feature/home이동 뒤 #2037 이 가져갔다VM 9, @Test 246app VM 2 + konsist allowlist 종료NotificationPermissionViewModel하나. MainViewModel 과 종료 검사는 #2022OnlyReadOneBook commentedon Sep 23, 2026
총괄 이슈를 두지 않기로 정리하면서 닫습니다(2026-09-23). 기반 #1800·#1801·#1802 는 닫혔고, 남은 전환은 하위 이슈와 PR 이 진행합니다.