Pill treatment A, solid and tightened. Your three rows per channel, in your words. Status words Live and Quiet.
comment-pipeline.ts:783-810: shadow creates a waiting approve review item carrying the draft, sets the comment to held, and your accept sends the real reply through the review path. The code's own words: "Shadow no longer means 'only log what it would do'; it means 'post only what the operator approves, item by item'." So the row genuinely is waiting for your OK, and Facebook runs the identical CommentPipeline — fb-comment.service.ts:93 calls it "the SAME code path as Instagram".canary — the bot answers an allowlist of 3 numbers and silently ignores everyone else — and the quota figure cannot say that. It is the most misreadable state in the product and it is now invisible.facebook:dms gate and channel profile exist only so the Playground can simulate a turn. Instagram DMs, by contrast, already receive (ungated, stored) with the send arm built dark, which is why Instagram's row can honestly read Off while Facebook's has to read Not built.| Element | Status | What it needs |
|---|---|---|
| Status pill, all six states | free | connection, mute and silence are all on the payload |
| WhatsApp · Quality rating | free | already fetched by the old Home |
| WhatsApp · Campaigns | free | HomeToday.campaigns |
| Instagram · Comments reply, moderations | free | the two gates already exposed |
| WhatsApp · Messages (0 of 1,000) | free | the messaging quota the old Home already fetches |
| Canary, wherever it lands | owed | the mode is sent, the allowlist count is not |
| Instagram · Messages row | owed | instagram:dms gate |
| Comments and Messages counted apart | owed | today Instagram's figure is the comment stream alone |
| The sparkline and 3 of 4 captions | owed | a 14-point daily series per channel |
| The entire Facebook card | owed | a third member on HomeChannel, a facebook key in WEBHOOK_SOURCE and in HomeToday.messages, its errors, and both its gates |
| Facebook messaging, like Instagram | owed | Messenger ingestion + inbound adapter, then a sender. Not a gate flip |
Everything on the Instagram and WhatsApp cards is one small payload change away except the sparkline. Facebook is the whole job, and it is the one you named.