summaryrefslogtreecommitdiff
path: root/makima/src/bin/makima.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-23 20:03:45 +0000
committersoryu <soryu@soryu.co>2026-01-23 20:05:34 +0000
commita8cf9d11360b4e2d1bfcbdd6b81956b1f4419181 (patch)
tree3d994b1d9afd181bfe6095c1a12c6765d348a56c /makima/src/bin/makima.rs
parent12cb721dbbe571bd3b2766546b2105ef034e6cf3 (diff)
downloadsoryu-makima/ralph-features-phase1.tar.gz
soryu-makima/ralph-features-phase1.zip
feat: Add Ralph-inspired Phase 1 featuresmakima/ralph-features-phase1
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 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/bin/makima.rs')
-rw-r--r--makima/src/bin/makima.rs3
1 files changed, 3 insertions, 0 deletions
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)?);