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
라디오 단일 선택을 구조로 강제 — CustomRadioButton 그룹 API 승격 #649
core:ui 의 CustomRadioButton 은 selected/onClick 만 받는 단품 컨트롤이라 라디오의 본질인 단일 선택을 구조적으로 강제하지 못한다. 소비처가 Set 토글 상태에 물리면 "라디오 비주얼인데 복수 선택"이라는 오용이 컴파일 타임에 걸리지 않는다 — 실사례: 추억 플레이리스트 곡 선택(#648, 실측 2026-07-31).
단일 선택이 구조로 강제되는 그룹 수준 API(선택값 하나를 소유하는 RadioGroup 형태 — selectedValue: T? + onSelect(T) 계약)로 승격하고, 단품 직접 사용을 제한한다. 현 사용처 전수(2026-07-31): LastWishesRadioGroup·SelectableRadioCard(afternote)·RadioGroupCard(setting)·PlaylistSongItem(afternote, #648 대상) — #648 을 제외하면 전부 이미 단일 선택 패턴이라 이관 부담이 낮다.
changed the title [-]refactor(core): 라디오 단일 선택을 구조로 강제 — CustomRadioButton 그룹 API 승격[/-][+]라디오 단일 선택을 구조로 강제 — CustomRadioButton 그룹 API 승격[/+]on Aug 28, 2026
Activity
[-]refactor(core): 라디오 단일 선택을 구조로 강제 — CustomRadioButton 그룹 API 승격[/-][+]라디오 단일 선택을 구조로 강제 — CustomRadioButton 그룹 API 승격[/+]chore(ci): verify screenshot baselines (#649)
OnlyReadOneBook commentedon Aug 28, 2026
소비처 이관 인계 (PR #1354 범위 축소)
담당 모듈 분리 원칙에 따라 #1354 는 core:ui 신설(
AfternoteRadioGroup)로 범위를 한정하고CustomRadioButton을 존치했습니다. 남은 범위는 담당자별 이슈로 분리했고, 이 이슈에 blocked_by 로 걸어 두었습니다.refactor/649-setting-radio-migration준비 완료)SelectableRadioCard삭제 → refactor(afternote): 미사용 SelectableRadioCard 삭제 (#649 잔여) #1398 (사용처 0건 실측, 착수 제약 없음)CustomRadioButton단품 삭제: 위 두 건 완료 후 이 이슈의 마무리 범위. 현재 소비처는 위 두 파일이 전부입니다(전수 grep 2026-08-29).Merge pull request #1354 from Afternote/refactor/649-radio-group
OnlyReadOneBook commentedon Sep 2, 2026
「단품 직접 사용 제한」(Deprecated + Konsist 가드 + README)을 #1728 로 분리했고 PR #1639 가 그 이슈를 Closes 합니다.
이 이슈에는 #1396(setting
RadioGroupCard이관) 뒤에 단품CustomRadioButton삭제와 가드 허용 목록 제거가 남습니다.blocked_by#1396 은 유지합니다.test(konsist): 라디오 단품 가드가 공유 스코프 진입점을 쓰게 한다 (#649)
github-actions commentedon Sep 13, 2026
이 이슈를 맡은 PR 은 #2046 다 (base
refactor/1396-setting-radio-group).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.refactor(core): 미사용 단품 라디오 API 제거 (#649)