fix: create logs dir before writing llm request log (#8522)

Signed-off-by: Juan Palomino <jpalomino09@gmail.com>
This commit is contained in:
Juan Palomino
2026-04-16 00:50:34 -07:00
committed by GitHub
parent a6e5d70df0
commit aa8ea99584
+22
View File
@@ -376,6 +376,7 @@ impl RequestLog {
Payload: Serialize,
{
let logs_dir = Paths::in_state_dir("logs");
fs_err::create_dir_all(&logs_dir)?;
let request_id = Uuid::new_v4();
let temp_name = format!("llm_request.{request_id}.jsonl");
@@ -525,6 +526,27 @@ mod tests {
use super::*;
use serde_json::json;
#[test]
fn test_request_log_start_creates_logs_dir() {
let _guard = env_lock::lock_env([("GOOSE_PATH_ROOT", None::<&str>)]);
let temp_dir = tempfile::tempdir().unwrap();
std::env::set_var("GOOSE_PATH_ROOT", temp_dir.path());
let logs_dir = Paths::in_state_dir("logs");
assert!(!logs_dir.exists(), "logs dir should not exist yet");
let log = RequestLog::start(
&ModelConfig::new("test").unwrap(),
&json!({"model": "test"}),
)
.expect("RequestLog::start should create missing logs dir");
drop(log);
assert!(logs_dir.is_dir(), "logs dir should have been created");
std::env::remove_var("GOOSE_PATH_ROOT");
}
#[test]
fn test_detect_image_path() {
// Create a temporary PNG file with valid PNG magic numbers