From 69ba86d539e2595d9ed0d17dddaf41120b08aeb2 Mon Sep 17 00:00:00 2001 From: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Date: Fri, 9 Jan 2026 16:05:08 +0000 Subject: [PATCH] fix: CLI headless recipe runs fail with 'Scheduler not available' error on Linux AARCH64 (v1.18.0+) --- crates/goose-cli/src/session/builder.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/crates/goose-cli/src/session/builder.rs b/crates/goose-cli/src/session/builder.rs index 11e15f7717b0..94b14112de37 100644 --- a/crates/goose-cli/src/session/builder.rs +++ b/crates/goose-cli/src/session/builder.rs @@ -3,12 +3,14 @@ use super::CliSession; use console::style; use goose::agents::types::{RetryConfig, SessionConfig}; use goose::agents::Agent; +use goose::config::paths::Paths; use goose::config::{ extensions::get_extension_by_name, get_all_extensions, get_enabled_extensions, Config, ExtensionConfig, }; use goose::providers::create; use goose::recipe::{Response, SubRecipe}; +use goose::scheduler::Scheduler; use goose::agents::extension::PlatformExtensionContext; use goose::session::session_manager::SessionType; @@ -301,6 +303,16 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession { let agent: Agent = Agent::new(); + let schedule_file_path = Paths::data_dir().join("schedule.json"); + match Scheduler::new(schedule_file_path).await { + Ok(scheduler) => { + agent.set_scheduler(scheduler).await; + } + Err(e) => { + tracing::warn!("Failed to initialize scheduler: {}", e); + } + } + agent .apply_recipe_components( session_config.sub_recipes,