After app restart, the ControlChannel would fail to connect if the gateway
wasn't ready yet, entering a .degraded state. When the gateway later became
available (.running or .attachedExisting), nothing triggered a reconnection
attempt, leaving the menubar icon in a "sleeping" state despite the gateway
being functional.
Now, when gatewayManager.status changes to .running or .attachedExisting
and the ControlChannel is in .degraded state, we automatically call
refreshEndpoint() to attempt reconnection.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>