- payload is source of truth with named fields (start, content, ancestors, compact) - refs[] auto-derived by collectRefs(), pure GC index - parent merged into ancestors[0] 小橘 <xiaoju@shazhou.work>
- StartNode prompt via refs[0] instead of inline - threads.json active-only, completed → history/{date}.jsonl - Content Merkle node carries role artifact refs - Extract phase expanded to produce refs[] 小橘 <xiaoju@shazhou.work>
小橘 <xiaoju@shazhou.work>