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
본문의 두 증상(재진입해도 요청 0건, 앱을 재시작해야 갱신, 등록 뒤 복귀도 같음)은 08-04 커밋 cfb25be 에서 없어졌다. 이 커밋이 UserRepositoryImpl 의 싱글턴 receiverCache(첫 조회값을 계속 재방출하던 캐시)를 걷어내고, 구독마다 receiverRefreshRevision 을 따라 다시 조회하게 바꿨다. createReceiver 성공도 revision 을 올린다. 커밋 메시지에 이슈 번호가 없어 git log --grep=#579 로는 안 잡힌다.
feature/setting/presentation/.../navigation/SettingNavGraph.kt 108~110행: composable<RecipientListRoute> 가 hiltViewModel() 로 entry 스코프 ViewModel 을 만든다.
app/.../navigation/AppNavigationActions.kt 226~228행: onRecipientListBack 은 popBackStack() 이다. 나가면 entry 와 ViewModel 이 사라지고, 다시 들어오면 새 ViewModel 이 새 구독으로 조회한다.
core/data/.../UserRepositoryImplTest.kt 156행 receiverListFlow - 새 구독은 서버에서 목록을 다시 조회한다, 311행 createReceiver - 성공하면 구독 중인 목록을 다시 조회한다 가 두 증상을 고정한다.
남은 앱 안 경로는 수신자를 수정하고 5초 안에 목록으로 돌아오는 경우 하나다(WhileSubscribed(5_000) 로 살아 있는 같은 구독이 옛 이름을 보여 준다). 이건 #2127 이 추적하고 PR #2130 이 updateReceiver 성공에도 revision 을 올려 고친다. 그 5초 창 안에 다른 기기에서 생긴 외부 변경까지 되살리는 재조회는 넣지 않는다. 앱 안의 변경 경로(등록·수정)는 revision 이 덮고, 남는 값이 창 안의 외부 변경뿐이라서다.
Note 의 두 항목도 풀려 있다. 상세 진입은 #631 로 관리 화면 행 탭이 수정 화면으로 가고, 0건 안내는 #2086(3ed4af2)이 넣었다.
09-18 에 정한 설정 사슬 재개 순서에서 닫힌 PR #2034(이 이슈의 사슬 구현, 원격 브랜치 fix/579-receiver-reentry 보존)는 이 판정으로 한 칸 빠진다. 그 사슬이 쓰던 재시도 API 는 #2045 가 refreshReceiverList() 로 develop 스택 위에 다시 넣는다.
Activity
OnlyReadOneBook commentedon Aug 2, 2026
원인 지점을 짚어 둔다.
ReceiverListViewModel에 조회를 트리거하는 코드가 없다. repository Flow 를 구독만 한다.```kotlin
val receivers: StateFlow<List> =
userRepository.receiverListFlow
.map { … }
.stateIn(scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), initialValue = emptyList())
```
init블록도refresh()도 없어서, 화면 진입·재진입이 서버 조회를 일으키지 않는다. 실측에서 재진입 시 요청 0건이고 앱을 재시작해야 갱신되는 것이 이 구조와 맞는다 — 재시작 때 다른 경로로 채워진 값이 Flow 에 실려 온 것이다.ReceiverListScreen.kt:73의LaunchedEffect는 스크롤 인덱스(listState·consonantIndexMap)용이라 데이터 로드와 무관하다.[-]fix(setting): 수신자 목록이 화면 재진입 시 미갱신 — 앱 재시작 전까지 stale[/-][+]수신자 목록이 화면 재진입 시 미갱신 — 앱 재시작 전까지 stale[/+]github-actions commentedon Sep 13, 2026
이 이슈를 맡은 PR 은 #2034 다 (base
refactor/1805-receiver-list-mvi).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.OnlyReadOneBook commentedon Sep 23, 2026
develop 에서 이미 고쳐져 있어 완료로 닫는다.
본문의 두 증상(재진입해도 요청 0건, 앱을 재시작해야 갱신, 등록 뒤 복귀도 같음)은 08-04 커밋 cfb25be 에서 없어졌다. 이 커밋이
UserRepositoryImpl의 싱글턴receiverCache(첫 조회값을 계속 재방출하던 캐시)를 걷어내고, 구독마다receiverRefreshRevision을 따라 다시 조회하게 바꿨다.createReceiver성공도 revision 을 올린다. 커밋 메시지에 이슈 번호가 없어git log --grep=#579로는 안 잡힌다.재진입 경로 근거 (origin/develop f69332d):
feature/setting/presentation/.../navigation/SettingNavGraph.kt108~110행:composable<RecipientListRoute>가hiltViewModel()로 entry 스코프 ViewModel 을 만든다.app/.../navigation/AppNavigationActions.kt226~228행:onRecipientListBack은popBackStack()이다. 나가면 entry 와 ViewModel 이 사라지고, 다시 들어오면 새 ViewModel 이 새 구독으로 조회한다.core/data/.../UserRepositoryImplTest.kt156행receiverListFlow - 새 구독은 서버에서 목록을 다시 조회한다, 311행createReceiver - 성공하면 구독 중인 목록을 다시 조회한다가 두 증상을 고정한다.남은 앱 안 경로는 수신자를 수정하고 5초 안에 목록으로 돌아오는 경우 하나다(
WhileSubscribed(5_000)로 살아 있는 같은 구독이 옛 이름을 보여 준다). 이건 #2127 이 추적하고 PR #2130 이updateReceiver성공에도 revision 을 올려 고친다. 그 5초 창 안에 다른 기기에서 생긴 외부 변경까지 되살리는 재조회는 넣지 않는다. 앱 안의 변경 경로(등록·수정)는 revision 이 덮고, 남는 값이 창 안의 외부 변경뿐이라서다.Note 의 두 항목도 풀려 있다. 상세 진입은 #631 로 관리 화면 행 탭이 수정 화면으로 가고, 0건 안내는 #2086(3ed4af2)이 넣었다.
09-18 에 정한 설정 사슬 재개 순서에서 닫힌 PR #2034(이 이슈의 사슬 구현, 원격 브랜치
fix/579-receiver-reentry보존)는 이 판정으로 한 칸 빠진다. 그 사슬이 쓰던 재시도 API 는 #2045 가refreshReceiverList()로 develop 스택 위에 다시 넣는다.실기 재현은 하지 않았고, 판정은 코드와 위 테스트 대조다.