semblance/src
Vadym Samoilenko 1b387daacf Migrate task result delivery from WebSocket to HTTP polling
Backend:
- task_manager.py: add result/error/completed_at storage, TTL sweeper (5min), store_task_result() helper
- tasks.py: add GET /<task_id> endpoint returning stored result; cancel route stores 'cancelled' status
- __init__.py: start TTL sweeper on app startup
- All 8 bg functions: store result before emitting lightweight WS hint (no payload data)

Frontend:
- src/lib/taskPolling.ts: waitForTaskResult() — polls GET /tasks/{id} every 2s, WS hint triggers immediate poll, 5min timeout
- src/hooks/useTaskPolling.ts: drop-in replacement for useCancellableGeneration using polling
- Migrate 6 Promise-based WS listeners → waitForTaskResult() in DiscussionPanel, FocusGroupSession (×2), PersonaProfile, PersonaModificationModal, useDiscussionGuideGeneration
- Migrate 3 hook-based consumers → useTaskPolling in AIRecruiter, SyntheticUsers, BulkExportProgressModal

Fixes WS Promise leak: polling survives disconnects, background tabs, page reloads.
WS events retained as zero-payload hints for near-zero latency when connected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 16:46:58 +00:00
..
components Migrate task result delivery from WebSocket to HTTP polling 2026-03-23 16:46:58 +00:00
config Remove console.log debug calls from frontend browser console 2026-03-23 14:30:56 +00:00
contexts Remove console.log debug calls from frontend browser console 2026-03-23 14:30:56 +00:00
hooks Migrate task result delivery from WebSocket to HTTP polling 2026-03-23 16:46:58 +00:00
lib Migrate task result delivery from WebSocket to HTTP polling 2026-03-23 16:46:58 +00:00
pages Migrate task result delivery from WebSocket to HTTP polling 2026-03-23 16:46:58 +00:00
services Remove console.log debug calls from frontend browser console 2026-03-23 14:30:56 +00:00
styles changed permissions 2025-12-19 19:26:16 +00:00
types changed permissions 2025-12-19 19:26:16 +00:00
utils Remove console.log debug calls from frontend browser console 2026-03-23 14:30:56 +00:00
.DS_Store changed permissions 2025-12-19 19:26:16 +00:00
App.tsx changed permissions 2025-12-19 19:26:16 +00:00
index.css changed permissions 2025-12-19 19:26:16 +00:00
main.tsx Switch to loginRedirect — popup blocked by server COOP header 2026-03-20 14:44:19 +00:00
vite-env.d.ts changed permissions 2025-12-19 19:26:16 +00:00