One Append-Only Line of Turns
The default organization model: every entry appends to the end, nothing forks, the transcript reads top to bottom. Right when the dialogue itself is the product.
Build a conversation view with a single append-only thread. Render five entry types in insertion order — user turns compact and right-leaning, agent replies as full-width markdown, system events as centered grey captions such as 'Conversation shared at 2:14 PM', tool calls as one-line labeled chips, and tool results indented beneath their call. New tokens stream into the open reply as one growing message, never fragments, pinned to bottom only while the reader is already there. A stop button finalizes the open reply with an interrupted marker. No branching: a rewritten question appends a correction. Entries above the visible window lazy-render from the stored array.