quad/.claude/base
qwreey 895a17c212
decide(slot): Slot:List index/offset ownership moves to updateFn
- Slot no longer auto-binds LayoutOrder onto mounted elements (was
  magic/layering violation) - index (raw, compacted position) and
  offset (Slot.Offset, now a public field like Length) are passed to
  updateFn as plain values; actual property binding is entirely
  updateFn's responsibility via its own userdata-managed Source
- updateFn(item, index, offset, prev, userdata) param order now
  mirrors return order (prev, userdata) instead of the reversed one
- updateFn's three branches (discard/redraw/update-only) documented
  explicitly - only updateFn knows which applies, so deciding Set
  timing outside it wastes writes on soon-to-be-discarded Sources
- fix reconcile bug: rawAdd/rawMove was using the raw data-array loop
  index instead of a compacted mounted-position counter, which could
  error once filtering was in play; introduced candidateIndex
- add duplicate-key guard (seen[key] check, ~free) and explicit
  key/index terminology disambiguation (raw data index vs key vs
  updateFn's compacted index all get confused otherwise)
- sync ROADMAP.md M6 and .claude/README.md summaries to match

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 12:06:38 +09:00
..
architecture.md decide(bind-system): OnChange 특수 키 신설 - GetPropertyChangedSignal 바인딩, 제네릭 없이 확정 2026-08-10 01:08:02 +09:00
attribute-plan.md decide(tween): 값-레벨 Tween<T> 래퍼로 재설계, pre-implementation-audit 1-1 해소 2026-08-10 00:53:26 +09:00
bind-system-plan.md decide(slot): Slot:List index/offset ownership moves to updateFn 2026-08-11 12:06:38 +09:00
blocker-plan.md docs: Blocker/Effect를 base/additional-primitives.md에서 별개 파일로 재분리 2026-08-07 14:45:57 +09:00
component-composition-plan.md fix(base): 중간검토(질문 모드)에서 발견된 설계 결함 다수 수정 2026-08-09 23:37:46 +09:00
effect-plan.md decide(bind-system): Compute(fn, ...) trailing-args sugar 확정 2026-08-11 10:29:35 +09:00
lifecycle-pattern.md decide(base): Slot 형제 순서 보장(Length/Offset), bindLifetime/unbindLifetime과 canBound 이중 바인딩 게이트 통합 2026-08-09 20:58:56 +09:00
modifier-plan.md decide(tween): 값-레벨 Tween<T> 래퍼로 재설계, pre-implementation-audit 1-1 해소 2026-08-10 00:53:26 +09:00
module-lifecycle-plan.md docs(base): 코퍼스 전체 정합성 감사 반영, 기각된 대안 archive 이관 2026-08-08 11:38:29 +09:00
onchange-plan.md decide(bind-system): OnChange 특수 키 신설 - GetPropertyChangedSignal 바인딩, 제네릭 없이 확정 2026-08-10 01:08:02 +09:00
purity-and-effects-plan.md 6차 라운드 + 컴포넌트화/Modifier 논의, 문서 코퍼스 전체 정리 결과 반영 2026-08-04 15:49:28 +09:00
relate-plan.md decide(base): Relate 프리미티브 신설, bindLifetime/canExecute 확정, retract 필수화 2026-08-08 00:54:48 +09:00
slot-plan.md decide(slot): Slot:List index/offset ownership moves to updateFn 2026-08-11 12:06:38 +09:00
store-semantics.md decide(base): canBound 이름 확정, Compute previous 방어/스코핑 명확화, Modifier 핸들러값·State<Modifier> UB→error 전환 2026-08-09 16:00:19 +09:00
tag-plan.md fix(base): 중간검토(질문 모드)에서 발견된 설계 결함 다수 수정 2026-08-09 23:37:46 +09:00
ui-shorthand-plan.md fix(base): 중간검토(질문 모드)에서 발견된 설계 결함 다수 수정 2026-08-09 23:37:46 +09:00