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/daemon/task/manager.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/daemon/task/manager.rs')
| -rw-r--r-- | makima/src/daemon/task/manager.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/makima/src/daemon/task/manager.rs b/makima/src/daemon/task/manager.rs index 179c07f..b0e4721 100644 --- a/makima/src/daemon/task/manager.rs +++ b/makima/src/daemon/task/manager.rs @@ -1292,6 +1292,7 @@ impl TaskManager { false, // autonomous_loop - supervisors don't use this false, // resume_session - respawning from scratch None, // conversation_history - not needed for fresh respawn + None, // max_iterations - use config default ).await { tracing::error!( task_id = %task_id, @@ -4366,6 +4367,7 @@ impl Clone for TaskManagerInner { git_user_name: self.git_user_name.clone(), api_url: self.api_url.clone(), heartbeat_commit_interval_secs: self.heartbeat_commit_interval_secs, + max_iterations: self.max_iterations, } } } |
