-
Notifications
You must be signed in to change notification settings - Fork 543
Description
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
interruptedin 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)