diff --git a/crates/g3-cli/src/accumulative.rs b/crates/g3-cli/src/accumulative.rs index 679e435..414b077 100644 --- a/crates/g3-cli/src/accumulative.rs +++ b/crates/g3-cli/src/accumulative.rs @@ -17,6 +17,7 @@ use crate::simple_output::SimpleOutput; use crate::ui_writer_impl::ConsoleUiWriter; use g3_core::ui_writer::UiWriter; use crate::utils::load_config_with_cli_overrides; +use crate::template::process_template; /// Run accumulative autonomous mode - accumulates requirements from user input /// and runs autonomous mode after each input. @@ -75,7 +76,8 @@ pub async fn run_accumulative_mode( let readline = rl.readline("requirement> "); match readline { Ok(line) => { - let input = line.trim().to_string(); + // Apply template expansion (e.g., {{today}} -> 2026-01-26 (Monday)) + let input = process_template(line.trim()); if input.is_empty() { continue; diff --git a/crates/g3-cli/src/interactive.rs b/crates/g3-cli/src/interactive.rs index 6feb226..6411533 100644 --- a/crates/g3-cli/src/interactive.rs +++ b/crates/g3-cli/src/interactive.rs @@ -17,6 +17,7 @@ use crate::g3_status::{G3Status, Status}; use crate::project::Project; use crate::project_files::extract_readme_heading; use crate::simple_output::SimpleOutput; +use crate::template::process_template; use crate::task_execution::execute_task_with_retry; use crate::utils::display_context_progress; @@ -209,10 +210,11 @@ pub async fn run_interactive( break; } - // Process the multiline input + // Process the multiline input (with template expansion) + let processed_input = process_template(&input); execute_task_with_retry( &mut agent, - &input, + &processed_input, show_prompt, show_code, &output, @@ -248,10 +250,11 @@ pub async fn run_interactive( } } - // Process the single line input + // Process the single line input (with template expansion) + let processed_input = process_template(&input); execute_task_with_retry( &mut agent, - &input, + &processed_input, show_prompt, show_code, &output,