The C treatment you picked, corrected. Two things changed because the code said so, not because I preferred it: the Messages tile now shows real arrivals whatever the gate says, and the single verdict is replaced by one line per surface, because a channel has up to four independently gated surfaces and one word was silently lying about three of them.
You asked exactly which. These are the keys of the ChannelGates interface. Exposed means the Home payload carries it today — I said "two" earlier, which was wrong; it is three.
whatsapp — reply to messages · off / canary / live, plus an allowlist of numbersexposedinstagram:comments — reply to commentsexposedinstagram:comments:moderation — hide or delete bad comments · defaults to shadowexposedinstagram:dms — answer DMs · ships off, send arm built darknot exposedinstagram:comment_to_dm — open a DM from a comment · ships offnot exposedfacebook:comments — reply to comments · ships shadownot exposedfacebook:comments:moderation — hide or delete · ships shadownot exposedfacebook:dms — answer DMs · no pipeline exists at allnot exposedfacebook:comment_to_dm — open a DM from a comment · dark, the token has no messaging scopenot exposedA lead line for reachability, which genuinely is one fact. Then the counts. Then one row per surface the channel actually has — WhatsApp has no comments, so it has no comment rows.
Receiving. Last thing arrived 4 minutes ago.
Receiving. Last thing arrived 2 hours ago.
Switched off by Meta. Nothing has arrived for 3 days, and nothing can be sent. You will not be alerted again.
fb-comment.service.ts, an admin controller, standby handling, and four of the nine gates. And it is invisible to this screen entirely, for four separate reasons, none of which is a design choice:
WEBHOOK_SOURCE = { whatsapp, instagram } — no Facebook key, so no webhook tracking, no silence detection and no mute for Facebook.
HomeToday.messages has WhatsApp and Instagram only — no Facebook counts.
HomeChannel is a union of two — no Facebook card can exist.
errors24h is keyed off the same webhook map — no Facebook errors.
home.service.ts and home-api.ts, and it is the change I would make first — it is the difference between a channel being live and a channel being watchable.