fix(goose): propagate session_id across providers and MCP (#6584)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
@@ -88,6 +88,7 @@ impl Agent {
|
||||
|
||||
let (compacted_conversation, _usage) = compact_messages(
|
||||
self.provider().await?.as_ref(),
|
||||
session_id,
|
||||
&conversation,
|
||||
true, // is_manual_compact
|
||||
)
|
||||
@@ -128,11 +129,11 @@ impl Agent {
|
||||
async fn handle_prompts_command(
|
||||
&self,
|
||||
params: &[&str],
|
||||
_session_id: &str,
|
||||
session_id: &str,
|
||||
) -> Result<Option<Message>> {
|
||||
let extension_filter = params.first().map(|s| s.to_string());
|
||||
|
||||
let prompts = self.list_extension_prompts().await;
|
||||
let prompts = self.list_extension_prompts(session_id).await;
|
||||
|
||||
if let Some(filter) = &extension_filter {
|
||||
if !prompts.contains_key(filter) {
|
||||
@@ -182,7 +183,7 @@ impl Agent {
|
||||
let is_info = params.get(1).map(|s| *s == "--info").unwrap_or(false);
|
||||
|
||||
if is_info {
|
||||
let prompts = self.list_extension_prompts().await;
|
||||
let prompts = self.list_extension_prompts(session_id).await;
|
||||
let mut prompt_info = None;
|
||||
|
||||
for (extension, prompt_list) in prompts {
|
||||
@@ -225,7 +226,10 @@ impl Agent {
|
||||
let arguments_value = serde_json::to_value(arguments)
|
||||
.map_err(|e| anyhow!("Failed to serialize arguments: {}", e))?;
|
||||
|
||||
match self.get_prompt(&prompt_name, arguments_value).await {
|
||||
match self
|
||||
.get_prompt(session_id, &prompt_name, arguments_value)
|
||||
.await
|
||||
{
|
||||
Ok(prompt_result) => {
|
||||
for (i, prompt_message) in prompt_result.messages.into_iter().enumerate() {
|
||||
let msg = Message::from(prompt_message);
|
||||
|
||||
Reference in New Issue
Block a user