From ca8220aa1ad12f2a097d7d2d72ff8a0a0d60a679 Mon Sep 17 00:00:00 2001 From: leo <260626284+cameledev@users.noreply.github.com> Date: Wed, 18 Mar 2026 15:09:15 +0100 Subject: [PATCH] store dispatch id instead of search --- .../recording/services/metadata_collector.py | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/backend/core/recording/services/metadata_collector.py b/src/backend/core/recording/services/metadata_collector.py index 82c22de6..be63326a 100644 --- a/src/backend/core/recording/services/metadata_collector.py +++ b/src/backend/core/recording/services/metadata_collector.py @@ -54,44 +54,37 @@ class MetadataCollectorService: f"LiveKit did not return a dispatch_id for room {room_id}" ) + recording.options["metadata_collector_dispatch_id"] = dispatch_id + recording.save(update_fields=["options"]) + return dispatch_id @async_to_sync async def stop(self, recording): """Wip.""" - room_name = str(recording.room.id) + room_id = str(recording.room.id) + dispatch_id = recording.options.get("metadata_collector_dispatch_id") lkapi = utils.create_livekit_client() try: - dispatches = await lkapi.agent_dispatch.list_dispatch(room_name=room_name) - - dispatch_id = next( - ( - d.id - for d in dispatches - if d.agent_name == settings.METADATA_COLLECTOR_AGENT_NAME - ), - None, - ) - if not dispatch_id: logger.warning( - "No metadata collector agent found for room %s", room_name + "No metadata collector dispatch ID stored for room %s", room_id ) return None await lkapi.agent_dispatch.delete_dispatch( - dispatch_id=str(dispatch_id), room_name=room_name + dispatch_id=str(dispatch_id), room_name=room_id ) except Exception as e: logger.exception( "Failed to stop metadata collector agent dispatch for room %s", - room_name, + room_id, ) raise MetadataCollectorException( - f"Failed to stop metadata collector agent for room {room_name}" + f"Failed to stop metadata collector agent for room {room_id}" ) from e finally: await lkapi.aclose()