Skip to content

fix: 공유 푸시와 계정 삭제를 현재 세션에 한정한다 - #213

Merged
OnlyReadOneBook merged 5 commits into
mainfrom
feat/206
Sep 6, 2026
Merged

OnlyReadOneBook merged 5 commits into
mainfrom
feat/206

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

  • 공유 푸시를 계정별 data-only 메시지로 전환합니다. UID는 watcher 문서 ID를 사용하고 UID+token 쌍 중복 제거·500개 sendEach 분할·삭제 before를 보존합니다.
  • Android는 현재 UID/공유 코드/필수 계약을 확인한 뒤 표시합니다. 알림 표시와 로그아웃·코드 교체/해제를 한 잠금으로 묶고, 공유 tag 및 기존 FCM ID 0/채널만 정리해 정시 알람을 보존합니다. 수신 내용·토큰 로그와 Service의 직접 Firestore 접근을 제거하고 토큰 갱신은 Repository를 통해 현재 watcher까지 반영합니다.
  • 늦은 공유 코드 저장 응답이 설정을 되살리지 않도록 세션 revision을 확인합니다. 계정 삭제에서도 매 비동기 단계 뒤 세션/취소를 확인하고, watcher/Auth 삭제에 expected UID를 넘겨 새 계정을 건드리지 않습니다. Auth 단계의 취소/실패에도 이미 삭제된 세션의 로컬 공유 흔적을 정리합니다.

📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵

  • 화면 레이아웃 변경 없음. 전용 API 34 emulator에서 실제 알림 테스트 4개를 실행했습니다: 현재 UID/코드만 표시, 같은 일정 갱신·다른 ID 보존, 새/legacy 공유 알림 정리와 정시 알람 보존, 코드 교체/해제, 실제 POST_NOTIFICATIONS revoke 후 미표시.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

Serialize notification display with local session changes, refresh current watcher tokens through the repository, and send per-recipient data messages. Verify actual handler batching, session races, permission gates, and narrow notification cleanup.

Sources: https://firebase.google.com/docs/cloud-messaging/android/receive-messages https://firebase.google.com/docs/cloud-messaging/send/admin-sdk
Check cancellation and the original session after each deletion stage, pin watcher/Auth deletion to the expected UID, and preserve new-account state. Verify real Android notification cleanup, permission revocation, and all six async deletion boundaries.

Sources: https://firebase.google.com/docs/auth/android/manage-users https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/ensure-active.html
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

❌ Screenshot test fail — baseline 과 CI rendered PNG 차이.

📦 Artifact: https://github.com/1hyok/SlowClock/actions/runs/34022476986 (페이지 하단 Artifacts → screenshot-test-results)

🔍 확인 위치 (artifact zip 내부):

  • diff PNG: preview/debug/diffs/...
  • rendered PNG: preview/debug/rendered/... (CI 환경에서 새로 그린 결과)
  • baseline PNG: repo <module>/src/screenshotTestDebug/reference/... (:app · :feature:main · :feature:profile)

📝 조치 가이드:

  • 의도된 시각 변경 → 이 PR에 screenshot-baseline 라벨을 붙여 CI baseline 생성 요청
  • diff 가 anti-aliasing/font 차이로 보이면 docker 환경 변경 여부 (Dockerfile.screenshot) 점검

CI ↔ 로컬 환경 차이는 본 워크플로의 container 단계가 root fix 한다 (docs/testing/screenshot.md 참조).

…sources

Refs #206. App assembleDebug, lintDebug and all three existing app screenshot previews pass with Messaging API types exposed and the full SDK on runtimeClasspath.

Source: https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api.artifacts/-module-dependency/set-transitive.html
Refs #206. Preserve both shared notification channel and alarm snooze failure resources from main 7ea4f5a.
@OnlyReadOneBook
OnlyReadOneBook merged commit c00e38f into main Sep 6, 2026
15 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the feat/206 branch September 6, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: 공유 푸시를 현재 로그인과 공유 코드에 한정한다

1 participant