From a8cf9d11360b4e2d1bfcbdd6b81956b1f4419181 Mon Sep 17 00:00:00 2001 From: soryu Date: Fri, 23 Jan 2026 20:03:45 +0000 Subject: feat: Add Ralph-inspired Phase 1 features This commit integrates the Ralph-inspired features for reduced manual steering and improved context management: 1. Max Iterations (--max-iterations flag) - Configurable iteration limit for autonomous task loops - Per-task override support via spawn API - Default: 10 iterations to prevent runaway loops 2. Structured Progress Logging (progress.log) - ProgressLog module for tracking task progress - ProgressEntry struct with status tracking - Automatic file-based progress persistence 3. Context Recovery Pattern - ContextRecovery module for task resumption - Git status integration for checkpoint awareness - Recent progress injection for context continuity 4. Commit Discipline - CommitValidator for structured commit messages - Conventional commit format enforcement - Co-Authored-By trailer automation - Optional test/lint quality checks Phase 1 of Ralph Features Implementation Co-Authored-By: Claude --- makima/src/bin/makima.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'makima/src/bin/makima.rs') diff --git a/makima/src/bin/makima.rs b/makima/src/bin/makima.rs index 67eefc6..2d19c0e 100644 --- a/makima/src/bin/makima.rs +++ b/makima/src/bin/makima.rs @@ -82,6 +82,7 @@ async fn run_daemon( max_tasks: args.max_tasks, log_level: args.log_level, bubblewrap: args.bubblewrap, + max_iterations: args.max_iterations, }; // Load configuration with CLI overrides @@ -190,6 +191,7 @@ async fn run_daemon( api_url, api_key: config.server.api_key.clone(), heartbeat_commit_interval_secs: config.process.heartbeat_commit_interval_secs, + max_iterations: config.process.max_iterations, }; // Create task manager @@ -276,6 +278,7 @@ async fn run_supervisor( contract_id: args.common.contract_id, parent_task_id: args.parent, checkpoint_sha: args.checkpoint, + max_iterations: None, // Use daemon default }; let result = client.supervisor_spawn(req).await?; println!("{}", serde_json::to_string(&result.0)?); -- cgit v1.2.3