ce52ae21a7
connect() intentionally returns True when Telegram polling starts in degraded mode (or a reconnect's require_progress=False skips the strict readiness gate), so background recovery can retry without failing gateway startup. But _mark_connected() published platform_state "connected" unconditionally, and the reconnect watcher in gateway/run.py stamped "connected" again right after -- so gateway_state.json was indistinguishable from a healthy adapter for as long as recovery took (observed ~11h on one seat). _send_path_degraded already tracks exactly this (set at polling generation start, cleared on the first confirmed getUpdates round-trip), so: - BasePlatformAdapter._mark_connected() takes a `degraded` flag and publishes "retrying" instead of "connected" when set. - TelegramAdapter passes its current _send_path_degraded into _mark_connected(). - The gateway/run.py reconnect watcher checks the same flag before overwriting the adapter's own status write. - _record_polling_progress() republishes "connected" the moment polling actually proves progress, so the state does not stay wedged at "retrying" until the next disconnect. Fixes #101391