Skip to content

Commit 33aa95c

Browse files
committed
Add markers list to ClientState and update timeout trigger comment
- Introduced a new `markers` list in `ClientState` to track button event data during conversations. - Updated comment in `open_conversation_job` to clarify the behavior of the `timeout_triggered` variable, ensuring better understanding of session management.
1 parent 6675f07 commit 33aa95c

File tree

2 files changed

+2
-25
lines changed

2 files changed

+2
-25
lines changed

backends/advanced/src/advanced_omi_backend/client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ async def start_new_conversation(self):
149149
self.conversation_start_time = time.time()
150150
self.last_transcript_time = None
151151
self.conversation_closed = False
152+
self.markers = []
152153

153154
audio_logger.info(f"Client {self.client_id}: Started new conversation")
154155

backends/advanced/src/advanced_omi_backend/workers/conversation_jobs.py

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ async def open_conversation_job(
432432
await redis_client.hdel(session_key, "conversation_close_requested")
433433
close_requested_reason = close_reason.decode() if isinstance(close_reason, bytes) else close_reason
434434
logger.info(f"🔒 Conversation close requested: {close_requested_reason}")
435-
timeout_triggered = True # Same path as inactivity: session stays active
435+
timeout_triggered = True # Session stays active (same restart behavior as inactivity timeout)
436436
finalize_received = True
437437
break
438438

@@ -685,30 +685,6 @@ async def open_conversation_job(
685685
f"(waited {max_wait_streaming}s), proceeding with available transcript"
686686
)
687687

688-
# Wait for streaming transcription consumer to complete before reading transcript
689-
# This fixes the race condition where conversation job reads transcript before
690-
# streaming consumer stores all final results (seen as 24+ second delay in logs)
691-
completion_key = f"transcription:complete:{session_id}"
692-
max_wait_streaming = 30 # seconds
693-
waited_streaming = 0.0
694-
while waited_streaming < max_wait_streaming:
695-
completion_status = await redis_client.get(completion_key)
696-
if completion_status:
697-
status_str = completion_status.decode() if isinstance(completion_status, bytes) else completion_status
698-
if status_str == "error":
699-
logger.warning(f"⚠️ Streaming transcription ended with error for {session_id}, proceeding anyway")
700-
else:
701-
logger.info(f"✅ Streaming transcription confirmed complete for {session_id}")
702-
break
703-
await asyncio.sleep(0.5)
704-
waited_streaming += 0.5
705-
706-
if waited_streaming >= max_wait_streaming:
707-
logger.warning(
708-
f"⚠️ Timed out waiting for streaming completion signal for {session_id} "
709-
f"(waited {max_wait_streaming}s), proceeding with available transcript"
710-
)
711-
712688
# Wait for audio_streaming_persistence_job to complete and write MongoDB chunks
713689
from advanced_omi_backend.utils.audio_chunk_utils import wait_for_audio_chunks
714690

0 commit comments

Comments
 (0)