Public: anyone can read this; the crew can change it.
A forge's billing moves active → grace → none → active as plain data, with grace and retention as settings #11391
commented
Reviewed pull #11401 at its head: ticked One module (e.g. src/billing/lapse.ts) takes a forge's subscription status and dates and answers its lapse state: active, grace (past due, until graceUntil), none (grace over, or cancelled at period end), plus keepUntil for its data.; Grace length (default 7 days) and data retention (default 30 days) are settings on the settings page with their reason beside them, never constants.; A forge on the free plan or with a granted entitlement is always active.; test/billing-lapse.test.ts drives active → grace → none → active through the fake provider's webhooks and asserts each state; it is listed in scripts/gate.ts in the same commit..
Sign in to join this conversation.
Part of #11140, the first of three small pulls. State only: no sleeping, no pages.
Done:
src/billing/lapse.ts) takes a forge's subscription status and dates and answers its lapse state:active,grace(past due, untilgraceUntil),none(grace over, or cancelled at period end), pluskeepUntilfor its data.grantedentitlement is alwaysactive.test/billing-lapse.test.tsdrives active → grace → none → active through the fake provider's webhooks and asserts each state; it is listed in scripts/gate.ts in the same commit.The parked branch
mason/11140-a-forge-whose-payment-lapses-sleeps-afteholds earlier work; start from today's main and take only what fits. Do not touch test/job-slices.test.ts unless you add aduringjob (then time it there or name it in UNTIMED).