mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-04 09:13:08 +00:00
feat(auto-mode): enhance error handling and feature status updates
- Improved error handling in AutoModeService to log errors and update feature status to "waiting_approval" when an error occurs during feature execution. - Added error message writing to the context file for better debugging. - Updated FeatureLoader to include an optional error message parameter when updating feature status. - Enhanced prompt generation to include detailed context about attached images for better user guidance during feature implementation. - Modified KanbanCard component to visually indicate features with errors, improving user awareness of issues. These changes significantly enhance the robustness of the auto mode feature and improve the user experience by providing clearer feedback on feature execution status.
This commit is contained in:
@@ -181,6 +181,31 @@ class AutoModeService {
|
||||
return { success: true, passes: result.passes };
|
||||
} catch (error) {
|
||||
console.error("[AutoMode] Error running feature:", error);
|
||||
|
||||
// Write error to context file
|
||||
try {
|
||||
await contextManager.writeToContextFile(
|
||||
projectPath,
|
||||
featureId,
|
||||
`\n\n❌ ERROR: ${error.message}\n\n${error.stack || ''}\n`
|
||||
);
|
||||
} catch (contextError) {
|
||||
console.error("[AutoMode] Failed to write error to context:", contextError);
|
||||
}
|
||||
|
||||
// Update feature status to waiting_approval so user can review the error
|
||||
try {
|
||||
await featureLoader.updateFeatureStatus(
|
||||
featureId,
|
||||
"waiting_approval",
|
||||
projectPath,
|
||||
null, // no summary
|
||||
error.message // pass error message
|
||||
);
|
||||
} catch (statusError) {
|
||||
console.error("[AutoMode] Failed to update feature status after error:", statusError);
|
||||
}
|
||||
|
||||
sendToRenderer({
|
||||
type: "auto_mode_error",
|
||||
error: error.message,
|
||||
@@ -260,6 +285,31 @@ class AutoModeService {
|
||||
return { success: true, passes: result.passes };
|
||||
} catch (error) {
|
||||
console.error("[AutoMode] Error verifying feature:", error);
|
||||
|
||||
// Write error to context file
|
||||
try {
|
||||
await contextManager.writeToContextFile(
|
||||
projectPath,
|
||||
featureId,
|
||||
`\n\n❌ ERROR: ${error.message}\n\n${error.stack || ''}\n`
|
||||
);
|
||||
} catch (contextError) {
|
||||
console.error("[AutoMode] Failed to write error to context:", contextError);
|
||||
}
|
||||
|
||||
// Update feature status to waiting_approval so user can review the error
|
||||
try {
|
||||
await featureLoader.updateFeatureStatus(
|
||||
featureId,
|
||||
"waiting_approval",
|
||||
projectPath,
|
||||
null, // no summary
|
||||
error.message // pass error message
|
||||
);
|
||||
} catch (statusError) {
|
||||
console.error("[AutoMode] Failed to update feature status after error:", statusError);
|
||||
}
|
||||
|
||||
sendToRenderer({
|
||||
type: "auto_mode_error",
|
||||
error: error.message,
|
||||
@@ -400,6 +450,31 @@ class AutoModeService {
|
||||
return { success: true, passes: finalResult.passes };
|
||||
} catch (error) {
|
||||
console.error("[AutoMode] Error resuming feature:", error);
|
||||
|
||||
// Write error to context file
|
||||
try {
|
||||
await contextManager.writeToContextFile(
|
||||
projectPath,
|
||||
featureId,
|
||||
`\n\n❌ ERROR: ${error.message}\n\n${error.stack || ''}\n`
|
||||
);
|
||||
} catch (contextError) {
|
||||
console.error("[AutoMode] Failed to write error to context:", contextError);
|
||||
}
|
||||
|
||||
// Update feature status to waiting_approval so user can review the error
|
||||
try {
|
||||
await featureLoader.updateFeatureStatus(
|
||||
featureId,
|
||||
"waiting_approval",
|
||||
projectPath,
|
||||
null, // no summary
|
||||
error.message // pass error message
|
||||
);
|
||||
} catch (statusError) {
|
||||
console.error("[AutoMode] Failed to update feature status after error:", statusError);
|
||||
}
|
||||
|
||||
sendToRenderer({
|
||||
type: "auto_mode_error",
|
||||
error: error.message,
|
||||
@@ -544,6 +619,31 @@ class AutoModeService {
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(`[AutoMode] Error running feature ${featureId}:`, error);
|
||||
|
||||
// Write error to context file
|
||||
try {
|
||||
await contextManager.writeToContextFile(
|
||||
projectPath,
|
||||
featureId,
|
||||
`\n\n❌ ERROR: ${error.message}\n\n${error.stack || ''}\n`
|
||||
);
|
||||
} catch (contextError) {
|
||||
console.error("[AutoMode] Failed to write error to context:", contextError);
|
||||
}
|
||||
|
||||
// Update feature status to waiting_approval so user can review the error
|
||||
try {
|
||||
await featureLoader.updateFeatureStatus(
|
||||
featureId,
|
||||
"waiting_approval",
|
||||
projectPath,
|
||||
null, // no summary
|
||||
error.message // pass error message
|
||||
);
|
||||
} catch (statusError) {
|
||||
console.error("[AutoMode] Failed to update feature status after error:", statusError);
|
||||
}
|
||||
|
||||
sendToRenderer({
|
||||
type: "auto_mode_error",
|
||||
error: error.message,
|
||||
@@ -761,6 +861,31 @@ class AutoModeService {
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("[AutoMode] Error in follow-up:", error);
|
||||
|
||||
// Write error to context file
|
||||
try {
|
||||
await contextManager.writeToContextFile(
|
||||
projectPath,
|
||||
featureId,
|
||||
`\n\n❌ ERROR: ${error.message}\n\n${error.stack || ''}\n`
|
||||
);
|
||||
} catch (contextError) {
|
||||
console.error("[AutoMode] Failed to write error to context:", contextError);
|
||||
}
|
||||
|
||||
// Update feature status to waiting_approval so user can review the error
|
||||
try {
|
||||
await featureLoader.updateFeatureStatus(
|
||||
featureId,
|
||||
"waiting_approval",
|
||||
projectPath,
|
||||
null, // no summary
|
||||
error.message // pass error message
|
||||
);
|
||||
} catch (statusError) {
|
||||
console.error("[AutoMode] Failed to update feature status after error:", statusError);
|
||||
}
|
||||
|
||||
sendToRenderer({
|
||||
type: "auto_mode_error",
|
||||
error: error.message,
|
||||
|
||||
Reference in New Issue
Block a user