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
+15 -2
View File
@@ -475,7 +475,14 @@ async fn process_message_streaming(
}
let provider = provider.unwrap();
session::persist_messages(&session_file, &messages, Some(provider.clone())).await?;
let working_dir = Some(std::env::current_dir()?);
session::persist_messages(
&session_file,
&messages,
Some(provider.clone()),
working_dir.clone(),
)
.await?;
// Create a session config
let session_config = SessionConfig {
@@ -503,7 +510,13 @@ async fn process_message_streaming(
let session_msgs = session_messages.lock().await;
session_msgs.clone()
};
session::persist_messages(&session_file, &current_messages, None).await?;
session::persist_messages(
&session_file,
&current_messages,
None,
working_dir.clone(),
)
.await?;
// Handle different message content types
for content in &message.content {
match content {
+23
View File
@@ -370,11 +370,16 @@ impl Session {
// Persist messages with provider for automatic description generation
if let Some(session_file) = &self.session_file {
let working_dir = Some(
std::env::current_dir().expect("failed to get current session working directory"),
);
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
Some(provider),
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -492,11 +497,17 @@ impl Session {
// Persist messages with provider for automatic description generation
if let Some(session_file) = &self.session_file {
let working_dir = Some(
std::env::current_dir()
.expect("failed to get current session working directory"),
);
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
Some(provider),
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -708,11 +719,13 @@ impl Session {
// Persist the summarized messages
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
Some(provider),
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -892,11 +905,13 @@ impl Session {
));
push_message(&mut self.messages, response_message);
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
None,
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -991,11 +1006,13 @@ impl Session {
// No need to update description on assistant messages
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
None,
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -1208,11 +1225,13 @@ impl Session {
// No need for description update here
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
None,
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -1225,11 +1244,13 @@ impl Session {
// No need for description update here
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
None,
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}
@@ -1247,11 +1268,13 @@ impl Session {
// No need for description update here
if let Some(session_file) = &self.session_file {
let working_dir = std::env::current_dir().ok();
session::persist_messages_with_schedule_id(
session_file,
&self.messages,
None,
self.scheduled_job_id.clone(),
working_dir,
)
.await?;
}