8505559fa9
Every USER message starts a conversation (the same boundary the turn engine's delta scoping keys on). The latest conversation renders in full; older ones collapse to a one-line summary row — head text, reply count, last-activity time — that expands/collapses on click. db's 'threads per conversation' ask, delivered as timeline folding: no log-model change, no new persistence, cross-machine sync untouched. groupChatConversations() splits the log (leading member run from a trimmed log forms a headless block); rendering extracts renderEntry() unchanged. Tests: conversation splitting (headless block, heads, startIndex) + fold source contracts. 256/256 plugin tests pass.