fix progress events

This commit is contained in:
2025-11-07 18:40:36 +01:00
parent 5c4bd3d7e8
commit 2441730862
5 changed files with 673 additions and 249 deletions

View File

@@ -66,23 +66,25 @@ async def lifespan(app: FastAPI):
)
except Exception as e:
logger.warning("Failed to load config from config.json: %s", e)
# Initialize progress service with websocket callback
# Initialize progress service with event subscription
progress_service = get_progress_service()
ws_service = get_websocket_service()
async def broadcast_callback(
message_type: str, data: dict, room: str
) -> None:
"""Broadcast progress updates via WebSocket."""
async def progress_event_handler(event) -> None:
"""Handle progress events and broadcast via WebSocket.
Args:
event: ProgressEvent containing progress update data
"""
message = {
"type": message_type,
"data": data,
"type": event.event_type,
"data": event.progress.to_dict(),
}
await ws_service.manager.broadcast_to_room(message, room)
await ws_service.manager.broadcast_to_room(message, event.room)
progress_service.set_broadcast_callback(broadcast_callback)
# Subscribe to progress events
progress_service.subscribe("progress_updated", progress_event_handler)
logger.info("FastAPI application started successfully")
logger.info("Server running on http://127.0.0.1:8000")