827fb52f5f
openThread (create-or-join), send (idempotent, bumps other participants' unread, message.sent outbox event, traceId DB->event), markRead (READ receipt + unread reset), contentRef attachment placeholder. Adds messageSent to contracts events. 5 DB-backed tests green; 24 total. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>