/** * `celilo subscribers status` — per-subscriber delivery summary. * * Reads recent `webhook.delivered` / `webhook.failed` events from * the local SQLite bus, groups by subscriber URL, surfaces totals * + success rate + last delivery + recent failures. Use after a * publish run to see whether webhooks actually landed, or as the * first stop when investigating a stuck propagation. */ import { formatStatus, loadSubscriberStatus } from '../../services/build-bus'; import type { CommandResult } from '../types'; export function handleSubscribersStatus(): CommandResult { let items: ReturnType; try { items = loadSubscriberStatus(); } catch (err) { return { success: false, error: `Could not load subscriber status: ${err instanceof Error ? err.message : String(err)}`, }; } if (items.length === 0) { return { success: true, message: 'No subscribers configured.\n\nAdd one with: celilo subscribers add --secret ', }; } const header = `Subscriber status (${items.length})`; return { success: true, message: `${header}\n\n${formatStatus(items)}` }; }