fix: working dir was not being set correctly (#3477)

This commit is contained in:
Michael Neale
2025-07-18 12:59:19 +10:00
committed by GitHub
parent 8a6329f8ca
commit a1463e6674
4 changed files with 261 additions and 23 deletions
+19 -8
View File
@@ -123,7 +123,7 @@ async fn handler(
let stream = ReceiverStream::new(rx);
let messages = request.messages;
let session_working_dir = request.session_working_dir;
let session_working_dir = request.session_working_dir.clone();
let session_id = request
.session_id
@@ -181,7 +181,7 @@ async fn handler(
&messages,
Some(SessionConfig {
id: session::Identifier::Name(session_id.clone()),
working_dir: PathBuf::from(session_working_dir),
working_dir: PathBuf::from(&session_working_dir),
schedule_id: request.scheduled_job_id.clone(),
execution_mode: None,
max_turns: None,
@@ -297,8 +297,13 @@ async fn handler(
if all_messages.len() > saved_message_count {
let provider = Arc::clone(provider.as_ref().unwrap());
tokio::spawn(async move {
if let Err(e) =
session::persist_messages(&session_path, &all_messages, Some(provider)).await
if let Err(e) = session::persist_messages(
&session_path,
&all_messages,
Some(provider),
Some(PathBuf::from(&session_working_dir)),
)
.await
{
tracing::error!("Failed to store session history: {:?}", e);
}
@@ -337,7 +342,7 @@ async fn ask_handler(
) -> Result<Json<AskResponse>, StatusCode> {
verify_secret_key(&headers, &state)?;
let session_working_dir = request.session_working_dir;
let session_working_dir = request.session_working_dir.clone();
let session_id = request
.session_id
@@ -358,7 +363,7 @@ async fn ask_handler(
&messages,
Some(SessionConfig {
id: session::Identifier::Name(session_id.clone()),
working_dir: PathBuf::from(session_working_dir),
working_dir: PathBuf::from(&session_working_dir),
schedule_id: request.scheduled_job_id.clone(),
execution_mode: None,
max_turns: None,
@@ -420,9 +425,15 @@ async fn ask_handler(
let session_path_clone = session_path.clone();
let messages = all_messages.clone();
let provider = Arc::clone(provider.as_ref().unwrap());
let session_working_dir_clone = session_working_dir.clone();
tokio::spawn(async move {
if let Err(e) =
session::persist_messages(&session_path_clone, &messages, Some(provider)).await
if let Err(e) = session::persist_messages(
&session_path_clone,
&messages,
Some(provider),
Some(PathBuf::from(session_working_dir_clone)),
)
.await
{
tracing::error!("Failed to store session history: {:?}", e);
}