quad/.claude/base
qwreey 7f3bc4da4e
docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전
State<Observer>/State<Effect>가 재-dispatch될 때 안쪽 값이 안 바뀌어도
Dispatch가 값 비교 없이 매번 재바인딩하던 것에 RefLeafHandler와 같은
old ~= v dedup을 추가(correctness 아니라 순수 성능 최적화 — == 비교가
매번 도는 Relate weak-table 쓰기보다 항상 쌈).

가장 큰 변경은 Tag/Attribute 핸들러 등록 모델 역전: 직전 커밋이 확정한
"TagHandler/AttributeKeyHandler/AttributeGroupHandler가 quad-base 모듈
로드 시점에 스스로 등록한다"는 결론 자체가 틀렸음이 드러남 — 이건
lifecycle-pattern.md가 이미 거부해둔 InitNamespace류 top-level 부작용
패턴과 같은 클래스였고, module-lifecycle-plan.md가 이미 확정해둔 "등록은
백엔드 팩토리가 BaseModule을 뮤테이션하는 시점" 원칙과 정면으로 어긋났음.
정정: 저 이름들은 참조 카운트/이름 claim 알고리즘 구현일 뿐이고,
HANDLER_PRIORITY_FALLBACK에 실제로 꽂히는 건 이를 감싸는 별도 이름의
TagFallbackHandler/AttributeKeyFallbackHandler/AttributeGroupFallbackHandler
— 등록 주체는 quad-base 모듈이 아니라 백엔드 팩토리. dispatch-core-plan.md/
tag-plan.md/attribute-plan.md/module-lifecycle-plan.md/architecture.md
전부 재반영, ROADMAP.md M10 체크리스트에 새 Fallback 파일 3개 추가(빠져
있으면 구현자가 만들 필요를 몰랐을 갭), 뒤집힌 원문은
archive/tag-attribute-load-time-registration-reversed.md.

/code-review를 두 라운드 돌려 findings 15건 확정 반영 — 죽어있던
Observer/Effect FALLBACK 동적 경로 가드(k 타입 미체크), bindLifetime
pseudocode의 canExecute/canBound 혼용, "결정 대기" 절이 삭제됐는데 비어
있다고 서술하던 3개 파일, "동적 경로 가드"가 볼드 텍스트뿐 실제 헤딩이
아니라 깨져있던 절 참조 6곳(###으로 승격), CLAUDE.md 11번째 세션 기록
~103줄→~13줄 압축, Tag/Attribute 정정이 프로즈만 고치고 놓친 pseudocode
2곳. 별개로 RefLeafHandler.isHandlable이 PostRef 도입 이후 안 갱신돼
`and not isPostRef(v)`를 빠뜨렸던 사전 존재 버그도 같이 발견·정정.
doc-check.py ERROR 0 유지.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-14 12:32:17 +09:00
..
architecture.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
attribute-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
bind-system-plan.md docs(base): PostRef 확정·OnRendered 채택, PreRef/PostRef 계열 안 순서 미보장으로 역전 2026-08-14 05:45:31 +09:00
blocker-plan.md docs: Debounce/Throttle 백로그 신설 + "emit은 항상 전파" base 역전 정정 2026-08-14 05:22:06 +09:00
brand-plan.md docs(base): PostRef 확정·OnRendered 채택, PreRef/PostRef 계열 안 순서 미보장으로 역전 2026-08-14 05:45:31 +09:00
component-composition-plan.md docs(base): bind/store/state 3단계 분할, UI 숏핸드 Tween 지원, existing-instance-bind 기각 2026-08-14 05:10:49 +09:00
dispatch-core-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
effect-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
event-plan.md docs(base): bind/store/state 3단계 분할, UI 숏핸드 Tween 지원, existing-instance-bind 기각 2026-08-14 05:10:49 +09:00
fallback-plan.md docs(base): Fallback/Traceback 승격 — research/에서 base/fallback-plan.md로 2026-08-14 04:32:29 +09:00
lifecycle-hooks-plan.md docs(base): dispose(value) 시그니처/범위 확정 — question.md 0-B 해소 2026-08-14 06:18:28 +09:00
lifecycle-pattern.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
modifier-plan.md docs: 코퍼스 전체 감사 + canBound/canExecute 재분리, Ref 0-W 해소 2026-08-14 11:03:24 +09:00
module-lifecycle-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
onchange-plan.md fix(docs): 리뷰 라운드 — 의사코드 결함 3건 + doc-check 사각지대 수정 2026-08-14 00:29:25 +09:00
purity-and-effects-plan.md docs(base): bind/store/state 3단계 분할, UI 숏핸드 Tween 지원, existing-instance-bind 기각 2026-08-14 05:10:49 +09:00
ref-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
relate-plan.md docs(base): bind/store/state 3단계 분할, UI 숏핸드 Tween 지원, existing-instance-bind 기각 2026-08-14 05:10:49 +09:00
slot-plan.md docs(base): dispose(value) 시그니처/범위 확정 — question.md 0-B 해소 2026-08-14 06:18:28 +09:00
source-state-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
store-plan.md docs: 코퍼스 전체 감사 + canBound/canExecute 재분리, Ref 0-W 해소 2026-08-14 11:03:24 +09:00
tag-plan.md docs(base): Observer/Effect Leaf dedup 추가 + Tag/Attribute 자기등록 모델 역전 2026-08-14 12:32:17 +09:00
tween-plan.md docs(audit): 프로젝트 전체 재감사 — 분할 후 잔여 stale 참조 14곳 정정 2026-08-14 00:45:03 +09:00
typing-limits.md docs: 코퍼스 전체 감사 + canBound/canExecute 재분리, Ref 0-W 해소 2026-08-14 11:03:24 +09:00
ui-shorthand-plan.md docs(base): bind/store/state 3단계 분할, UI 숏핸드 Tween 지원, existing-instance-bind 기각 2026-08-14 05:10:49 +09:00