Coupon editing in admin
Coupons get a proper edit page in admin, so a live campaign with a wrong end date or the wrong percentage can be corrected in place instead of deleted and recreated under a new code. Get-by-id and delete types ship in the SDK alongside it, for anyone driving coupons through the API.
Also shipped
- Collection editor polish: a clearer picker and tidier Details controls
Fixes
- [api]Return 400 for malformed JSON body in PATCH /products
- [api]Return 400 for malformed UUID path params instead of 500
- [api]Return JSON 404 for unmatched /api paths
- [auth]Recover sessions missing an active organization
- [design]Stop hydration mismatch and status-effect loop in builder
- [design]Treat a clean tree as a no-op when publishing
- [og]Resolve font path with fileURLToPath and 404 on missing entity
- [orders]Finish dedup column rename; harden abandoned carts query