Description
Features that are gracefully interrupted during server shutdown are not automatically resumed when the server restarts. This is due to a missing status check in the resumeInterruptedFeatures() method.
Steps to Reproduce
- Start a feature execution (move feature to "In Progress")
- While the feature is running, restart the Automaker server (e.g.,
docker compose restart)
- After restart, observe that the feature is stuck with status
interrupted in the backlog
- The feature cannot be moved and must be manually edited to change status
Expected Behavior
Features marked as interrupted should be automatically detected and resumed when the server restarts, just like features with in_progress or pipeline_* status.
Actual Behavior
Features with interrupted status are not detected by resumeInterruptedFeatures() and remain stuck.
Root Cause
In apps/server/src/services/auto-mode-service.ts, the resumeInterruptedFeatures() method checks for features to resume:
// Line ~5434-5436 (or ~4449-4450 in main)
if (
feature.status === 'in_progress' ||
(feature.status && feature.status.startsWith('pipeline_'))
)
However, markFeatureInterrupted() sets the status to 'interrupted' (line ~3339):
await this.updateFeatureStatus(projectPath, featureId, 'interrupted');
The resume logic does not check for 'interrupted' status, so gracefully interrupted features are never detected for resumption.
Suggested Fix
Add 'interrupted' to the status check in resumeInterruptedFeatures():
if (
feature.status === 'in_progress' ||
feature.status === 'interrupted' || // Add this line
(feature.status && feature.status.startsWith('pipeline_'))
)
Environment
- Automaker version: Latest main branch
- Running in: Docker container
- OS: Linux (WSL2)
Description
Features that are gracefully interrupted during server shutdown are not automatically resumed when the server restarts. This is due to a missing status check in the
resumeInterruptedFeatures()method.Steps to Reproduce
docker compose restart)interruptedin the backlogExpected Behavior
Features marked as
interruptedshould be automatically detected and resumed when the server restarts, just like features within_progressorpipeline_*status.Actual Behavior
Features with
interruptedstatus are not detected byresumeInterruptedFeatures()and remain stuck.Root Cause
In
apps/server/src/services/auto-mode-service.ts, theresumeInterruptedFeatures()method checks for features to resume:However,
markFeatureInterrupted()sets the status to'interrupted'(line ~3339):The resume logic does not check for
'interrupted'status, so gracefully interrupted features are never detected for resumption.Suggested Fix
Add
'interrupted'to the status check inresumeInterruptedFeatures():Environment