- cafe.py: room 2 now invites the lowest-affection candidate instead of
highest (room 1 unchanged), plus OCR'd invited-student name logging
- exit_game.py: alert (AP_ALERT: log tag, picked up by ba_cron_run.sh's
Discord alerting) if AP is still unspent above threshold when the game
closes
- login.py: re-check window_exists() after the stabilization wait to catch
a startup window-flicker race that could crash a run
- config.py/mapping.md: supporting constants and reference-mapping updates
Also rewrites plan.md: retires the phase-by-phase changelog (now fully
superseded by CLAUDE.md's own documentation) down to forward-looking
backlog items, and adds a performance-improvement plan from a cron-log
time analysis (lesson.py's per-cell screenshot redundancy, event_sweep's
multi-call design).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Added _loading_buffer_visible function to detect the loading spinner badge
- Updated _wait_for_home to utilize the new detection for early recovery
- Introduced configuration options for loading buffer detection parameters
- Improved handling of stuck loading state to reduce wait time
fix(cron): make ba_cron_run.sh executable
- Changed file mode of ba_cron_run.sh to 755 to ensure it is executable
- Verified that cron can now execute the script as intended
fix(navigation): prevent crash in return_to_home when window disappears
- Added guard to return_to_home to check if the game window exists before focusing
- Ensured robustness in cleanup path during game exit