diff --git a/cmd/start.go b/cmd/start.go index 93aa9d38..58c586e4 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -341,6 +341,17 @@ var startCmd = &cobra.Command{ startStripeEnvironmentCheck(ctx, temporalClient, workerCfg.TaskQueue, database, stripeKeyFingerprint, logger) } + // The Stripe public-details read (merchant-disclosure D1): the + // business name, statement descriptor and icon members meet in + // Stripe's pages live in Stripe's settings and change without + // the console knowing, so every boot reads them again. At most + // four calls, started and not awaited, for the reason above. + if stripeMode != "" { + if _, err := stripewf.StartPublicDetailsRead(ctx, temporalClient, workerCfg.TaskQueue, stripewf.PublicDetailsTriggerBoot); err != nil { + logger.Error("failed to start the stripe public details read", slog.Any("error", err)) + } + } + // Set up the billing scheduled-change sweep — the backstop firing // path for due subscription scheduled changes. Period-end // cancellations also fire via the Stripe deletion webhook, so a diff --git a/docs/design-system.md b/docs/design-system.md index 96aeacf5..1d5d90eb 100644 --- a/docs/design-system.md +++ b/docs/design-system.md @@ -466,7 +466,7 @@ exists. | Part | Renders | Value | |---|---|---| | `pageHeader` | the page title, `h1.h2`, with the location trail above it (§5 "Trail": a Bootstrap breadcrumb rooted at the surface, then the rail entry and any real intermediate pages, then the current page unlinked; suppressed only on the surface's own root), an optional one-sentence lead below it, and one right-hand slot holding a muted count **or** one action control, always `btn-outline-secondary` and never filled (design D19); the only `
Products to add alongside your plan, or to use on their own.
{{ end }} +{{/* Billing facts (merchant-disclosure D5): the add-ons section's own + line, under its heading and lead, because the Add buttons can sit + screens below the Plans line. */}} +{{ template "billingFacts" .BillingFacts }}