fix(vouchers): reserve claims atomically before reward dispatch
This commit is contained in:
1 parent
4b88c6955b
commit
8e54cdbc6a
4 files changed
+435
-128
No files matched your search
@@ -27,7 +27,7 @@ The current UI route matrix cannot establish operation-level parity.
|
||||
|
||||
| Area | Evidence / required follow-up |
|
||||
| --- | --- |
|
||||
| Voucher redemption | `src/actions/voucher.ts` reads eligibility, inserts used-row, delivers currency, then updates usage in separate operations. No atomic cap reservation. A failed reward can leave a consumed voucher. |
|
||||
| Voucher redemption | Claim reservation now locks the voucher and duplicate claim, commits usage/cap with an audit intent, then dispatches the reward. Failed or uncertain dispatch retains the reservation and returns the audit reference. Automatic recovery of reward increments remains intentionally unavailable without emulator acknowledgment/idempotency. |
|
||||
| Currency delivery | `src/lib/services/send-currency.ts` uses RCON followed by database fallback; socket dispatch is not emulator acknowledgment. Do not invent exactly-once guarantees or blindly replay increments. |
|
||||
| Reason enforcement | Reason propagation is fixed for the named paths, but operation-level required-reason policies and denied/failure auditing still need a complete cross-entrypoint inventory. |
|
||||
| Functional parity | Compare each query and mutation in Content, Economy, Hotel, People, System and Operations with retained legacy API/actions. A registered handler is not proof of complete functionality. |
|
||||
|
||||
Reference in new issue
Block a user