mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
final code review
This commit is contained in:
@@ -302,44 +302,29 @@ export function SpecView() {
|
|||||||
setLogs(newLog);
|
setLogs(newLog);
|
||||||
console.log("[SpecView] Tool:", event.tool, event.input);
|
console.log("[SpecView] Tool:", event.tool, event.input);
|
||||||
} else if (event.type === "spec_regeneration_complete") {
|
} else if (event.type === "spec_regeneration_complete") {
|
||||||
// Add completion message to logs first (before checking)
|
// Add completion message to logs first
|
||||||
const completionLog = logsRef.current + `\n[Complete] ${event.message}\n`;
|
const completionLog = logsRef.current + `\n[Complete] ${event.message}\n`;
|
||||||
logsRef.current = completionLog;
|
logsRef.current = completionLog;
|
||||||
setLogs(completionLog);
|
setLogs(completionLog);
|
||||||
|
|
||||||
// --- Completion Detection Logic ---
|
// --- Completion Detection Logic ---
|
||||||
// Check 1: Message explicitly indicates all tasks are done
|
// The backend sends explicit signals for completion:
|
||||||
|
// 1. "All tasks completed" in the message
|
||||||
|
// 2. [Phase: complete] marker in logs
|
||||||
const isFinalCompletionMessage = event.message?.includes("All tasks completed") ||
|
const isFinalCompletionMessage = event.message?.includes("All tasks completed") ||
|
||||||
event.message === "All tasks completed!" ||
|
event.message === "All tasks completed!" ||
|
||||||
event.message === "All tasks completed";
|
event.message === "All tasks completed";
|
||||||
|
|
||||||
// Check 2: We've seen a [Phase: complete] marker in the logs
|
|
||||||
const hasCompletePhase = logsRef.current.includes("[Phase: complete]");
|
const hasCompletePhase = logsRef.current.includes("[Phase: complete]");
|
||||||
|
|
||||||
// Check 3: Feature generation has finished (no recent activity and not actively generating)
|
// Rely solely on explicit backend signals
|
||||||
const recentLogs = logsRef.current.slice(-2000);
|
const shouldComplete = isFinalCompletionMessage || hasCompletePhase;
|
||||||
const hasRecentFeatureActivity = recentLogs.includes("Feature Creation") ||
|
|
||||||
recentLogs.includes("Creating feature") ||
|
|
||||||
recentLogs.includes("UpdateFeatureStatus");
|
|
||||||
const isStillGeneratingFeatures = !isFinalCompletionMessage &&
|
|
||||||
!hasCompletePhase &&
|
|
||||||
(event.message?.includes("Features are being generated") ||
|
|
||||||
event.message?.includes("features are being generated"));
|
|
||||||
const isFeatureGenerationComplete = currentPhase === "feature_generation" &&
|
|
||||||
!hasRecentFeatureActivity &&
|
|
||||||
!isStillGeneratingFeatures;
|
|
||||||
|
|
||||||
// Determine if we should mark everything as complete
|
|
||||||
const shouldComplete = isFinalCompletionMessage || hasCompletePhase || isFeatureGenerationComplete;
|
|
||||||
|
|
||||||
if (shouldComplete) {
|
if (shouldComplete) {
|
||||||
// Fully complete - clear all states immediately
|
// Fully complete - clear all states immediately
|
||||||
console.log("[SpecView] Final completion detected - clearing state", {
|
console.log("[SpecView] Final completion detected - clearing state", {
|
||||||
isFinalCompletionMessage,
|
isFinalCompletionMessage,
|
||||||
hasCompletePhase,
|
hasCompletePhase,
|
||||||
isFeatureGenerationComplete,
|
|
||||||
hasRecentFeatureActivity,
|
|
||||||
currentPhase,
|
|
||||||
message: event.message
|
message: event.message
|
||||||
});
|
});
|
||||||
setIsRegenerating(false);
|
setIsRegenerating(false);
|
||||||
@@ -359,11 +344,7 @@ export function SpecView() {
|
|||||||
setIsCreating(true);
|
setIsCreating(true);
|
||||||
setIsRegenerating(true);
|
setIsRegenerating(true);
|
||||||
setCurrentPhase("feature_generation");
|
setCurrentPhase("feature_generation");
|
||||||
console.log("[SpecView] Spec complete, continuing with feature generation", {
|
console.log("[SpecView] Intermediate completion, continuing with feature generation");
|
||||||
isStillGeneratingFeatures,
|
|
||||||
hasRecentFeatureActivity,
|
|
||||||
currentPhase
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("[SpecView] Spec generation event:", event.message);
|
console.log("[SpecView] Spec generation event:", event.message);
|
||||||
|
|||||||
Reference in New Issue
Block a user