This commit addresses two critical issues:
1. Completion Bug (activities 30-37):
- Final steps were looping forever, preventing activity completion
- Fixed by removing next_section_and_step from completion transitions
- Kept off_topic transition looping to avoid validator terminal step errors
- Activities now complete properly when users give valid final answers
2. Activity37 Bucket Logic:
- Changed "close" bucket to retry same step instead of advancing
- Only "correct" bucket now advances to next step
- All other buckets (close, incomplete, wrong_language, etc.) retry
- This ensures students must get correct answers to progress
Technical Details:
- Final steps are not considered "terminal" if at least one transition
has next_section_and_step (validator requirement)
- Off-topic transitions loop back to allow another attempt
- Completion happens when get_next_step() returns None, None
Validation:
- All 8 activities pass activity_yaml_validator.py
- No errors or warnings
Affects: activity30-37 (all new merged activities)