feat(backup): add backup.json for feature tracking and status updates

- Introduced a new `backup.json` file to track feature statuses, descriptions, and summaries for better project management.
- Updated `.automaker/feature_list.json` to reflect verified statuses for several features, ensuring accurate representation of progress.
- Enhanced `memory.md` with details on drag-and-drop functionality for features in `waiting_approval` status.
- Improved auto mode service to allow running tasks to complete when auto mode is stopped, enhancing user experience.
This commit is contained in:
Cody Seibert
2025-12-10 14:29:05 -05:00
parent d83eb86f22
commit c502fbc57a
26 changed files with 2497 additions and 298 deletions

View File

@@ -128,10 +128,12 @@ class AutoModeService {
}
/**
* Stop auto mode - stops the auto loop and all running features
* Stop auto mode - stops the auto loop but lets running features complete
* This only turns off the auto toggle to prevent picking up new features.
* Running tasks will continue until they complete naturally.
*/
async stop() {
console.log("[AutoMode] Stopping auto mode");
console.log("[AutoMode] Stopping auto mode (letting running features complete)");
this.autoLoopRunning = false;
@@ -147,18 +149,15 @@ class AutoModeService {
this.autoLoopAbortController = null;
}
// Abort all running features
for (const [featureId, execution] of this.runningFeatures.entries()) {
console.log(`[AutoMode] Aborting feature: ${featureId}`);
if (execution.abortController) {
execution.abortController.abort();
}
}
// NOTE: We intentionally do NOT abort running features here.
// Stopping auto mode should only turn off the toggle to prevent new features
// from being picked up. Running features will complete naturally.
// Use stopFeature() to cancel a specific running feature if needed.
// Clear all running features
this.runningFeatures.clear();
const runningCount = this.runningFeatures.size;
console.log(`[AutoMode] Auto loop stopped. ${runningCount} feature(s) still running and will complete.`);
return { success: true };
return { success: true, runningFeatures: runningCount };
}
/**