- SponsorHelper queries FoxCloud /mobile/me by Telegram ID (X-Tg-Id) and caches is_sponsor per account
- Self profile shows a sponsor badge next to the name when is_sponsor is true
- Reactive refresh via new NotificationCenter.sponsorStatusUpdated global event
Verified: TMessagesProj compileReleaseJavaWithJavac succeeds.
- XrayServers now holds a structured server list with per-entry name and local port
- XrayController builds built-in proxies from the list (createBuiltinProxies/byPort)
- ProxyInfo gains builtinName; proxy list shows the configured name
- Built-in proxies keep the same protection: read-only, not editable/shareable
- Credentials stay in git-ignored XrayServers.java; template updated
Verified: TMessagesProj compileReleaseJavaWithJavac succeeds.
- UpdateHelper now fetches latest release from GitHub API instead of helper bot
- Compares dotted version names, prefers arm64 APK asset, falls back to release page
- Keeps TL_help_appUpdate output contract so existing update UI works unchanged
- Decouples ConfigHelper from update check