quad/.claude/qa-request
qwreey 9b7f847014
design: Detach 보존 주체/KeyGone/Owned 확정 + attachSlot 분해
QA 4라운드 followup의 마지막 열린 항목(F-3)이 사용자 회신으로 전량
닫히면서 :List 요소 소유권 모델과 attachSlot 책임 분해를 base/에 반영.

- Detach 보존 주체를 userdata → slot._detached 필드로 전면 정정.
  근거는 gcconn 트릭 — detach된 quad-제작 Instance는 GC 폴백이 없어
  명시적 정리 경로가 필수인데 userdata는 :List에게 opaque라 처분 불가.
  재-Detach는 nop, prev 반환은 재마운트. raw 3형제(rawRemove/rawUnmount/
  rawDetach)로 "파괴하는가"와 "소유권을 놓는가"를 분리.
- KeyGone 센티널 신설 — 키가 사라진 자리도 조용히 처분하지 않고
  updateFn(KeyGone, 0, offset, prev, ud)로 한 번 더 묻는다. owner 사망
  시 최종 정리는 mountSlotTree가 거는 Effect가 담당.
- Owned 설치 플래그 신설 — Detach(사이클 단위)와 직교하는 축.
  state<Frame> 의미론 충돌(C-2)이 이걸로 닫힘.
- attachSlot을 materializeSlotTree(부기) + mountSlotTree(물리)로 분해.
  "부모에게 미는 길이는 최종값"(C6)과 "부기가 물리보다 먼저"(C7)가 한
  함수 안에선 동시 만족 불가라는 진단이 근거. 공개 표면은 두 줄짜리
  래퍼로 유지해 호출부 무변경. research/slot-attach-decomposition.md 확정.
- ROADMAP M6의 옛 Detach 서술 2건과 미결 마커 정정, question.md/todos.md
  해소 반영, session/2026-08-21-01 원문 + session-summary 색인 공백 4건 보강.

doc-check.py ERROR 0.

Co-authored-by: qwreey <me@qwreey.moe>
2026-08-21 11:55:11 +09:00
..
.gitkeep chore: add empty folders 2026-08-10 01:22:53 +09:00
pre-implementation-qa-round1.md qa: New()/Quad() 다중 인스턴스화 이름 정정 — 이전 커밋의 오역 정정 2026-08-18 22:23:32 +09:00
pre-implementation-qa-round2.md qa: 구현 전 QA 2라운드 — recompute 손 트레이싱으로 RC-1 발견·해결 2026-08-18 22:11:59 +09:00
pre-implementation-qa-round3.md qa: 구현 전 QA 3라운드 — attachSlot/bk.N 트레이싱으로 RC-3/RC-4 발견·해결 2026-08-19 00:07:30 +09:00
pre-implementation-qa-round4-followup.md design: Detach 보존 주체/KeyGone/Owned 확정 + attachSlot 분해 2026-08-21 11:55:11 +09:00
pre-implementation-qa-round4-response.md qa: 구현 전 QA 4라운드 문항지 — base/ 전 문서 확정 주장 전수 문항화 2026-08-20 00:33:49 +09:00
pre-implementation-qa-round4.md qa: 구현 전 QA 4라운드 문항지 — base/ 전 문서 확정 주장 전수 문항화 2026-08-20 00:33:49 +09:00