Fix unused variables and redundant local bindings in post_chat_handler.rs

This commit is contained in:
dal 2025-03-21 12:18:26 -06:00
parent 0104406ed7
commit 39385acf9d
No known key found for this signature in database
GPG Key ID: 16F4B0E1E9F61122
1 changed files with 57 additions and 57 deletions

View File

@ -71,6 +71,12 @@ struct ChunkState {
last_seen_content: String,
}
impl Default for ChunkTracker {
fn default() -> Self {
Self::new()
}
}
impl ChunkTracker {
pub fn new() -> Self {
Self {
@ -141,7 +147,7 @@ pub async fn post_chat_handler(
validate_context_request(request.chat_id, request.metric_id, request.dashboard_id)?;
let user_org_id = match user.attributes.get("organization_id") {
Some(Value::String(org_id)) => Uuid::parse_str(&org_id).unwrap_or_default(),
Some(Value::String(org_id)) => Uuid::parse_str(org_id).unwrap_or_default(),
_ => {
tracing::error!("User has no organization ID");
return Err(anyhow!("User has no organization ID"));
@ -205,9 +211,7 @@ pub async fn post_chat_handler(
let title_handle = {
let tx = tx.clone();
let chat_id = chat_id.clone();
let message_id = message_id.clone();
let user_id = user.id.clone();
let user_id = user.id;
let chat_messages = chat.messages.clone();
tokio::spawn(async move {
generate_conversation_title(&chat_messages, &message_id, &user_id, &chat_id, tx).await
@ -343,7 +347,7 @@ pub async fn post_chat_handler(
message_id,
ChatUserMessage {
request: request.prompt.clone(),
sender_id: user.id.clone(),
sender_id: user.id,
sender_name: user.name.clone().unwrap_or_default(),
sender_avatar: None,
},
@ -360,7 +364,7 @@ pub async fn post_chat_handler(
id: message_id,
request_message: request.prompt,
chat_id,
created_by: user.id.clone(),
created_by: user.id,
created_at: Utc::now(),
updated_at: Utc::now(),
deleted_at: None,
@ -383,7 +387,7 @@ pub async fn post_chat_handler(
// First process completed files (database updates only)
// Use a separate connection scope to ensure prompt release
{
let _ = process_completed_files(
process_completed_files(
&mut conn,
&db_message,
&all_messages,
@ -531,40 +535,37 @@ async fn process_completed_files(
// Process files for database updates only
for (container, _) in transformed_messages {
match container {
BusterContainer::ReasoningMessage(msg) => match &msg.reasoning {
BusterReasoningMessage::File(file) if file.message_type == "files" => {
for file_id in &file.file_ids {
// Skip if we've already processed this file ID
if !processed_file_ids.insert(file_id.clone()) {
continue;
}
if let BusterContainer::ReasoningMessage(msg) = container { match &msg.reasoning {
BusterReasoningMessage::File(file) if file.message_type == "files" => {
for file_id in &file.file_ids {
// Skip if we've already processed this file ID
if !processed_file_ids.insert(file_id.clone()) {
continue;
}
if let Some(_file_content) = file.files.get(file_id) {
// Only process files that have completed reasoning
if file.status == "completed" {
// Create message-to-file association
let message_to_file = MessageToFile {
id: Uuid::new_v4(),
message_id: message.id,
file_id: Uuid::parse_str(&file_id)?,
created_at: Utc::now(),
updated_at: Utc::now(),
deleted_at: None,
};
if let Some(_file_content) = file.files.get(file_id) {
// Only process files that have completed reasoning
if file.status == "completed" {
// Create message-to-file association
let message_to_file = MessageToFile {
id: Uuid::new_v4(),
message_id: message.id,
file_id: Uuid::parse_str(file_id)?,
created_at: Utc::now(),
updated_at: Utc::now(),
deleted_at: None,
};
diesel::insert_into(messages_to_files::table)
.values(&message_to_file)
.execute(conn)
.await?;
}
diesel::insert_into(messages_to_files::table)
.values(&message_to_file)
.execute(conn)
.await?;
}
}
}
_ => (),
},
}
_ => (),
}
} }
}
Ok(())
@ -730,7 +731,7 @@ pub async fn transform_message(
AgentMessage::Assistant {
id,
content,
name,
name: _name,
tool_calls,
progress,
initial,
@ -813,7 +814,7 @@ pub async fn transform_message(
&& file.message_type == "files" =>
{
// For each completed file, create and send a file response message
for (file_id, file_content) in &file.files {
for (_file_id, file_content) in &file.files {
let response_message = BusterChatMessage::File {
id: file_content.id.clone(),
file_type: file_content.file_type.clone(),
@ -873,7 +874,7 @@ pub async fn transform_message(
}
}
AgentMessage::Tool {
id,
id: _id,
content,
tool_call_id,
name,
@ -900,7 +901,7 @@ pub async fn transform_message(
&& file.message_type == "files" =>
{
// For each completed file, create and send a file response message
for (file_id, file_content) in &file.files {
for (_file_id, file_content) in &file.files {
let response_message = BusterChatMessage::File {
id: file_content.id.clone(),
file_type: file_content.file_type.clone(),
@ -966,8 +967,8 @@ fn transform_text_message(
id: String,
content: String,
progress: MessageProgress,
chat_id: Uuid,
message_id: Uuid,
_chat_id: Uuid,
_message_id: Uuid,
tracker: &ChunkTracker,
) -> Result<Vec<BusterChatMessage>> {
match progress {
@ -1004,8 +1005,8 @@ fn transform_tool_message(
id: String,
name: String,
content: String,
chat_id: Uuid,
message_id: Uuid,
_chat_id: Uuid,
_message_id: Uuid,
) -> Result<Vec<BusterReasoningMessage>> {
// Use required ID (tool call ID) for all function calls
let messages = match name.as_str() {
@ -1354,8 +1355,8 @@ fn transform_assistant_tool_message(
tool_calls: Vec<ToolCall>,
progress: MessageProgress,
initial: bool,
chat_id: Uuid,
message_id: Uuid,
_chat_id: Uuid,
_message_id: Uuid,
tracker: &ChunkTracker,
) -> Result<Vec<BusterReasoningMessage>> {
let mut all_messages = Vec::new();
@ -1405,8 +1406,10 @@ fn transform_assistant_tool_message(
let containers: Vec<BusterReasoningMessage> = messages
.into_iter()
.map(|reasoning| {
let updated_reasoning = match reasoning {
.filter_map(|reasoning| {
match reasoning {
BusterReasoningMessage::Text(mut text) => {
match progress {
MessageProgress::Complete => {
@ -1503,11 +1506,8 @@ fn transform_assistant_tool_message(
pill.status = "loading".to_string();
Some(BusterReasoningMessage::Pill(pill))
}
};
updated_reasoning
}
})
.filter_map(|container| container)
.collect();
all_messages.extend(containers);
@ -1815,8 +1815,8 @@ pub async fn generate_conversation_title(
};
let title = BusterGeneratingTitle {
chat_id: session_id.clone(),
message_id: message_id.clone(),
chat_id: *session_id,
message_id: *message_id,
title: Some(content.clone().replace("\n", "")),
title_chunk: None,
progress: BusterGeneratingTitleProgress::Completed,
@ -1849,7 +1849,7 @@ async fn initialize_chat(
message_id,
ChatUserMessage {
request: request.prompt.clone(),
sender_id: user.id.clone(),
sender_id: user.id,
sender_name: user.name.clone().unwrap_or_default(),
sender_avatar: None,
},
@ -1870,11 +1870,11 @@ async fn initialize_chat(
id: chat_id,
title: request.prompt.clone(),
organization_id: user_org_id,
created_by: user.id.clone(),
created_by: user.id,
created_at: Utc::now(),
updated_at: Utc::now(),
deleted_at: None,
updated_by: user.id.clone(),
updated_by: user.id,
publicly_accessible: false,
publicly_enabled_by: None,
public_expiry_date: None,
@ -1885,7 +1885,7 @@ async fn initialize_chat(
message_id,
ChatUserMessage {
request: request.prompt.clone(),
sender_id: user.id.clone(),
sender_id: user.id,
sender_name: user.name.clone().unwrap_or_default(),
sender_avatar: None,
},