mirror of
https://github.com/leonvanzyl/autocoder.git
synced 2026-01-31 14:43:35 +00:00
feat: Add robust fallback mechanisms for spec creation chat
Add multiple escape hatches to prevent users from getting stuck during
spec creation when the WebSocket completion signal fails.
Changes:
- Add "Exit to Project" button always visible in chat header
- Add /exit command detection to immediately exit to project
- Add backend GET /api/spec/status/{project} endpoint to poll status file
- Add getSpecStatus() API function in frontend
- Add status file polling (every 3s) in useSpecChat hook
- Update create-spec.md with status file write instructions
How it works:
1. Happy path: Claude writes .spec_status.json as final step, UI polls
and detects completion, shows "Continue to Project" button
2. Escape hatch: User can always click "Exit to Project" or type /exit
to instantly select the project and close modal, then manually start
the agent from the main UI
This ensures users always have a way forward even if the WebSocket
completion detection fails due to tool call tracking issues.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -145,6 +145,22 @@ export async function resumeAgent(projectName: string): Promise<AgentActionRespo
|
||||
})
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Spec Creation API
|
||||
// ============================================================================
|
||||
|
||||
export interface SpecFileStatus {
|
||||
exists: boolean
|
||||
status: 'complete' | 'in_progress' | 'not_started' | 'error' | 'unknown'
|
||||
feature_count: number | null
|
||||
timestamp: string | null
|
||||
files_written: string[]
|
||||
}
|
||||
|
||||
export async function getSpecStatus(projectName: string): Promise<SpecFileStatus> {
|
||||
return fetchJSON(`/spec/status/${encodeURIComponent(projectName)}`)
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Setup API
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user