Merge pull request #51 from marcogll/fix/bot-unresponsive-13175179767099529004

This commit fixes a critical bug in the FlowEngine that caused all co…
This commit is contained in:
Marco Gallegos
2025-12-21 15:12:59 -06:00
committed by GitHub

View File

@@ -115,13 +115,21 @@ class FlowEngine:
state['collected_data'][f"step_{current_step['step_id']}_response"] = response_data state['collected_data'][f"step_{current_step['step_id']}_response"] = response_data
next_step_id = state['current_step_id'] + 1 # Find the index of the current step to determine the next one robustly
next_step = next((step for step in flow['steps'] if step['step_id'] == next_step_id), None) steps = flow['steps']
current_step_index = -1
for i, step in enumerate(steps):
if step['step_id'] == state['current_step_id']:
current_step_index = i
break
if next_step: # Check if there is a next step in the list
self.update_conversation_state(user_id, state['flow_id'], next_step_id, state['collected_data']) if current_step_index != -1 and current_step_index + 1 < len(steps):
next_step = steps[current_step_index + 1]
self.update_conversation_state(user_id, state['flow_id'], next_step['step_id'], state['collected_data'])
return {"status": "in_progress", "step": next_step} return {"status": "in_progress", "step": next_step}
else: else:
# This is the last step, so the flow is complete
final_data = state['collected_data'] final_data = state['collected_data']
self.end_flow(user_id) self.end_flow(user_id)