Two failures observed 2026-09-02 that stopped the leech cycle completing.
min_players default 3 -> 1. A public Baal game spawns at 1-2 players and fills
within seconds, so a 3-player floor skipped every real game: all listed games
read 1-2p and were passed over, the fallback candidate's join never completed,
and the cycle failed until the controller's circuit breaker restarted D2R. The
band was always meant to be a preference rather than a gate — the in-game checks
(portal wait, party size, XP idle) are what decide whether a game is worth
staying in, so the floor was doing nothing except rejecting valid games.
LOBBY button detection hardened. Its template is the one that goes stale: after
the mod font was removed it scored 0.70 against a 0.8 threshold, so every
save-and-exit failed with "not at character select" while the screen was plainly
showing it. Now:
- retry the detect three times before giving up
- fall back to a coordinate click on the known LOBBY position when the template
never resolves, gated on at_character_select() so we only click blind when we
have independent confirmation of the screen
- retry open_lobby once on a transient miss
The "no character selected" path is preserved: LOBBY and PLAY are inert until a
character is highlighted, so that still reports the real cause instead of
burning the timeout on a misleading "lobby did not open".
Also refreshes config/fg_daily_estimates.json (generated data, updated by the
bot's own pricing pass).
Co-Authored-By: Claude Opus 5 <[email protected]>