Skip to content

fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 (closes 1199, 1201) [base: develop] - #1198

Closed
1hyok wants to merge 2 commits into
developfrom
fix/onboarding-res-refs
Closed

1hyok wants to merge 2 commits into
developfrom
fix/onboarding-res-refs

Conversation

@1hyok

@1hyok 1hyok commented Aug 26, 2026 •

Copy link
Copy Markdown
Collaborator

develop 이 컴파일도, 스크린샷 검증도 통과하지 못하는 상태다. 원인이 둘인데 성격이 같다 — 오늘 머지된 PR 들이 서로 파일을 하나도 겹치지 않으면서 조합에서만 깨졌다. merge-tree 로도 clean, 각자 CI 도 green 이었다.

1. 컴파일 — 리소스 개명 ↔ 옛 이름 참조

e: OnboardingTermsRowWidthTest.kt:72:64 Unresolved reference 'terms_agree_all'
e: OnboardingTermsRowWidthTest.kt:73:66 Unresolved reference 'terms_view_detail'
> Task :feature:onboarding:presentation:compileDebugUnitTestKotlin FAILED

#1187 이 onboarding 리소스를 onboarding_ 프리픽스로 개명했고, #1162 는 옛 이름을 참조하는 테스트를 새로 추가했다. 참조 두 줄을 새 이름으로 옮긴다 — 테스트가 무엇을 보는지는 그대로다.

이 실패는 develop 머지 직후 워밍 run 32950531237 이 이미 잡았다. build-cache-warm.yml 은 게이트가 아니라 실패가 아무 데도 도달하지 않았을 뿐이다.

2. 스크린샷 — 타이포그래피 변경 ↔ 그 이전 baseline

onboardingTermsScreenInitialCompactScreenshot                 ImageComparisonAssertionError
deliveryVerificationCompleteScreenLargeFontScreenshot         ImageComparisonAssertionError
identityVerificationEmailScreenSentLargeFontScreenshot        ImageComparisonAssertionError

#1174 가 AfternoteTypography.kt 에 lineBreak·ko 로케일을 넣어 한글이 어절 단위로 끊기게 바뀌었다(#1142). #1162·#1164 의 baseline 은 그 이전 렌더라 어긋난다. CI 와 같은 컨테이너(amd64·ubuntu 24.04·Noto CJK)에서 세 장을 다시 떴다.

약관 화면은 개선이 눈에 보인다 — 「E-mail 및 SMS 광고성 정보 수신동의 (선택)」이 (선 / 택) 으로 쪼개지던 것이 이제 (선택) 통째로 내려간다. #1142 가 고치려던 그 증상이다.

검증

  • ./gradlew compileDebugUnitTestKotlin compileDebugAndroidTestKotlin — BUILD SUCCESSFUL. 전 모듈 26개 태스크 + :app:compileDebugAndroidTestKotlin. 수정 전 같은 명령이 위 오류로 BUILD FAILED 였다.
  • 컨테이너 validateDebugScreenshotTest(onboarding·receiver) — BUILD SUCCESSFUL. CI green 사전 확정.
  • onboarding presentation 의 R.string.* 참조를 strings.xml 정의와 전수 대조 — 정의에 없는 참조 0건.

리뷰어에게

이 자리는 다시 열린다. resourcePrefix 도입(#1071·#1185)이 모듈별로 진행 중이고, 타이포그래피·공용 컴포넌트 변경도 계속 있다. 정의를 바꾸는 PR 과 그 이름을 새로 참조하는 PR 이 같은 배치에 있으면 파일 충돌 없이 조합에서만 깨진다 — GitHub 의 MERGEABLE 도 merge-tree 도 이 축을 보지 못한다.

develop push 에는 검증 워크플로가 없어서(pr-validation.yml 은 pull_request 전용) 이 red 가 자동으로는 어디에도 뜨지 않는다. 열린 PR 들이 실패를 물려받고서야 간접적으로 드러나고, 그때조차 «내 PR 탓인지 develop 탓인지» 를 사람이 로그를 갈라 판정해야 한다(#1176 에서 실제로 그렇게 갈랐다). 별도 이슈로 다룰 만하다.


이 PR 이 두 갈래를 함께 닫는다. 같은 시각 다른 세션에서 #1199(컴파일)·#1201(baseline)로 나뉘어 진단된 것과 원인·범위가 같고, 이쪽은 두 축 모두 수정과 검증이 끝나 있다.

Closes #1199
Closes #1201

#1187 이 onboarding 리소스를 `onboarding_` 프리픽스로 통일하면서 `terms_agree_all`·
`terms_view_detail` 이 개명됐는데, 같은 날 들어간 #1162 가 그 옛 이름을 참조하는 테스트를
새로 추가했다. 두 PR 은 건드리는 파일이 겹치지 않아 merge-tree 도 clean, 각자 CI 도
green 이었고 — 한쪽이 정의를 바꾸고 한쪽이 참조를 더해서 develop 조합에서만 깨졌다.

참조 두 줄을 새 이름으로 옮긴다. 테스트가 무엇을 보는지는 그대로다.
@github-actions

Copy link
Copy Markdown
Contributor

🚧 리뷰 적체 가드 — 이 PR 을 닫습니다

아무도 리뷰하지 않은 PR 이 4건 남아 있습니다.

PR 열린 날 경과 제목
#1154 2026-08-25 1일 test(mindrecord): screenshotTest 소스셋을 세우고 추억 공간 baseline 을 넣는다 (#1131)
#1152 2026-08-25 1일 fix(mindrecord): 수신인 조회 실패를 «등록 없음» 과 구분해 알린다 (#1019)
#1061 2026-08-24 2일 refactor(receiver): 수신자 홈의 afternote 리소스 차용 해소 — 아이콘 core:ui 승격 (#926)
#958 2026-08-23 3일 fix(mindrecord): 미디어 첨부를 업로드 뒤 파일명으로 넣는다 — 로컬 content:// URI 노출 제거

이 저장소는 아무도 응답하지 않은 PR 이 1건이라도 남아 있으면 새 PR 을 열 수 없습니다 (#1136).

각 PR 에 필요한 리뷰는 한 건입니다 — 누구든 먼저 판정을 내면 그 PR 은 모두의 목록에서 빠집니다. 승인 뒤에 올라온 변경을 다시 봐 줄 의무는 없지만, 변경요청은 작성자가 반영한 시점에 다시 리뷰어의 몫이 됩니다.

되살리는 법

위 리뷰를 끝낸 뒤 이 PR 을 다시 여세요. 브랜치는 지워지지 않았고 커밋도 그대로입니다.

gh pr reopen 1198

리뷰보다 이 PR 이 급하면 review-debt-exempt 라벨을 붙이고 다시 열면 통과합니다.

@github-actions github-actions Bot closed this Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

📦 Artifact: https://github.com/Afternote/Afternote-FE/actions/runs/32951187023 (페이지 하단 Artifacts → screenshot-test-results)

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

  • diff PNG: preview/debug/diffs/...
  • rendered PNG: preview/debug/rendered/... (CI 환경에서 새로 그린 결과)
  • baseline PNG: repo <module>/src/screenshotTestDebug/reference/... (:core:ui · :feature:home:presentation · :feature:receiver:presentation · :feature:onboarding:presentation · :feature:afternote:presentation)

📝 조치 가이드:

  • 의도된 시각 변경 → docker build -t afternote-screenshot:latest -f Dockerfile.screenshot . 후 docker run --rm -v "$PWD":/workspace -w /workspace afternote-screenshot:latest ./gradlew :<module>:updateScreenshotTest 로 baseline 갱신 + commit/push
  • diff 가 anti-aliasing/font 차이로 보이면 docker 환경 변경 여부 (Dockerfile.screenshot) 점검

CI ↔ 로컬 환경 차이는 본 워크플로의 container 단계가 root fix 한다 (README 의 "Compose Preview Screenshot Testing (docker baseline)" 섹션 참조).

#1174 가 `AfternoteTypography.kt` 에 lineBreak·ko 로케일을 넣어 한글이 어절 단위로
끊기게 바뀌었다. 같은 날 들어간 #1162·#1164 의 baseline 은 그 이전 렌더라, develop
조합에서 `validateDebugScreenshotTest` 가 세 화면에서 ImageComparisonAssertionError 를
낸다 — 약관 화면 Compact, 수신자 전달완료·이메일인증 fontScale 1.5.

CI 와 같은 컨테이너(amd64·ubuntu 24.04·Noto CJK)에서 다시 떴다. 약관 화면은 「(선택)」이
「(선」/「택)」으로 쪼개지던 것이 통째로 내려간다 — #1142 가 고치려던 그 증상이다.
@1hyok 1hyok changed the title fix(onboarding): 리소스 프리픽스 통일 뒤 남은 테스트 참조를 잇는다 [base: develop] fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 [base: develop] Aug 26, 2026
@1hyok 1hyok changed the title fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 [base: develop] fix(onboarding,receiver): 오늘 머지 조합이 깬 develop 을 복구한다 (closes 1199, 1201) [base: develop] Aug 26, 2026
@1hyok

1hyok commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

develop 이 컴파일도 스크린샷 검증도 통과하지 못하는 상태라 review-debt-exempt 로 먼저 엽니다 — 열린 PR 전부가 이 실패를 물려받고 있어서, 밀린 리뷰 4건조차 지금 상태로는 «그 PR 탓인지 develop 탓인지» 를 가릴 수 없습니다.

우회한 만큼 갚겠습니다. 이 PR 이 머지되어 develop 이 green 이 되는 대로 #1154 · #1152 · #1061 · #958 을 이어서 봅니다.

@1hyok 1hyok reopened this Aug 26, 2026
@1hyok

1hyok commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

같은 사고를 다른 세션에서 독립적으로 추적하다 이 PR 과 중복되는 복구를 만들었습니다(#1200 · #1204). 이 PR 이 먼저이고 범위도 더 넓어 제 쪽을 닫았습니다.

닫기 전에 대조해 두었는데, 참고가 될 것 같아 남깁니다 — baseline 3장이 바이트 단위로 동일합니다.

동일  onboardingTermsScreenInitialCompactScreenshot_c2abd7e6_0.png
동일  deliveryVerificationCompleteScreenLargeFontScreenshot_39fcf3fa_0.png
동일  identityVerificationEmailScreenSentLargeFontScreenshot_39fcf3fa_0.png

서로 다른 워크트리·별도 gradle 캐시 볼륨에서 각자 docker(linux/amd64) 사이클을 돌렸는데 결과가 일치했습니다. 렌더가 환경에 흔들리지 않았다는 뜻이라, 이 baseline 은 그대로 신뢰해도 됩니다.

추가로 artifact 의 rendered 와 대조해 문구는 동일하고 줄바꿈 위치만 다름을 확인했습니다. 즉 현재 baseline 이 #1142 가 고치려던 결함(한글 어절 중간 줄바꿈)을 정답으로 굳혀 두고 있던 것이고, 이 PR 의 갱신 방향이 맞습니다.

화면 갱신 전 갱신 후
onboarding 약관 … 수신동의 (선 / 택) … 수신동의 / (선택)
receiver 열람 신청 완료 … 있도록 안내 / 드리겠습니다. … 있도록 / 안내드리겠습니다.

🤖 Addressed by Claude Code

@1hyok

1hyok commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

#1203 이 같은 내용(참조 수정 + baseline 3장)으로 먼저 머지돼 develop 이 복구됐습니다. git diff origin/develop origin/fix/onboarding-res-refs 가 비어 있어 이 PR 은 완전 중복입니다 — 닫습니다.

같은 사고를 두 세션이 독립적으로 진단하고 같은 결론(원인 두 축·수정 범위·baseline 3장)에 도달했습니다. 재발 방지는 #1202 로 이어집니다.

@1hyok 1hyok closed this Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant