whisper-money/lang
Víctor Falcón 3e97ce042b fix(subscriptions): address review of the trial/pricing experiment
- Refund is now idempotent and crash-safe: stamp refunded_at right after the
  refund succeeds, then cancel + disconnect best-effort in a try/catch (logged),
  and bail if already refunded. Drop the no-op DB::transaction.
- Funnel report attributes users by the variant Pennant actually served (eager
  loaded per chunk) instead of recomputing the formula, so it can't drift from
  what users experienced.
- Paywall states the exact amount charged today for pay_now (yearly upfront).
- Throttle + block-demo middleware on the refund route; drop the inline check.
- resolve(?User) nullable to match sibling features; resolve the variant once in
  offerFor; add French translations.
2026-06-27 16:10:15 +02:00
..
en feat: Spanish localization (#74) 2026-02-08 11:58:08 +01:00
es feat: Spanish localization (#74) 2026-02-08 11:58:08 +01:00
fr feat(i18n): add French translation support (#532) 2026-06-15 19:15:43 +02:00
en.json feat(cashflow): rework summary cards into net + saved/invested (#465) 2026-06-01 11:37:28 +02:00
es.json fix(subscriptions): address review of the trial/pricing experiment 2026-06-27 16:10:15 +02:00
fr.json fix(subscriptions): address review of the trial/pricing experiment 2026-06-27 16:10:15 +02:00