quad/.claude/session
qwreey 2df591851f
fix(attribute,slot): retract 전면 재설계, 소유권 레지스트리 통합, 코퍼스 감사
- Attribute: AttributeKeyHandler.retract를 완전 no-op으로 재정정 —
  지우는 건 오직 명시적 None/nil(process)로만, 그룹이 사라진 이름을
  자동으로 SetAttribute(nil) 안 해줌(Ref의 "Destroy 무관" 철학과 통일).
  단 사라진 이름의 StoreBind 구독은 retractUnder로 끊어 리소스 누수 방지.
- Slot: slotOwner를 elementOwner로 일반화해 top-level Dispatch/nested
  Add 경로가 같은 소유권 레지스트리를 쓰도록 통합(이중 마운트 gap 폐쇄).
  bindLifetime을 top-level 전용으로 축소(nested는 _elements 강참조로
  transitively 생존).
- 일반 규칙 신설(bind-system-plan.md): retract의 v는 타입 미보장이라
  내용을 보려면 isX(v) 가드 필수, retract 안에서 process 호출은
  retractUnder 체인 추적을 꼬는 UB.
- and/or 삼항 관용구 전면 금지(기존 "항상-truthy면 예외" 조항 폐기),
  코퍼스 전체 실제 코드 6곳을 if-then-else로 교체.
- 7-에이전트 코퍼스 감사로 stale 서술 다수 정정: retract-always-fires
  정정 전파 누락(bind-system-plan.md Tag 예시), Tween research→base
  승격 반영 누락(architecture.md/ui-shorthand-plan.md), Relate API
  인자 개수 버그(slot-plan.md), pre-implementation-audit.md 열린 항목
  개수 오류(question.md/CLAUDE.md).
- 백로그: Attribute 자동 unset용 :Apply 유틸 아이디어를
  research/operator-sugar-plan.md에 추가(착수 안 함).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VVG74qV2nQVykhvMRQW2UC
2026-08-12 18:39:45 +09:00
..
2026-08-04-01-roadmap-handoff.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-06-01-quad-debug-design.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-06-02-event-self-rbvm-corpus.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-06-03-docsite-source-state.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-06-04-pre-implementation-audit.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-01-with-new-node.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-02-modifier-apply.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-03-preref.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-04-corpus-reorg.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-05-override-peek-isstate.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-06-ref-preref-api.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-07-state-apply-effect-subscribe.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-08-none-sentinel-dispatch-brand.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-09-corpus-audit-createdref.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-07-10-none-vs-nil-order.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-08-01-relate-bindlifetime.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-08-02-dispatch-singleton-naming.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-08-03-tag-redesign-dispatch-chain.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-08-04-overridden-naming.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-08-05-terminology-round.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-01-canbound-modifier-error.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-02-corpus-audit-archive-move.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-03-slot-crud-list.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-06-length-offset-unbindlifetime.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-07-list-observer-lazy.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-08-midreview-defects.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-09-12-luau-test-spikes.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-10-01-slot-add-return-index.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-10-02-dynamic-children-ub.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-10-03-tween-redesign.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-10-04-onchange-key.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-01-compute-trailing-args.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-02-trailing-deps-positional.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-03-previous-before-pack.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-04-slot-list-layoutorder-index.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-05-slot-doc-framing.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-06-slot-single-nesting.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-07-reactive-raw-elements.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-08-claude-md-restructure.md chore(docs): split CLAUDE.md session log into .claude/session/, keep 2-4 line summaries 2026-08-11 14:40:43 +09:00
2026-08-11-09-attribute-group-primitive.md decide(attribute): group Attribute(...) primitive, AttributeKey rename, weak-cache identity 2026-08-11 18:22:54 +09:00
2026-08-12-01-tween-shape-finalized.md decide(tween): finalize option shape, override policy, relation-slot value 2026-08-12 11:02:13 +09:00
2026-08-12-02-animate-confirmed-and-or-audit.md decide(tween): finalize Animate combinator, fix and/or falsy-value bug 2026-08-12 11:14:08 +09:00
2026-08-12-03-cananimate-luau-syntax-note.md decide(tween): add Animate CanAnimate field, document Luau syntax facts 2026-08-12 11:17:49 +09:00
2026-08-12-04-compute-self-get-audit.md fix(docs): missing :Get() on :Compute callback args across base docs 2026-08-12 11:22:26 +09:00
2026-08-12-05-operator-sugar-plan.md decide(operator): add Operator sugar plan, unify combinators on :Apply 2026-08-12 11:54:09 +09:00
2026-08-12-06-tween-completed-bookkeeping-promoted.md decide(tween): confirm natural-completion bookkeeping is left as-is, promote to base/ 2026-08-12 12:19:49 +09:00
2026-08-12-07-preref-single-use-no-cancel.md decide(bind-system): PreRef is single-use, no cancel concept, reuse errors 2026-08-12 13:26:46 +09:00
2026-08-12-08-ref-retract-tagged-pattern.md decide(bind-system): Ref retract mirrors TagHandler, non-nilable T stays valid 2026-08-12 13:44:31 +09:00
2026-08-12-09-slot-retract-same-pattern.md decide(slot): store-bound Slot rebind uses Relate identity check, not retract 2026-08-12 13:49:58 +09:00
2026-08-12-10-attribute-name-ownership.md decide(attribute): per-name ownership via private rawNew keys, not a new registry 2026-08-12 15:23:24 +09:00
2026-08-12-11-retract-always-fires-correction.md decide(bind-system): retract fires on every re-dispatch, not just type changes 2026-08-12 16:13:25 +09:00
2026-08-12-12-slot-owner-relate-retractunder-args.md decide(slot): track slot->inst ownership directly instead of position diffing 2026-08-12 16:20:29 +09:00
2026-08-12-13-slot-gc-cycle-fix.md decide(slot): break the kSlotMap/slotOwner mutual strong-reference cycle 2026-08-12 16:37:40 +09:00
2026-08-12-14-luau-no-ephemeron-confirmed.md decide(relate): confirm and document that Luau has no ephemeron tables 2026-08-12 16:42:56 +09:00
2026-08-12-15-slot-in-slot-relate-scope-tag-splice-additions.md fix(slot): Splice가 vararg인 진짜 이유는 T가 opaque 제네릭이라서 2026-08-12 17:14:15 +09:00
2026-08-12-16-corpus-audit-attribute-retract-slot-owner.md fix(attribute,slot): retract 전면 재설계, 소유권 레지스트리 통합, 코퍼스 감사 2026-08-12 18:39:45 +09:00