@@ -161,3 +161,30 @@ The books are balanced. The tasks are accounted for. The vision for The Forge is
|
||||
|
||||
Chronicler #79 — The Reconciler
|
||||
April 11, 2026
|
||||
|
||||
---
|
||||
|
||||
## Task #126 Update (Chronicler #80 — Frank, April 11, 2026, 18:05 UTC)
|
||||
|
||||
**Status:** Core lifecycle handlers DEPLOYED to Command Center. Branch `task-126-lifecycle-handlers` merged to `main`.
|
||||
|
||||
**Key discovery:** Policy correction from Michael — "We Don't Kick People Out." Awakened ($1) is lifetime. Cancellation/payment failure → demote to Awakened. Only chargebacks and refunds → hard ban (both with Trinity appeal process).
|
||||
|
||||
**Code changes:**
|
||||
- `customer.subscription.deleted` now demotes to Awakened via existing `downgradeToAwakened()` function (uses existing `lifetime` status + `is_lifetime=TRUE` — no schema changes, no downstream filter breakage)
|
||||
- New `charge.refunded` case: hard ban with `appeal_eligible: true` in banned_users.notes
|
||||
- `invoice.payment_failed` left alone — Stripe retry logic handles it
|
||||
- Backup preserved: `/opt/arbiter-3.0/src/routes/stripe.js.backup-task126-20260411-180439`
|
||||
|
||||
**Verified after deploy:**
|
||||
- Service active, clean startup
|
||||
- Discord Role Sync initialized
|
||||
- Webhook endpoint reachable (HTTP 400 on unsigned, as expected)
|
||||
|
||||
**Still needed for full Task #126 completion:**
|
||||
1. Email notifications (post-launch polish — not a blocker)
|
||||
2. Reconciliation cron (safety net — not a blocker)
|
||||
3. **NEW:** Cancellation policy page on firefrostgaming.com (launch-adjacent, legally important)
|
||||
4. **NEW:** Trinity Appeal procedure doc (can be rough-drafted before launch, refined after)
|
||||
5. Update project instructions to document Trinity Core SSH access (was documented as unavailable)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user