========================================
[Sun Feb  8 23:49:37 AEDT 2026] CC VPS triggered by Rivet
========================================

Task:
Fix bug: Stripe webhook doesn't pre-check match status in api/webhooks/stripe/route.ts:94-107. Currently updates to 'hired' without checking current status. Replayed/out-of-order webhooks could corrupt state. Add .neq('status', 'hired') filter to the update query to prevent updating already-hired matches.
----------------------------------------

**Fixed.** Added `.neq('status', 'hired')` filter to the match update query in the Stripe webhook handler (line 102). This prevents replayed or out-of-order `payment_intent.succeeded` events from overwriting the `hired_at` timestamp or other state once a match is already hired.

**Changes:**
- `src/app/api/webhooks/stripe/route.ts:102` — Added status guard to match update query

**Result:** Built, restarted app, committed, and pushed.

----------------------------------------
[Sun Feb  8 23:50:47 AEDT 2026] Task finished (exit code: 0)
