diff options
| author | soryu <soryu@soryu.co> | 2026-01-23 20:03:45 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-23 20:05:34 +0000 |
| commit | a8cf9d11360b4e2d1bfcbdd6b81956b1f4419181 (patch) | |
| tree | 3d994b1d9afd181bfe6095c1a12c6765d348a56c /makima/src/bin/makima.rs | |
| parent | 12cb721dbbe571bd3b2766546b2105ef034e6cf3 (diff) | |
| download | soryu-a8cf9d11360b4e2d1bfcbdd6b81956b1f4419181.tar.gz soryu-a8cf9d11360b4e2d1bfcbdd6b81956b1f4419181.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.rs | 3 |
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)?); |
