fix(goose): propagate session_id across providers and MCP (#6584)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
@@ -169,7 +169,7 @@ impl GithubCopilotProvider {
|
||||
})
|
||||
}
|
||||
|
||||
async fn post(&self, payload: &mut Value) -> Result<Response, ProviderError> {
|
||||
async fn post(&self, session_id: &str, payload: &mut Value) -> Result<Response, ProviderError> {
|
||||
let (endpoint, token) = self.get_api_info().await?;
|
||||
let auth = AuthMethod::BearerToken(token);
|
||||
let mut headers = self.get_github_headers();
|
||||
@@ -179,7 +179,7 @@ impl GithubCopilotProvider {
|
||||
let api_client = ApiClient::new(endpoint.clone(), auth)?.with_headers(headers)?;
|
||||
|
||||
api_client
|
||||
.response_post("chat/completions", payload)
|
||||
.response_post(session_id, "chat/completions", payload)
|
||||
.await
|
||||
.map_err(|e| e.into())
|
||||
}
|
||||
@@ -411,6 +411,7 @@ impl Provider for GithubCopilotProvider {
|
||||
)]
|
||||
async fn complete_with_model(
|
||||
&self,
|
||||
session_id: &str,
|
||||
model_config: &ModelConfig,
|
||||
system: &str,
|
||||
messages: &[Message],
|
||||
@@ -430,7 +431,7 @@ impl Provider for GithubCopilotProvider {
|
||||
let response = self
|
||||
.with_retry(|| async {
|
||||
let mut payload_clone = payload.clone();
|
||||
self.post(&mut payload_clone).await
|
||||
self.post(session_id, &mut payload_clone).await
|
||||
})
|
||||
.await?;
|
||||
let response = handle_response_openai_compat(response).await?;
|
||||
@@ -450,6 +451,7 @@ impl Provider for GithubCopilotProvider {
|
||||
|
||||
async fn stream(
|
||||
&self,
|
||||
session_id: &str,
|
||||
system: &str,
|
||||
messages: &[Message],
|
||||
tools: &[Tool],
|
||||
@@ -467,7 +469,7 @@ impl Provider for GithubCopilotProvider {
|
||||
let response = self
|
||||
.with_retry(|| async {
|
||||
let mut payload_clone = payload.clone();
|
||||
let resp = self.post(&mut payload_clone).await?;
|
||||
let resp = self.post(session_id, &mut payload_clone).await?;
|
||||
handle_status_openai_compat(resp).await
|
||||
})
|
||||
.await
|
||||
@@ -478,7 +480,10 @@ impl Provider for GithubCopilotProvider {
|
||||
stream_openai_compat(response, log)
|
||||
}
|
||||
|
||||
async fn fetch_supported_models(&self) -> Result<Option<Vec<String>>, ProviderError> {
|
||||
async fn fetch_supported_models(
|
||||
&self,
|
||||
_session_id: &str,
|
||||
) -> Result<Option<Vec<String>>, ProviderError> {
|
||||
let (endpoint, token) = self.get_api_info().await?;
|
||||
let url = format!("{}/models", endpoint);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user