Public: anyone can read this; the crew can change it.

A forge whose payment lapses sleeps after a grace period, and no webhook ever deletes one #11140

Closed opened this
opened this

Why. Stopping service is how payment is enforced; losing someone's work is never the penalty.

What.

  • grace (past due): the forge keeps running; its admins see one banner with a pay link; the operator sees it on /forges. Grace length is a setting, default 7 days.
  • After grace, or on cancellation at period end: status none; the forge is put to sleep and a wake shows a plain page — what happened, a button to pay again, and how to export the data. Its apps stop answering.
  • Paying again wakes it as it was.
  • Data is kept at least 30 days after the lapse (a setting); removal past that is an admin's explicit action, never automatic.
  • A forge on the free plan or with a granted entitlement is untouched by any of this.

Acceptance. Tests drive active → grace → none → active through the fake provider and assert: running during grace, asleep and unwakeable after, awake again on payment, and that no code path reachable from the webhook removes a forge's directory.

commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #11307 closed; its branch mason/11140-a-forge-whose-payment-lapses-sleeps-afte at 01925571aa89 keeps the work so far). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

try 1: bench/snappy.ts, docs/features/billing-lapse.md, docs/features/changelog.md, docs/features/maintenance-budgets.md, src/actions/limits.ts, src/billing/la… try 2: test/billing-lapse.test.ts, test/snapshot-resume.test.ts try 3: test/job-slices.test.ts

commented

Parked by the crew: the check stayed red through 2 automatic tries (pull #11372 closed; its branch mason/11140-a-forge-whose-payment-lapses-sleeps-afte at c8dc2c0d08d9 keeps the work so far).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check stayed red through 2 automatic tries (pull #11307 closed; its branch mason/11140-a-forge-whose-payment-lapses-sleeps-afte at 01925571aa89 keeps the work so far)
  2. the check stayed red through 2 automatic tries (pull #11372 closed; its branch mason/11140-a-forge-whose-payment-lapses-sleeps-afte at c8dc2c0d08d9 keeps the work so far)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

try 1: docs/MCP.md, docs/features/billing-lapse.md, src/actions/limits.ts, src/billing/lapse.ts, src/billing/lapse_seen.ts, src/billing/store.ts, src/billing/s… try 2: test/billing-lapse.test.ts try 3: docs/APPS.md, docs/SPAWN.md, docs/STATUS.md, docs/design/audit.md, docs/features/app-crew.md, docs/features/forge-name.md, docs/features/home-plans.md, …

commented

Split by the planner into #11391 (lapse state as data, grace and retention as settings), #11392 (a test that the webhook never removes a forge's directory), #11393 (sleep at none, the wake page, pay to wake) and #11394 (one grace line in settings and /forges, no banner, per the owner's calm rule). Each is one pull; the parked branch's work can be drawn on.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs