Fix task_completed WebSocket payload too large

Don't send full persona objects in WS event — only send counts.
Frontend navigates to list page where personas load from API.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Vadym Samoilenko 2026-03-23 14:11:14 +00:00
parent aa4090888d
commit f60d86e8cb
2 changed files with 8 additions and 8 deletions

View file

@ -1142,8 +1142,8 @@ async def _run_persona_generation_bg(
'task_id': task_id,
'task_type': 'persona_full_generation',
'message': f'Successfully generated {len(completed_personas)} personas',
'personas': completed_personas,
'errors': failed_personas if failed_personas else None,
'personas_created': len(completed_personas),
'errors_count': len(failed_personas),
'partial_success': len(failed_personas) > 0 and len(completed_personas) > 0
})

View file

@ -75,18 +75,18 @@ export default function AIRecruiter({ targetFolderId, targetFolderName }: AIRecr
setGenerationToastId(null);
}
const personas: Persona[] = data.personas || [];
const errors = data.errors || [];
const count = data.personas_created || 0;
const errorsCount = data.errors_count || 0;
if (personas.length > 0) {
if (data.partial_success && errors.length > 0) {
if (count > 0) {
if (data.partial_success && errorsCount > 0) {
toast.success("Some personas generated successfully", {
description: `${personas.length} created, ${errors.length} failed.`,
description: `${count} created, ${errorsCount} failed.`,
duration: 8000
});
} else {
toast.success("Personas generated and saved successfully", {
description: `${personas.length} personas saved${targetFolderName ? ` to "${targetFolderName}"` : ''}.`
description: `${count} personas saved${targetFolderName ? ` to "${targetFolderName}"` : ''}.`
});
}
setTimeout(() => navigate('/synthetic-users?mode=view'), 1500);