Spoor A step 3b: buildNote is the single Note entry point (buildReplyNote delegates)
Fold buildReplyNote into buildNote via an isReply option, so ALL ActivityPub
Notes are built by one function. For now a reply stays the simple flavor
(pre-baked content, no title/cover/image/audio/embed machinery) behind an early
branch, so output is byte-identical (verified: reply Note deep-equals the old
buildReplyNote for both a mention+hashtag reply and a plain reply; 46 tests
green). buildReplyNote is now a thin delegate, so no caller changes. This is the
foundation for rich replies: when replies gain images/audio/embeds, the branch
collapses and they flow through the full post pipeline instead of duplicating it.
Co-Authored-By: Claude Opus 4.8 <noreply@…>