tenseleyflow/shithub / b39d4ca

Browse files

CHANGELOG: PRO08 Pro tier GA audit remediation entry

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
b39d4ca61fb3007321d531a8d51016b8b78db063
Parents
dc4dc18
Tree
2a486fd

1 changed file

StatusFile+-
M CHANGELOG.md 31 0
CHANGELOG.mdmodified
@@ -10,6 +10,37 @@ between minor releases.
10
 
10
 
11
 ## [Unreleased]
11
 ## [Unreleased]
12
 
12
 
13
+### Fixed
14
+
15
+- **PRO08 Pro tier GA audit remediation.** Thirteen audit findings
16
+  across the Stripe webhook layer, subscription state machine, and
17
+  Pro v1 feature gates: webhook receipts now record (subject_kind,
18
+  subject_id) for operator queries; the cross-kind price guard
19
+  refuses subscription events with empty `Items.Data`; concurrent
20
+  webhook replays serialize via a session-scoped advisory lock; the
21
+  snapshot CTE preserves grace-lock columns under `past_due`
22
+  transitions instead of wiping them; subscription-overwrite guard
23
+  refuses to repoint a principal's bound subscription id at a
24
+  different one; reverse-ordered (stale) Stripe events are dropped
25
+  via a new `last_event_at` column; `customer.subscription.deleted`
26
+  for unknown subjects is now a 200 no-op so Stripe stops retrying.
27
+  Charge refunds flip invoices to `status='refunded'` with UI
28
+  surfacing on both user and org billing pages (new
29
+  `billing_invoice_status='refunded'` enum value + `refunded_at`
30
+  column). Advanced branch protection gate rewired to fire on the
31
+  PRO01-ratified inputs (`prevent_force_push`, `prevent_deletion`,
32
+  `require_signed_commits`) rather than only on required status
33
+  checks — `require_signed_commits` is now exposed in the rule
34
+  form (visible toggle; underlying enforcement ships with commit
35
+  signing). Multi-reviewer denies carry a distinct upgrade copy
36
+  (`required-reviewers-multi-upgrade(-pro)`) and user-tier denies
37
+  point at `/settings/billing` instead of the org settings page.
38
+  `profilePinsRemaining` now respects the entitled cap for Pro users.
39
+  Migrations 0077 (`last_event_at`) and 0078 (`refunded` enum +
40
+  `refunded_at` column) ship with the fix. Audit closure in
41
+  `docs/internal/billing.md`; runbook updates in
42
+  `docs/internal/runbooks/stripe-billing.md`.
43
+
13
 ### Added
44
 ### Added
14
 
45
 
15
 - **Personal Pro tier feature gates (PRO07).** Pro v1 lights up four
46
 - **Personal Pro tier feature gates (PRO07).** Pro v1 lights up four