Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs/qa/evidence/2c7295c3a3506e14c64b601031f34fa9416b6cef.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"schema": 1,
"source": {
"original_file": "2c7295c3a3506e14c64b601031f34fa9416b6cef.json",
"schema": 1,
"field_mapping": {
"result": "result",
"scenario": "scenario",
"not_covered": "not_covered",
"recorded_at": "recorded_at"
},
"redactions": []
},
"repository": "Afternote/Afternote-FE",
"head_sha": "2c7295c3a3506e14c64b601031f34fa9416b6cef",
"head_ref": "fix/2105-receiver-list-response",
"base_sha": null,
"base_ref": null,
"recorded_at": "2026-09-23T03:20:00+00:00",
"result": "fail",
"scenario": "#2120 head 로 3차 QA 성공 경로. 홈이 이름·수신인 지정 완료·오늘의 질문과 함께 정상으로 뜬다(develop 에서 같은 계정·같은 시점에 실패하던 화면). 설정 하위 화면 순회: 공지사항(빈 안내, 목록은 NavGraph 에서 emptyList 고정이라 서버 조회 없음), 프로필 수정, 연결된 계정, 푸시 알림 설정, 수신자 목록(relation null 행 포함 2건), 수신자 등록, 사후 전달 조건, 패스키 관리(등록 진입 화면), 앱 잠금 비밀번호 설정은 진입 정상. 고객센터는 눌러도 반응이 없고(#564) 비밀번호 변경은 '현재 이 메뉴는 이용할 수 없습니다'(#564, 연결은 #2094 대기). 타임레터 목록 1건 조회 정상, 수신인 선택에 2건 노출. 발송 날짜 없이 등록하면 등록 버튼이 회색이고 요청·안내가 없다(#624 재현). 애프터노트 목록·상세·수정 진입(수신자 prefill 정상)·남기실 말씀 추가 후 저장 PATCH 200·목록 재조회 정상. 관찰: 목록의 '최종 작성일'은 목록 응답의 createdAt 이라 수정해도 바뀌지 않는다. 2차 패스(12:27~12:40 KST): 에뮬에 화면잠금 PIN 과 지문을 등록하고 앱에서 패스키를 등록했다(지문 BiometricPrompt 통과, 서버 요청 없음). 패스키 목록은 등록 뒤에도 자리표시자 한 줄('이름'·'생성일시'·애플 아이콘)만 보인다(#555 재현). 마음의 기록 쓰기: 데일리 질문 답변 PATCH 200·today isAnswered true, 홈 CTA 문구는 답변 여부와 무관하게 같다(홈에 답변 상태 분기 없음, 관찰). 일기 등록 POST 200·월 목록 재조회·'1개의 기록 완료', 수정 PATCH 200 반영, 임시저장 POST isDraft true·임시저장 수 11→12·다시 열면 제목 prefill. 일기 삭제는 확인 없이 바로 DELETE 200 이 나간다(#2142 등록, 확인 대화상자는 데일리 질문 목록에만 있다). 리치 에디터 본문에 셸 입력 명령으로 여러 글자를 한 번에 넣으면 글자가 빠지지만 한 글자씩은 전부 들어가 입력 도구 조건으로 본다. 3차 패스(15:24~15:32 KST, release/minify): 같은 HEAD 를 임시 keystore 로 assembleRelease 해 API 26 에뮬(google_apis, 1080x1920 급)에 설치했다. release 는 debuggable 이 아니라 adb root 로 DataStore 에 QA 토큰을 넣었다. 콜드 스타트 294ms, 순회 내내 같은 프로세스 유지, crash 버퍼 0줄. 순회: 홈(수신자 relation null 행 포함 목록이 R8 뒤 직렬화에서 정상 디코드), 기록 3탭, 타임레터 목록·상세·편집기·수신인 선택, 노트 목록·상세 2건, 편집기 종류 5개(AfternoteType enum 라우트, 재산 처리는 준비 중 안내), 추억 플레이리스트, 에디터 이탈 가드, 설정 하위 화면 전부, 마음의 기록 편집기. 관찰: 새 애프터노트 편집기는 작성자의 수신자 전체로 미리 채워진다. KDoc(loadAuthorReceivers)에 명시된 의도라 결함이 아니다.",
"not_covered": [
"수신자 열람 승인 이후 화면(#607)은 보지 않았다.",
"리치 에디터 글자 누락은 실제 IME·하드웨어 키보드 연속 입력으로 재현하지 않았다.",
"실기기 고유 축 5종은 실기기 패스 몫이다.",
"release 순회는 조회·진입까지만 했고 저장·업로드처럼 데이터를 만드는 경로는 release 로 실행하지 않았다."
],
"device": {
"is_emulator": true
},
"details": {
"details": {
"screen": {
"size": "1080x2400",
"density": 420,
"api_level": 35
},
"build_type": "debug",
"issues_reproduced": [
624,
564,
555
],
"issues_filed": [
2142
],
"release_smoke": {
"api_level": 26,
"startup_ms": 294,
"minified": true,
"signing": "temporary keystore"
}
}
}
}
54 changes: 54 additions & 0 deletions docs/qa/evidence/b402415ecfa555f67a8e638a96d8dd562bebe1c0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"schema": 1,
"source": {
"original_file": "b402415ecfa555f67a8e638a96d8dd562bebe1c0.json",
"schema": 1,
"field_mapping": {
"result": "result",
"scenario": "scenario",
"not_covered": "not_covered",
"recorded_at": "recorded_at"
},
"redactions": []
},
"repository": "Afternote/Afternote-FE",
"head_sha": "b402415ecfa555f67a8e638a96d8dd562bebe1c0",
"head_ref": "fix/1868-upload-size-feedback",
"base_sha": null,
"base_ref": null,
"recorded_at": "2026-09-23T06:20:00+00:00",
"result": "fail",
"scenario": "3차 QA 실기기 패스(갤럭시 S25). 기기 고유 축만 돌렸다. 1) 카카오 앱-투-앱 로그인(#2120 head 2c7295c3a debug, 공유 debug keystore 서명): TalkAuthCodeActivity -> 카카오톡 CapriLoggedInActivity -> 앱 복귀, 웹 폴백 없음. 2) 10 MiB 초과 사진(8160x6120, 17,279,369 B): 애프터노트 추억 노트 영정사진 등록 시 presigned 400 code 1803 과 함께 '파일 크기가 업로드 허용 한도를 초과했습니다.' 스낵바, 재시도 액션 없음(#2119 의도대로). 마음의 기록 이미지 첨부는 여전히 '다시 시도해 주세요'(#1868 의 그 경로는 #2119 범위 밖). 대조군 3,776,479 B 는 presigned 200·S3 PUT 200. 3) 하드웨어 Keystore: 패스키 등록 때 afternote_biometric_gate 키가 TRUSTED_ENVIRONMENT 에 생성되고 지문 auth token 뒤 연산 성사. 노트 탭 지문 게이트도 인증 뒤 목록 200. 패스키 목록은 자리표시자 한 줄(#555). 4) 삼성 키보드 한글 입력: 마음의 기록 본문에 사람이 직접 친 '오늘은 날씨가 맑았다 ㅎㅎ' 가 누락·중복 없이 들어가고 글자 수 14 가 조합 중 글자까지 맞는다. 5) S25 글자 70%(density 420, font_scale 0.8): 주요 5개 화면 잘림·겹침 없음. 6) predictive back(제스처 내비게이션, 가장자리 스와이프를 도중에 멈춘 상태 캡처): 앞 화면은 축소되지만 배경이 투명해 뒤 화면 글자가 비친다(#2145 등록, #2058 이후 남은 몫). 새로 등록: #2143(4:3 사진이 원형 프로필에서 위아래 잘림, ProfileImage 에 contentScale 없음), #2144(마음의 기록 작성 중 뒤로가기가 확인 없이 내용 폐기), #2145.",
"not_covered": [
"release(minify) 산출물은 origin/main 이 f5ad611 에서 움직이지 않아 이번에 다시 돌리지 않았다(0904 기록 f5ad611 참조).",
"predictive back 은 motionevent 로 멈춘 상태를 흉내 냈고 사람 손가락 제스처로는 보지 않았다.",
"삼성 키보드는 한 문장만 봤고 자동완성·붙여넣기는 보지 않았다."
],
"device": {
"is_emulator": false
},
"details": {
"details": {
"screen": {
"size": "1080x2340",
"density": 420,
"physical_density": 480,
"font_scale": 0.8
},
"api_level": 36,
"build_type": "debug",
"issues_commented": [
2119
],
"issues_reproduced": [
555,
1868
],
"issues_filed": [
2143,
2144,
2145
]
}
}
}
48 changes: 48 additions & 0 deletions docs/qa/evidence/f69332d995a2e9890605b3c8075c427b2dd0cc8c.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"schema": 1,
"source": {
"original_file": "f69332d995a2e9890605b3c8075c427b2dd0cc8c.json",
"schema": 1,
"field_mapping": {
"result": "result",
"scenario": "scenario",
"not_covered": "not_covered",
"recorded_at": "recorded_at"
},
"redactions": []
},
"repository": "Afternote/Afternote-FE",
"head_sha": "f69332d995a2e9890605b3c8075c427b2dd0cc8c",
"head_ref": "develop",
"base_sha": null,
"base_ref": null,
"recorded_at": "2026-09-23T03:10:00+00:00",
"result": "fail",
"scenario": "3차 QA 에뮬레이터 패스. 1) 서버 닫힘(11:52~11:58 KST) 실패 경로, 토큰 주입 로그인 상태: 홈·노트·마음의 기록(데일리 질문·일기·주간리포트)은 오류 안내와 다시 시도가 뜬다(8/25 의 기술 원문 노출은 해소). 타임레터는 서버 실패를 '아직 등록된 타임레터가 없어요' 빈 목록으로 가린다(#714 재현, 같은 계정에 타임레터 1건이 있음을 서버 복구 뒤 확인). 설정은 로그아웃 한 줄만 남는다(#708 재현). 타임레터 작성 중 뒤로가기는 확인 없이 내용이 사라진다(#576 재현), 하단바 미디어 버튼 라벨이 '링크 삽입'(#594 재현). 애프터노트 에디터 이탈 가드는 정상. 2) 서버 열림(12:06 KST): 홈이 진입 즉시 '정보를 불러오지 못했습니다'로 떨어진다. users/me·users/receivers·daily-questions/today·mind-record 가 모두 200 인데, 수신자 목록 응답의 relation null 행이 ReceiverListDto.relation(String) 디코드를 깨고 홈이 수신자 조회를 필수로 묶어 화면 전체가 실패한다. 애프터노트 작성 > 수신자 추가도 같은 원인으로 '수신자 목록을 불러오지 못했습니다'. #2105 에 영향 범위를 캡처와 함께 코멘트했다.",
"not_covered": [
"나머지 성공 경로는 수신자 디코드 실패에 가려져 #2120 head 빌드로 봤다(별도 기록).",
"실기기 고유 축(실사 사진 10MiB, 하드웨어 Keystore, predictive back, 삼성 IME, S25 글자 크기)은 기기 배분상 실기기 패스 몫이다."
],
"device": {
"is_emulator": true
},
"details": {
"details": {
"screen": {
"size": "1080x2400",
"density": 420,
"api_level": 35
},
"build_type": "debug",
"issues_commented": [
2105
],
"issues_reproduced": [
714,
708,
576,
594
]
}
}
}
22 changes: 20 additions & 2 deletions docs/qa/evidence/manifest.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"schema": 1,
"initial_migration_count": 34,
"record_count": 36,
"last_updated_on": "2026-09-04",
"record_count": 39,
"last_updated_on": "2026-09-23",
"records": [
{
"file": "05b5a49170952a4c6f9dea6e1aa4145ba097ad54.json",
Expand Down Expand Up @@ -34,6 +34,12 @@
"head_sha": "280f937d102a3e81d5c30be76c85aa7971c20268",
"sha256": "4004dea7de0d583475a32d3cab5668efe2da29ebf932be25a31f07860c623481"
},
{
"file": "2c7295c3a3506e14c64b601031f34fa9416b6cef.json",
"source_file": "2c7295c3a3506e14c64b601031f34fa9416b6cef.json",
"head_sha": "2c7295c3a3506e14c64b601031f34fa9416b6cef",
"sha256": "2d4469b735c4bd46b0b6c1c5e4a441482d0590aa3d11bf141cbf843ac4866c32"
},
{
"file": "3445d93228ce184e4e4634361d27486f6576035c.json",
"source_file": "3445d93228ce184e4e4634361d27486f6576035c.json",
Expand Down Expand Up @@ -154,6 +160,12 @@
"head_sha": "a3b3b1f24ce280f88cd3bdc0adeddbdba9d7b9db",
"sha256": "a5d16dc8e188e809a3b1976bc67c8a52b77368c1ef491de947778b38f18f57d6"
},
{
"file": "b402415ecfa555f67a8e638a96d8dd562bebe1c0.json",
"source_file": "b402415ecfa555f67a8e638a96d8dd562bebe1c0.json",
"head_sha": "b402415ecfa555f67a8e638a96d8dd562bebe1c0",
"sha256": "9e282397d46aa7d705e3458a828a5a356212ed91f6d26ac462f57666292f6083"
},
{
"file": "b765ddb642b55e341a8d213f5787cf05019200c5.json",
"source_file": "b765ddb642b55e341a8d213f5787cf05019200c5.json",
Expand Down Expand Up @@ -219,6 +231,12 @@
"source_file": "f5ad611b23a32c6db2de4795bd9cee9fb32aacf0.json",
"head_sha": "f5ad611b23a32c6db2de4795bd9cee9fb32aacf0",
"sha256": "b195fc3331fff4cc9afb97bc4a5997d5c9d93bf0cadb00d8cc69376465586fee"
},
{
"file": "f69332d995a2e9890605b3c8075c427b2dd0cc8c.json",
"source_file": "f69332d995a2e9890605b3c8075c427b2dd0cc8c.json",
"head_sha": "f69332d995a2e9890605b3c8075c427b2dd0cc8c",
"sha256": "716d5b2ea591892236ace65183bb84fb4082854fc4f6185a82b60c7e0812384c"
}
]
}
Loading