docs/panels/telegram-intel.mdx
The Telegram Intel panel (internal id telegram-intel) mirrors a curated set of open-source Telegram channels into the dashboard: topic-tabbed, freshness-aware, and relay-status-aware so the panel can distinguish "no recent traffic" from "relay unavailable".
A row of topic tabs at the top with a feed list below:
TELEGRAM_TOPICS in src/services/telegram-intel. The default tab is all.TelegramItem[] for the active topic, each showing channel, message timestamp, and message body (with sanitizeUrl applied to any links).LIVE_THRESHOLD_MS = 600_000) are flagged as live.relayEnabled = false), the panel indicates degraded mode rather than showing an empty list.Panel id is telegram-intel; canonical component is src/components/TelegramIntelPanel.ts. Title from i18n (panels.telegramIntel); config name: "Telegram Intel". Default row span is 2 — the panel is dense.
priority: 2). The full-variant registration layers premium: 'locked' on desktop (_desktop && { premium: 'locked' as const }), so the panel is free on web and PRO-locked on desktop. Not present in the tech, finance, commodity, or happy variants. Source: 'telegram-intel' in FULL_PANELS of src/config/panels.ts.@/services/telegram-intel — backed by /api/telegram-feed which proxies to a Railway relay that pulls the curated channel set. Channel coverage is curated rather than user-configurable.| Surface | Endpoint | Notes |
|---|---|---|
| Panel relay path | GET /api/telegram-feed | Current browser path for the topic-tabbed feed. |
| Generated service RPC | GET /api/intelligence/v1/list-telegram-feed | Direct IntelligenceService RPC with topic, channel, and limit query parameters; fetches the same Railway relay. |
Driven by the relay's poll cycle; the panel reads on mount and on relevant external refresh triggers.
Free on web; PRO-locked on desktop. Registered without premium on the web path; the desktop variant spreads premium: 'locked' via the _desktop && clause.
/api/telegram-feed — relay proxy documented under Proxies.