fix: 커뮤니티 스피너 고착 + releaseToken 거짓 경보 - #309
Merged
Merged
Conversation
|
전체 라인 커버리지: 20.5% (4291/20909) 이 PR 의 변경 파일:
|
■ 커뮤니티 스피너가 영원히 도는 경로 최초 로드(스피너 켜짐)가 비행 중일 때 상세에서 돌아오며 silent 갱신이 _reqId 를 가져가면, 최초 로드의 응답은 최신성 가드에서 버려진다. 이때 silent 갱신마저 실패하면 "조용한 실패는 목록 유지" 규칙에 따라 그냥 반환해 버려 _loading 을 풀 사람이 아무도 남지 않는다. 스피너가 떠 있으면 그 silent 요청이 곧 최초 로드를 가로챈 것이므로 오류 화면으로 마무리한다. ■ push.releaseToken 세션이 이미 회수된 경우(다른 기기 비밀번호 변경·정지·탈퇴)의 42501 은 정상이다 — app.uid() 가 token_version 을 보므로 부를 자격이 없고, 기기 토큰은 DB 트리거(users_revoke_device_tokens)가 이미 껐다. 이걸 오류로 올리면 있지도 않은 누수를 알리는 거짓 경보가 된다. 그 밖의 실패(오프라인 로그아웃 등)는 여전히 진짜 누수라 report 유지 — #237 이 얼마나 자주 재현되는지는 계속 봐야 한다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
seizeh
force-pushed
the
fix/audit-followups
branch
from
August 10, 2026 02:40
83ca83c to
0a92e4e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
감사 후속 두 건.
① 커뮤니티 스피너가 영원히 도는 경로
최초 로드(스피너 켜짐)가 비행 중일 때 상세에서 돌아오며
silent갱신이_reqId를 가져가면, 최초 로드의 응답은 최신성 가드(myReq != _reqId)에서 버려진다. 이때silent갱신마저 실패하면 "조용한 실패는 목록 유지" 규칙에 따라 그냥 반환해 버려_loading을 풀 사람이 아무도 남지 않는다 → 스피너 영구 회전.스피너가 떠 있다는 건 그
silent요청이 최초 로드를 가로챘다는 뜻이므로, 그 경우엔 오류 화면으로 마무리한다._loading이 꺼져 있는 평시의 조용한 갱신 실패는 종전대로 목록을 유지한다.②
push.releaseToken거짓 경보세션이 이미 회수된 경우(다른 기기 비밀번호 변경·정지·탈퇴)의
42501 not_authenticated는 정상 결과다.app.uid()가token_version을 보므로 부를 자격이 없고, 기기 토큰은 DB 트리거users_revoke_device_tokens(pmdb20260810092000)가 이미 껐다. 이걸 오류로 올리면 있지도 않은 누수를 알리는 거짓 경보가 된다.그 밖의 실패(오프라인 로그아웃 등)는 여전히 진짜 누수이므로
report를 유지한다 — #237 이 얼마나 자주 재현되는지는 계속 봐야 한다.운영 로그 실측:
push.releaseToken은 42501 1건(2026-08-06)이 전부다.테스트
flutter analyze클린, 전체 326개 통과.①에 회귀 테스트는 넣지 않았다 — 커뮤니티 탭은 위젯 테스트 하네스도 피드 리포지토리 대역도 없어서, 한 줄 가드를 위해 하네스를 새로 세우는 비용이 이득보다 크다고 판단했다.
🤖 Generated with Claude Code