fix(cli): sync all MCP prompt messages to session before agent reply (#6566)
This commit is contained in:
@@ -1302,6 +1302,7 @@ impl CliSession {
|
|||||||
Ok(messages) => {
|
Ok(messages) => {
|
||||||
let start_len = self.messages.len();
|
let start_len = self.messages.len();
|
||||||
let mut valid = true;
|
let mut valid = true;
|
||||||
|
let num_messages = messages.len();
|
||||||
for (i, prompt_message) in messages.into_iter().enumerate() {
|
for (i, prompt_message) in messages.into_iter().enumerate() {
|
||||||
let msg = Message::from(prompt_message);
|
let msg = Message::from(prompt_message);
|
||||||
// ensure we get a User - Assistant - User type pattern
|
// ensure we get a User - Assistant - User type pattern
|
||||||
@@ -1329,6 +1330,17 @@ impl CliSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if valid {
|
if valid {
|
||||||
|
if num_messages > 1 {
|
||||||
|
for i in 0..(num_messages - 1) {
|
||||||
|
let msg = &self.messages.messages()[start_len + i];
|
||||||
|
self.agent
|
||||||
|
.config
|
||||||
|
.session_manager
|
||||||
|
.add_message(&self.session_id, msg)
|
||||||
|
.await?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
output::show_thinking();
|
output::show_thinking();
|
||||||
self.process_agent_response(true, CancellationToken::default())
|
self.process_agent_response(true, CancellationToken::default())
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user