# Specification: Discussion Takes & Timeline Branching ## 1. Overview This track introduces non-linear discussion timelines, allowing users to create multiple "takes" (branches) from a shared point in a conversation. It includes UI for managing these parallel timelines within a single discussion window and features a specialized synthesis workflow to merge ideas from multiple takes. ## 2. Functional Requirements ### 2.1 Timeline Branching (Takes) - **Message Branching:** Add a "Split/Branch from here" action on individual discussion messages. - **Tabbed Interface:** Branching creates a new "take," represented visually as a new tab within the same discussion session. The new tab shares the timeline history up to the split point. - **Take Promotion:** Allow users to promote any specific take into an entirely new, standalone discussion session. ### 2.2 Take Synthesis Workflow - **Multi-Take Selection:** Provide a UI to select multiple takes from a shared split point for comparison and synthesis. - **Diff/Compressed Representation:** Develop a formatted representation (e.g., compressed diffs or parallel sequence summaries) that clearly highlights the differences between the selected takes. - **Synthesis Generation:** Feed the compressed representation of the differences to an AI agent along with a user prompt (e.g., "I liked aspects of both, do C with these caveats") to generate a new, synthesized take. ## 3. Acceptance Criteria - [ ] Users can split a discussion from any message to create a new "take". - [ ] Takes are navigable via a tabbed interface within the discussion window. - [ ] A take can be promoted to a standalone discussion session. - [ ] Multiple takes can be selected and formatted into a compressed difference view. - [ ] An AI agent can successfully process the compressed take view to generate a synthesized continuation.