From c4566bb7ce147779c372a3e3c37648993bbc2a00 Mon Sep 17 00:00:00 2001 From: kaichaosun Date: Fri, 27 Mar 2026 15:31:47 +0800 Subject: [PATCH] chore: fix conversation type not used --- core/conversations/src/context.rs | 7 +++++++ core/conversations/src/errors.rs | 2 ++ core/conversations/src/storage.rs | 19 ++++++++++--------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/core/conversations/src/context.rs b/core/conversations/src/context.rs index 23929e5..e79a8c7 100644 --- a/core/conversations/src/context.rs +++ b/core/conversations/src/context.rs @@ -175,6 +175,13 @@ impl Context { .load_conversation(convo_id)? .ok_or_else(|| ChatError::NoConvo(convo_id.into()))?; + if record.convo_type != "private_v1" { + return Err(ChatError::BadBundleValue(format!( + "unsupported conversation type: {}", + record.convo_type + ))); + } + let dr_state: RatchetState = self.ratchet_storage.load(&record.local_convo_id)?; Ok(PrivateV1Convo::from_stored( diff --git a/core/conversations/src/errors.rs b/core/conversations/src/errors.rs index f47004c..664cdd3 100644 --- a/core/conversations/src/errors.rs +++ b/core/conversations/src/errors.rs @@ -22,6 +22,8 @@ pub enum ChatError { BadParsing(&'static str), #[error("convo with id: {0} was not found")] NoConvo(String), + #[error("unsupported conversation type: {0}")] + UnsupportedConvoType(String), #[error("storage error: {0}")] Storage(#[from] StorageError), } diff --git a/core/conversations/src/storage.rs b/core/conversations/src/storage.rs index eca4c6c..1b8c84d 100644 --- a/core/conversations/src/storage.rs +++ b/core/conversations/src/storage.rs @@ -180,6 +180,16 @@ impl ChatStorage { Ok(exists) } + /// Removes a conversation by its local ID. + #[allow(dead_code)] + pub fn remove_conversation(&mut self, local_convo_id: &str) -> Result<(), StorageError> { + self.db.connection().execute( + "DELETE FROM conversations WHERE local_convo_id = ?1", + params![local_convo_id], + )?; + Ok(()) + } + /// Loads a single conversation record by its local ID. pub fn load_conversation( &self, @@ -223,15 +233,6 @@ impl ChatStorage { Ok(records) } - - /// Removes a conversation by its local ID. - pub fn remove_conversation(&mut self, local_convo_id: &str) -> Result<(), StorageError> { - self.db.connection().execute( - "DELETE FROM conversations WHERE local_convo_id = ?1", - params![local_convo_id], - )?; - Ok(()) - } } #[cfg(test)]