[M4] Vue unifiée de conversation (UnifiedTimeline merge sort) (SF-M4-03, SF-M4-04, ST-M4-03) #54

Closed
opened 2026-04-06 01:37:04 +00:00 by charles · 0 comments
Owner

Contexte

Une vue fusionnée affiche toutes les conversations avec un contact unifié dans une timeline unique triée chronologiquement, avec badge de provenance sur chaque message (SF-M4-03, SF-M4-04).

Critères d'acceptation

  • UnifiedTimeline : merge sort K-way sur les timestamps de toutes les rooms liées au contact
  • UnifiedEvent porte son BridgeType d'origine et son room_id
  • Chaque message affiche un badge d'icône du bridge source (Telegram, WhatsApp, etc.)
  • La vue est accessible depuis la fiche contact (clic sur un UnifiedContact)
  • Pagination : chargement par batch de 50 événements via next_batch()
  • Les événements de types différents (texte, média, réactions) sont tous supportés

Notes techniques

pub async fn next_batch(&mut self, count: usize) -> Vec<UnifiedEvent>
  • Algorithme : min-heap sur les heads de chaque RoomTimelineSource
  • Dépend de #49 (BridgeType), #51 (SQLite contacts)
## Contexte Une vue fusionnée affiche toutes les conversations avec un contact unifié dans une timeline unique triée chronologiquement, avec badge de provenance sur chaque message (SF-M4-03, SF-M4-04). ## Critères d'acceptation - [ ] `UnifiedTimeline` : merge sort K-way sur les timestamps de toutes les rooms liées au contact - [ ] `UnifiedEvent` porte son `BridgeType` d'origine et son `room_id` - [ ] Chaque message affiche un badge d'icône du bridge source (Telegram, WhatsApp, etc.) - [ ] La vue est accessible depuis la fiche contact (clic sur un `UnifiedContact`) - [ ] Pagination : chargement par batch de 50 événements via `next_batch()` - [ ] Les événements de types différents (texte, média, réactions) sont tous supportés ## Notes techniques ```rust pub async fn next_batch(&mut self, count: usize) -> Vec<UnifiedEvent> ``` - Algorithme : min-heap sur les heads de chaque `RoomTimelineSource` - Dépend de #49 (BridgeType), #51 (SQLite contacts)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#54
No description provided.