mirror of
https://github.com/block/goose.git
synced 2026-04-28 11:39:43 +00:00
Use Instructions as Prompt in Scheduler (#5359)
This commit is contained in:
parent
53391f2065
commit
0ca4e0ba4e
1 changed files with 54 additions and 57 deletions
|
|
@ -655,7 +655,9 @@ impl Scheduler {
|
||||||
schedule_sessions.push((session.id.clone(), session));
|
schedule_sessions.push((session.id.clone(), session));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
schedule_sessions.sort_by(|a, b| b.0.cmp(&a.0));
|
|
||||||
|
// Sort by created_at timestamp, newest first
|
||||||
|
schedule_sessions.sort_by(|a, b| b.1.created_at.cmp(&a.1.created_at));
|
||||||
|
|
||||||
let result_sessions: Vec<(String, Session)> =
|
let result_sessions: Vec<(String, Session)> =
|
||||||
schedule_sessions.into_iter().take(limit).collect();
|
schedule_sessions.into_iter().take(limit).collect();
|
||||||
|
|
@ -1171,14 +1173,10 @@ async fn run_scheduled_job_internal(
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create session upfront for both cases
|
// Create session upfront
|
||||||
let session = match SessionManager::create_session(
|
let session = match SessionManager::create_session(
|
||||||
current_dir.clone(),
|
current_dir.clone(),
|
||||||
if recipe.prompt.is_some() {
|
format!("Scheduled job: {}", job.id),
|
||||||
format!("Scheduled job: {}", job.id)
|
|
||||||
} else {
|
|
||||||
"Empty job - no prompt".to_string()
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
|
|
@ -1199,7 +1197,13 @@ async fn run_scheduled_job_internal(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(ref prompt_text) = recipe.prompt {
|
// Use prompt if available, otherwise fall back to instructions
|
||||||
|
let prompt_text = recipe
|
||||||
|
.prompt
|
||||||
|
.as_ref()
|
||||||
|
.or(recipe.instructions.as_ref())
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let mut conversation =
|
let mut conversation =
|
||||||
Conversation::new_unvalidated(vec![Message::user().with_text(prompt_text.clone())]);
|
Conversation::new_unvalidated(vec![Message::user().with_text(prompt_text.clone())]);
|
||||||
|
|
||||||
|
|
@ -1252,13 +1256,6 @@ async fn run_scheduled_job_internal(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
tracing::warn!(
|
|
||||||
"[Job {}] Recipe '{}' has no prompt to execute.",
|
|
||||||
job.id,
|
|
||||||
job.source
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Err(e) = SessionManager::update_session(&session.id)
|
if let Err(e) = SessionManager::update_session(&session.id)
|
||||||
.schedule_id(Some(job.id.clone()))
|
.schedule_id(Some(job.id.clone()))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue