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
fix(setting): 패스키 목록·등록 호출과 실패 처리 구현분 분리 (#555) #1944
#555에서 이미 구현한 클라이언트 목록·등록 호출 및 실패 처리 범위만 분리합니다. 현재 구현 PR은 #2236이며, 최종 MVI 구조를 소비한 구현·테스트·push와 PR 검증까지 완료했습니다.
기존 화면은 목록 자리표시자 1건을 고정 표시하고 로컬 자격 증명 생성만으로 등록 완료를 표시했습니다. PR #2236은 서버 목록을 조회해 로딩·실제 0건·실패를 구분하며, registerOptions → Credential Manager → register 순서와 서버 성공 후 완료 표시를 구현합니다.
이 이슈의 완료 범위:
setting domain/data 전용 패스키 저장소로 목록·options·등록 API 계약을 연결한다.
서버 목록을 실제 값으로 표시하고 조회 실패·재시도·재진입 갱신을 처리한다.
등록 취소·플랫폼 실패·서버 거절·예상 밖 응답을 분리하며 실패를 완료로 표시하지 않는다.
PR #2236의 실제 HEAD df7a8ee7ecb05b03718b56123f0770fb50a85d2a에서 코드 CI, API30 계측 72건과 API34 접근성 계측 1건이 통과한다.
선행 PR과 필요한 리뷰 조건을 충족하고 최종 develop 통합 검증 후 PR #2236을 머지한다.
실제 서버 등록 성공의 미확인 상태는 이 완료 범위에서 제외하여 부모 #555에 남깁니다. 직접 관측한 최종 응답은 HTTP 400 / code 2700이며 서버 목록은 전후 0건입니다. 거절 원인 확정, 새 options를 이용한 실제 등록 성공, 성공 직후 서버·앱 목록 갱신 및 재진입 유지, 물리 기기 생체인증 QA와 실제 증거는 #555가 계속 추적합니다. CI fixture 성공이 실서버 등록 성공을 뜻하지 않습니다.
#1502의 MVI 구조를 소비한 #708과 생체 인증 선행 PR #2202·#2226 위에서 구현합니다. 직접 base는 #2226의 fix/2200-legacy-biometric-auth (c60c993e2d2058c27b86db65a2c611e54b7937d7)이며 Navigation 3와 상태 소비 계약을 그대로 사용합니다. #2236의 신규 PassKeyListViewModel뿐 아니라 기존 PassKeyViewModel도 MviViewModel/Intent/reduce를 사용합니다. 등록 수명을 상태로 옮기며 함께 수정하는 PassKeyPasswordScreen의 PIN 입력·초기화 소비처와 AppLockSetupViewModel도 같은 PR에서 최종 MVI로 전환하여 #1805의 재작성을 제거합니다.
화면 폐기는 등록 취소 Intent로 전달하고 이전 등록의 늦은 종료가 새 등록을 중지시키지 않도록 요청 세대를 구분합니다. 서버 성공 후 캐시 실패는 성공 상태를 뒤집지 않습니다. #555의 실서버 성공·목록 반영·물리 생체인증 QA 잔여는 그대로 유지합니다.
Activity
github-actions commentedon Sep 7, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.
github-actions commentedon Oct 1, 2026
이 이슈를 맡은 PR 은 #2236 다 (base
fix/2200-legacy-biometric-auth).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.fix: 패스키 목록 아이콘과 긴 이름 영역 제한 (#1944)
fix(setting): 서버 등록 뒤 패스키 캐시 저장을 화면 수명과 분리한다 (#1944)
test(setting): 취소된 요청의 늦은 서버 성공도 패스키 캐시를 켜는 것으로 기대값을 맞춘다 (#1944)
fix: 서버 패스키 등록과 목록 상태 복구 (#1944)
fix: 패스키 목록 아이콘과 긴 이름 영역 제한 (#1944)
fix(setting): 서버 등록 뒤 패스키 캐시 저장을 화면 수명과 분리한다 (#1944)
test(setting): 취소된 요청의 늦은 서버 성공도 패스키 캐시를 켜는 것으로 기대값을 맞춘다 (#1944)
fix: 서버 패스키 등록과 목록 상태 복구 (#1944)
fix: 패스키 목록 아이콘과 긴 이름 영역 제한 (#1944)
fix(setting): 서버 등록 뒤 패스키 캐시 저장을 화면 수명과 분리한다 (#1944)
test(setting): 취소된 요청의 늦은 서버 성공도 패스키 캐시를 켜는 것으로 기대값을 맞춘다 (#1944)