dialogue scheduling logic moved to backend