Following up on this, I made sweeping changes to the way vacation mode works.
Notably:
- The code for exiting vacation mode was optimized so even if you have 10k+ reviews it should process them more quickly and not timeout (which was one potential edge case that caused issues with vacation mode)
- The calculations for how your reviews are changed were adjusted. Instead of moving the reviews back the amount of your vacation mode, they do a more dynamic calculation using progress data (streak, time and wrong/right) from that last time they were reviewed + the time in vacation mode to set when they should be due.
- The one edge case with this implementation is that if you aggressively use vacation mode it wonāt give the desired results. We are discussing internally a better solution that avoids this edge case.