Backend environment for match hosting for lance.blue

fix(container): retry the observer's socket, not just its handshake master

AbstractClient.connect() opens once and never retries, and MatchWatcher called it before its wait loop - so a single attempt, fired while MatchHost was still loading its unit cache, decided every match. The observer never joined and no turn report has ever been uploaded. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


+32 -3
1 changed file