修复飞书渠道 /dump 和 /info 命令:支持无会话时自动创建
当 Feishu 用户首次发送斜杠命令时,如果没有会话则自动创建。 这使得 /dump 和 /info 命令可以在对话开始前使用。
This commit is contained in:
parent
30b68599a4
commit
c52461055d
@ -370,28 +370,34 @@ impl SessionManager {
|
||||
}
|
||||
}
|
||||
"info" => {
|
||||
if let Some(sid) = current_session_id {
|
||||
let session = self.get_or_create_session(sid).await?;
|
||||
let session_guard = session.lock().await;
|
||||
let message_count = session_guard.get_history().len();
|
||||
let session_id_str = session_guard.session_id();
|
||||
Ok((None, format!(
|
||||
"Session ID: {}\nMessage count: {}",
|
||||
session_id_str, message_count
|
||||
)))
|
||||
let sid = if let Some(s) = current_session_id {
|
||||
s.clone()
|
||||
} else {
|
||||
Ok((None, "No active session.".to_string()))
|
||||
}
|
||||
// Create a new session if none exists (e.g., Feishu first message)
|
||||
let (new_id, _) = self.create_session(channel, chat_id, None).await?;
|
||||
new_id
|
||||
};
|
||||
let session = self.get_or_create_session(&sid).await?;
|
||||
let session_guard = session.lock().await;
|
||||
let message_count = session_guard.get_history().len();
|
||||
let session_id_str = session_guard.session_id();
|
||||
Ok((None, format!(
|
||||
"Session ID: {}\nMessage count: {}",
|
||||
session_id_str, message_count
|
||||
)))
|
||||
}
|
||||
"dump" => {
|
||||
if let Some(sid) = current_session_id {
|
||||
let session = self.get_or_create_session(sid).await?;
|
||||
let session_guard = session.lock().await;
|
||||
let md = session_guard.dump_as_markdown();
|
||||
Ok((None, md))
|
||||
let sid = if let Some(s) = current_session_id {
|
||||
s.clone()
|
||||
} else {
|
||||
Ok((None, "No active session.".to_string()))
|
||||
}
|
||||
// Create a new session if none exists (e.g., Feishu first message)
|
||||
let (new_id, _) = self.create_session(channel, chat_id, None).await?;
|
||||
new_id
|
||||
};
|
||||
let session = self.get_or_create_session(&sid).await?;
|
||||
let session_guard = session.lock().await;
|
||||
let md = session_guard.dump_as_markdown();
|
||||
Ok((None, md))
|
||||
}
|
||||
_ => Err(AgentError::Other(format!("Command not implemented: {}", cmd.name))),
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user