Repository navigation
refactor(afternote): 추억 노트 상세의 no-op 콜백 디폴트를 걷고 가드 목록을 좁힌다 (#1388) - #1544
Merged
Merged
Conversation
`MemorialDetailScreen` 의 `onEditClick`·`onDeleteConfirm` 이 no-op 디폴트를 달고 있어
배선을 빠뜨려도 컴파일이 통과했다. 실호출부(`AfternoteNavGraphDetail` 카테고리 분기 4곳)는
전부 실값을 넘기고 있어 선택성이 실재하지 않으므로, 컨벤션의 「화면 컴포저블은 디폴트
전면 제거」 처분을 그대로 적용한다.
- 선언 2건을 required 로 바꾸고, 프리뷰 2 · screenshotTest 2 · unit test 3 곳에 `{}` 를 명시했다.
`{}` 명시는 디폴트와 렌더링이 동일해 스크린샷 baseline 은 유지된다.
- `NoOpCallbackDefaultKonsistTest` 의 `LEGACY_NO_OP_DEFAULT_FILES` 에서 두 갈래를 뺐다.
- AFTERNOTE — 제외 사유였던 PR #1336 이 0829 머지돼 사유가 소멸했고, 이 커밋이 청소했다.
- RECEIVER 3건 — 전건 해소됐다. `ReceiverHomeActions.kt` 는 위반 0건이고
`ContentSection.kt`·`ReceiverAfternoteScreen.kt` 는 파일 자체가 사라졌다.
남은 legacy 는 mindrecord·home(#1540) · timeletter(#1541) 몫이고, 목록이 실제 잔여와
일치해 「해소된 항목은 경고로 알린다」 테스트가 더 이상 경고를 내지 않는다.
Sadturtleman
approved these changes
Aug 30, 2026
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#1388 의 가드(
NoOpCallbackDefaultKonsistTest)와 컨벤션 문서는 이미 섰고, 가드가 관대 판정하던 legacy 목록에서 내 담당 몫을 걷어낸다.청소 — afternote 잔여 2건
MemorialDetailScreen의onEditClick·onDeleteConfirm이 no-op 디폴트를 달고 있었다.실호출부는 전부 실값을 넘긴다 —
AfternoteNavGraphDetail의 카테고리 분기 4곳(L290·302·314·327)이onEditClick = { … }·onDeleteConfirm = { onDeleteConfirm(state.detailId) }를 준다. 선택성이 실재하지 않으므로 컨벤션의 「화면 컴포저블은 디폴트 전면 제거」 처분을 그대로 적용했다.= {}제거 → requiredonDeleteConfirm = {}명시 (onEditClick은 이미 명시돼 있었다)screenshotTest2곳isEditable: Boolean은 그대로 뒀다. 컨벤션이 「플래그 + no-op 콜백 짝은 nullable 핸들러로 합친다」 고 하지만, 이 플래그는 콜백 유무가 아니라 데이터 상태(수정 가능한 항목인가)를 나르고 실호출부가 값을 계산해 넘긴다 — 미배선을 숨기는 구조가 아니다.가드 목록 축소 — 두 갈래를 뺐다
MemorialDetailScreen.kt)ReceiverHomeActions.kt는 위반 0건이고,ContentSection.kt·ReceiverAfternoteScreen.kt는 파일 자체가 사라졌다(#1421·#1424 계열)남은 legacy 는 mindrecord·home(#1540) · timeletter(#1541) 몫이다. 오늘 #1388 을 담당 모듈별로 분할하면서 신설한 이슈들이고, 각 담당자가 청소하며 목록에서 빼면 된다.
목록이 실제 잔여와 일치하게 돼 「해소된 항목은 경고로 알린다」 테스트가 더 이상 경고를 내지 않는다 (검증 로그로 확인).
곁들여 — 재측정 결과가 이슈 본문과 크게 달랐다
이슈 본문의 0828 실측(108건)과 현행이 어긋나 재측정했고, 그 결과를 #1388 본문에 반영했다.
69f63a22f(screenshotTest용 Content 경계 분리)청소보다 유입이 빠른 모듈이 있다는 것이 실측으로 드러나, 가드가 이 이슈의 본체가 됐다.
검증
:konsist:test --tests "*NoOpCallbackDefault*":feature:afternote:presentation:compileDebugUnitTestKotlin:feature:afternote:presentation:compileDebugScreenshotTestKotlin:feature:afternote:presentation:ktlintCheck·:konsist:ktlintCheck스크린샷 baseline 재생성은 필요 없다 —
{}명시는 디폴트와 렌더링이 동일하다(컨벤션 문서에 명시된 성질이고,compileDebugScreenshotTestKotlin통과로 시그니처 정합도 확인).QA·시안 대조: 해당 없음. 콜백 시그니처와 테스트 인자만 바뀌고 프로덕션 호출부의 전달값은 그대로라 화면 동작·렌더 결과가 바뀌는 지점이 없다.
Refs #1388
CI Test Plan
{ "androidTest": { "mode": "none", "reason": "컴포저블 파라미터의 기본값 제거와 프리뷰·screenshotTest·unit test 호출부의 인자 명시, 그리고 konsist 테스트의 예외 목록 축소뿐이다. 프로덕션 호출부(AfternoteNavGraphDetail)가 넘기는 값은 그대로라 런타임 동작이 바뀌지 않고, navigation 그래프·AndroidManifest·MainActivity·androidTest 소스셋·빌드 하네스 중 어느 것도 건드리지 않는다." } }