Skip to content

fix: 모바일 알림 실행·정확 시각 예약 및 로컬 데이터 복구 안정화 - #585

Merged
jjoonleo merged 61 commits into
mainfrom
fix/audit-20260923-stabilization
Sep 25, 2026
Merged

jjoonleo merged 61 commits into
mainfrom
fix/audit-20260923-stabilization

Conversation

@jjoonleo

@jjoonleo jjoonleo commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

현재 PR 범위 — 2026-09-25 갱신

예약 알림·모바일 백업·사용자 설정 보존·준비 시작·일정 저장·초기화 복구의 선행 수정입니다. 현재 head는 ee6c1f8b41fedbafee493791514026eaf669dcb5, 대상은 main입니다.

범위 관련 이슈
Android 예약 receiver, 모바일 백업 저장·선택, 설정 보존 A01 #583, A02 #584, A03 #586, A04 #587
상세 알림 보호, 실제 타이머 단계 알림, 준비 시작 원자성·재시도 A05 #588, A06 #598, A07 #599
일정·장소·준비 aggregate 저장 원자성 및 오래된 저장 요청 거부 A08 #601
알림 개인정보·cold tap·정확/근사 예약·provider 관측·작업 직렬화 A11 #589, A12 #591, A13 #592, A14 #593, A15 #594
초기화 journal 및 중단 후 정리·재시작 D03 #595
백업/초기화 workflow 분리와 홈 overflow의 부분 수정 C01 #600, U08 #597

A08 변경으로 이 PR의 DB 스키마는 버전 3입니다. 아래 과거 본문의 “DB schema를 변경하지 않는다” 및 “A07 미구현” 표기는 과거 단계의 설명이며 현재 범위를 설명하지 않습니다. ignored Dart 생성 파일은 커밋하지 않았습니다.

현재 head의 CI

Flutter Testing와 Android Notification Contract가 성공했습니다. Widgetbook PR 배포는 조건상 skipped입니다. CI 통과는 실제 Android/iOS 알림 전달·파일 provider·접근성 검증 완료를 의미하지 않습니다.

후속 PR과 남은 조건

후속 PR #631은 현재 PR의 head에서 시작합니다. 암호화 staging, 정상·손상 DB 복원, migration v4, 시간대 보정, 최근 일정 조회, 이력 삭제, 상세 알림 상태 및 실패 회귀를 포함합니다. #585 병합 후 #631의 base를 main으로 변경하고 그 기준의 CI를 다시 확인해야 합니다.

이 PR 단독으로는 C01/A08의 A09·D02 전체 복원 통합과 U08 전체 화면 조합이 완료되지 않습니다. 실제 기기 수용조건과 전체 iOS 빌드/네이티브 검증도 별도로 남아 있습니다. 미완료 이슈 자동 종료와 스토어 출시는 수행하지 않습니다.

이전 구현 단계의 상세 기록 — 현재 범위와 CI는 위 갱신 내용을 우선합니다

문제와 결과

예약 알림 전달 누락, 백업 파일 저장·복원 실패, 사용자 설정 덮어쓰기와 로컬 데이터 초기화 후 남는 알림을 수정합니다. Android/iOS local-only 제품 경계를 유지하며 알림의 실제 취소 확인과 재시작 복구를 연결했습니다.

변경 내용

DB schema/backup version을 변경하지 않습니다. ignored Dart 생성 산출물은 커밋하지 않았고, tracked localization 출력은 ARB와 함께 갱신했습니다. 전체 감사64개 중26개는 전담 grill 문답을 포함한 상세 이슈가 게시됐으며, 이 PR이64개 모두를 구현했다는 뜻은 아닙니다.

검증

A06 구현 d06474d4c645794644075173f76afb9ff4445047의 최종 전체929개, 신규 경계47개, coverage88.74%(13092/14753), analyze·generated/local-only·Python11·manifest를 통과했습니다. 수정 전 실제 타이머 회귀 실패를 확인했고, 수정 후 실제 timer→서비스→plugin MethodChannel 제출까지 검증했습니다.7개 커밋blob이 검증 freeze와 일치합니다. A06 근거. 실기기 표시 증거는 별도입니다.

D03 구현 5f3adf11aaaa3e36d6e4e25c41be6c06e4105480에서 전체872개와 손상 복구 집중71개 테스트가 통과했습니다. coverage87.99%(12253/13926), analyzer, generated/local-only 정책 및 manifest/Python11개 검사 통과.579파일 고정 목록을 재해시했고 제품/test 소스는 동일합니다. QA probe의 대역 설정만 명시적unknown으로 정정한 뒤 analyzer와 host 검증을 재실행했습니다.

별도 호스트 프로세스 SIGKILL 후 새 프로세스 복구11지점이 통과했습니다.6개 완료-write 지점과5개 손상 bytes fixture/격리 복구 지점을 검사했으며 provider/deletion adapter는 대역입니다. 모바일 OS kill, write syscall 중단, 전원손실의 증거는 아닙니다. 실제 iOS26.5 SDK Swift typecheck와 Android36/Flutter Kotlin compile도 통과했습니다.

증거: 최종 검증 manifest, 검증 로그. 직전 A15 원격HEAD818e99c9는 Flutter795/87.66% 및 Android release APK CI 통과. 최신 main c7184b2a Figma 화면을 통합한 074d5fd6의 원격 Flutter run35944442338은882개/88.50%(13015/14706)/analyze 통과했습니다. 같은 HEAD Android run35944442335도release APK/manifest를 통과했고 artifact10786008849의실제 APK digest를 D03 CI 검증에 기록했습니다. A06의 원격 CI는 새 HEAD에서 별도로 확인합니다.

KO/EN 실제 widget·번들 글꼴·200% text 캡처는 직접 확인했습니다. synthetic receipt이며 기기 OS 화면이 아닙니다.

상태 한국어 영어
정리 미완료 캡처 캡처
초기화 완료 캡처 캡처

남은 수용조건

실제 Android/iOS 예약 전달·권한 변경·프로세스 중단 복구·backup exclusion과 picker/provider 교차 플랫폼 복원은 기기 검증이 남았습니다. 일반 손상 DB 복구(D01/D02), 전체 복원 runtime(A09), 준비 시작 원자성(A07) 등 미구현 항목은 연결 이슈에서 계속합니다. 자동검증 통과와 병합·store 업로드·출시는 구별하며 이슈를 자동 종료하지 않습니다.

@jjoonleo jjoonleo changed the title fix: Android 예약 알림 receiver 복원 및 감사 실행 기반 추가 fix: Android 알림 및 모바일 암호화 백업 복구 Sep 23, 2026
@jjoonleo jjoonleo changed the title fix: Android 알림 및 모바일 암호화 백업 복구 fix: 모바일 알림·백업 복구 및 프로필 데이터 보존 Sep 23, 2026
@jjoonleo jjoonleo changed the title fix: 모바일 알림·백업 복구 및 프로필 데이터 보존 fix: 모바일 알림 개인정보·백업 복구 및 프로필 데이터 보존 Sep 23, 2026
@jjoonleo jjoonleo changed the title fix: 모바일 알림 개인정보·백업 복구 및 프로필 데이터 보존 fix: 모바일 알림 실행·개인정보 및 로컬 데이터 복구 안정화 Sep 23, 2026
@jjoonleo jjoonleo changed the title fix: 모바일 알림 실행·개인정보 및 로컬 데이터 복구 안정화 fix: 모바일 알림 실행·정확 시각 예약 및 로컬 데이터 복구 안정화 Sep 23, 2026
@jjoonleo
jjoonleo marked this pull request as ready for review September 25, 2026 09:58
@github-actions

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit ee6c1f8):

https://on-time-front-widgetbook--pr-585-lx6437p2.web.app

(expires Mon, 28 Sep 2026 10:04:07 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: e53128a376fed0209d449279de9c0d94c83cdd8b

@jjoonleo
jjoonleo merged commit 2d6df1e into main Sep 25, 2026
5 checks passed
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.

1 participant