10d4a4facf
The X-Plane socket fired both 'error' and 'close' on a failed connect, each scheduling a reconnect — so attempts doubled every cycle, leaking sockets/timers until the process OOMed (~3 min with the sim down). Guard onDown so each socket schedules exactly one reconnect (and tear the dead socket down). Also log a one-shot resolve-probe (GET /datarefs?filter[name]=airspeed…) on connect so a Web-API version/format mismatch is visible in the log. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>