242ec45f45
For adapter plugins, ``PlatformEntry.check_fn`` doubles as a lazy installer: calling it pip-installs the platform SDK as a side effect (see e.g. ``plugins/platforms/discord/adapter.py::check_discord_requirements``). The enablement sweep in ``_apply_env_overrides`` called ``check_fn`` for every registered plugin platform unconditionally, so a single ``load_gateway_config()`` — which the desktop/dashboard readiness probe ``GET /api/status`` awaits synchronously — pip-installed Discord, Telegram, Slack, Feishu and Dingtalk even when the user configured none of them (``platforms: none``). On a slow or restricted network the installs ran long enough to block the event loop past the desktop's readiness timeouts, so the app timed out, killed and re-spawned the backend, and boot-looped (stuck at 94%). Consult the cheap ``is_connected`` credential check FIRST and only run the install-triggering ``check_fn`` for platforms that are already enabled or actually configured. Auto-enable-by-credentials is unchanged: a platform with its token set still gets its SDK installed and enabled.