···191191 let event: JetstreamEvent = serde_json::from_str(message)?;
192192 let commit = event.commit.as_ref().unwrap(); // Safe because we checked above
193193194194- // Skip messages from our own DID
195195- // if let Some(ref own_did) = self.own_did {
196196- // if &event.did == own_did {
197197- // return Ok(());
198198- // }
199199- // }
200200-201194 // Parse the blip record
202195 let record_data = commit.record.as_ref();
203196 if record_data.is_none() {
···209202 Err(_) => return Ok(()), // Silently skip unparseable records
210203 };
211204212212- // Get or resolve the handle
213213- let mut handle = self.resolve_did(&event.did).await;
214214- let mut is_own = false;
215215-216216- if let Some(ref own_did) = self.own_did {
217217- if &event.did == own_did {
218218- is_own = true;
219219- handle = String::from("you");
220220- }
221221- }
205205+ let is_own = self.own_did.as_ref().is_some_and(|own| own == &event.did);
206206+ let handle = if is_own {
207207+ "you".into()
208208+ } else {
209209+ // Get or resolve the handle
210210+ self.resolve_did(&event.did).await
211211+ };
222212223213 // Create TUI message
224214 let tui_message = TuiMessage::new(
225215 handle,
226216 blip_record.content,
227227- is_own, // Not our own message
228228- Some(
229229- DateTime::parse_from_rfc3339(&blip_record.created_at)
230230- .unwrap()
231231- .with_timezone(&Utc),
232232- ),
217217+ is_own,
218218+ DateTime::parse_from_rfc3339(&blip_record.created_at)
219219+ .map(|dt| dt.with_timezone(&Utc))
220220+ .ok(), // Parse RFC3339 → UTC, None if invalid (so current timestamp instead)
233221 );
234222235223 // Send to TUI
+2-2
src/tui.rs
···294294 .rev()
295295 .find(|m| m.is_own)
296296 .is_some_and(|m| m.timestamp == message.timestamp);
297297- // TODO: some messages getting flagged as duplicates if it's the same content as previous separate message from you
298297299298 if duplicate {
300300- continue; // skip this while iteration
299299+ continue;
301300 }
301301+302302 app.add_message(message);
303303 app.set_connection_status(true);
304304 }