- 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
- Implemented `_connectivity_confirmed` to verify session validity by opening the Mission panel, addressing two failure modes:
1. Bright full-screen transition frames that could falsely satisfy home checks.
2. Dead sessions due to server resets or concurrent logins, which appear as normal home screens until navigation is attempted.
- Improved detection logic by requiring a second verification of `_true_home` after a short wait, reducing the likelihood of coincidental false positives.
- Confirmed live against real scenarios, ensuring robust handling of session states during login.
- Added `login.py` to handle the login process, including detection of various states such as the title screen, network error notices, loading transitions, daily attendance cards, and the home screen.
- Integrated a recovery mechanism to relaunch the game if it gets stuck during loading.
- Updated `ba_daily.py` to include the login task in the default execution order, ensuring it runs first to navigate to the home screen before other tasks.
- Fixed a bug in the home detection logic to accurately identify when the user is on the true home screen.
- Live-tested and calibrated the login flow against real game states, confirming functionality and addressing any issues encountered during testing.