No description
Find a file
qwreey 6b7af54e0d
decide(attribute): per-name ownership via private rawNew keys, not a new registry
Group Attribute(...) delegating through the public memoized AttributeKey(name)
cache meant a direct [AttributeKey "name"]=v write and a group field (or two
independent groups) targeting the same name silently converged on the same
dispatch slot -- last write wins, no error. Fix: groups use rawNew(name) to
mint a private per-name key cached on their own (inst,index) relation instead
of the shared cache, so AttributeKeyHandler can detect a conflicting claimant
by simple object-identity comparison -- no separate ownership registry needed.
Persisting names reuse the same cached key across group value swaps, so the
existing diff (nil only what left, leave the rest alone) keeps working.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 15:23:24 +09:00
.claude decide(attribute): per-name ownership via private rawNew keys, not a new registry 2026-08-12 15:23:24 +09:00
.gitignore quad-v2 재작성 계획 초기 스캐폴드 2026-08-04 00:07:40 +09:00
CLAUDE.md decide(attribute): per-name ownership via private rawNew keys, not a new registry 2026-08-12 15:23:24 +09:00
HUMAN_TODO.md quad-v2 재작성 계획 초기 스캐폴드 2026-08-04 00:07:40 +09:00
ROADMAP.md decide(attribute): group Attribute(...) primitive, AttributeKey rename, weak-cache identity 2026-08-11 18:22:54 +09:00
SAFETY.md quad-v2 재작성 계획 초기 스캐폴드 2026-08-04 00:07:40 +09:00