omi icon indicating copy to clipboard operation
omi copied to clipboard

Feat: Add Conversation Merge Functionality Bounty #1505

Open eulicesl opened this issue 1 month ago • 1 comments

Implements conversation merging to combine chronologically consecutive conversations into a single unified conversation with LLM-generated summaries.

Features

Long-press selection: Activate multi-select mode with long-press gesture Visual indicators: Purple borders, checkboxes, and 50% opacity for locked/discarded items Smart validation: Only consecutive conversations within 1-hour gaps can be merged Action bar: Bottom toolbar with selection count, Cancel, and Merge buttons Protected items: Locked and discarded conversations cannot be selected Auto-cleanup: Original conversations and vector embeddings deleted after merge LLM re-structuring: Auto-generates title, overview, emoji, and category for merged conversation

Implementation

Frontend (6 files)

Selection mode state management with validation logic Multi-select UI with checkboxes and purple selection borders Bottom action bar with loading states and error handling Analytics tracking for merge events Backend (4 files)

POST /v1/conversations/merge endpoint with LLM integration Core merge logic: combines segments, photos, action items, events Chronological consecutiveness validation Critical fix: delete_vector(uid, conversation_id) now properly constructs prefixed Pinecone IDs Validation Rules

Minimum 2 conversations Chronologically consecutive (no conversations between selections) Within 1-hour time gaps No locked or discarded conversations Adjacent in conversation list

https://github.com/user-attachments/assets/72b29b43-a173-41d1-857a-9a026af7fa12

eulicesl avatar Nov 22 '25 16:11 eulicesl

demo doesnt show merging and reprocessing and summary being generated successfully @eulicesl

aaravgarg avatar Nov 24 '25 04:11 aaravgarg

close fn; feel free to reopen it once it's ready.

beastoin avatar Dec 03 '25 10:12 beastoin