fix: Add backward compatibility for conversationCompacted message type (#5819)
Signed-off-by: Vaibhav Maheshwari <vaibhav.dkm@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
committed by
GitHub
parent
7b787f926b
commit
0354d9ede4
@@ -24,7 +24,15 @@ fn deserialize_sanitized_content<'de, D>(deserializer: D) -> Result<Vec<MessageC
|
|||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
let mut content: Vec<MessageContent> = Vec::deserialize(deserializer)?;
|
use serde::de::Error;
|
||||||
|
|
||||||
|
let mut raw: Vec<serde_json::Value> = Vec::deserialize(deserializer)?;
|
||||||
|
|
||||||
|
// Filter out old "conversationCompacted" messages from pre-14.0
|
||||||
|
raw.retain(|item| item.get("type").and_then(|v| v.as_str()) != Some("conversationCompacted"));
|
||||||
|
|
||||||
|
let mut content: Vec<MessageContent> = serde_json::from_value(serde_json::Value::Array(raw))
|
||||||
|
.map_err(|e| Error::custom(format!("Failed to deserialize MessageContent: {}", e)))?;
|
||||||
|
|
||||||
for message_content in &mut content {
|
for message_content in &mut content {
|
||||||
if let MessageContent::Text(text_content) = message_content {
|
if let MessageContent::Text(text_content) = message_content {
|
||||||
|
|||||||
Reference in New Issue
Block a user