🟠 Release v2.302.1
⭐⭐ Moderate • 7 commits • 84 files changedReceipt review now shows projected Points-for-Spend rewards before approval, helping admins make faster decisions with full reward visibility. Enhanced game visuals with bigger matching cards and flexible item shapes deliver better player engagement. Critical basketball game and image upload fixes improve admin reliability.
What’s New
- Points-for-Spend Projection – Admins see exactly how many points will be awarded when approving a receipt, calculated from eligible items and current community rates
- Receipt Review Redesign – Streamlined moderation interface with clearer action workflow and immediate reward visibility
- Bigger Matching Game Cards – Memory/matching game cards enlarged for improved visibility and easier tapping on mobile
- Flexible Catch Item Shapes – Catch game items no longer locked to aspect ratio, allowing varied visual designs
- Basketball Game Stability – Fixed critical save and image handling issues preventing reliable game configuration
- Image Upload UX – Uploading game images now properly marks the form as modified, preventing accidental data loss
Apps Updated
User App
— No changes
API
✓ Updated - Points-for-Spend projection engine
Admin
✓ Updated - Receipt review redesign & game config fixes
MCP Server
— No changes
Games
✓ Updated - Game card sizes & item rendering
Packages
✓ Updated - Models (Points-for-Spend projections)
Detailed Changes
Admin Dashboard – Receipt Review Redesign
Admin Dashboard – Receipt Review Redesign
Points-for-Spend Projection Engine
The receipt review interface now computes and displays projected Points-for-Spend bonuses before admin approval:- Instant visibility – Admins see the exact reward amount that will credit when they approve
- Contextual calculations – Projected amount factors in eligible items, community rate, and any spending caps
- Skip reason visibility – When bonus doesn’t apply, admins see why (fixed-mode action, PFS disabled, zero eligible items)
- Live community config – Projections use current community settings, not historical rates
amount– The projected points-for-spend bonus (eligible subtotal × rate, capped if configured)rate– Current community points-for-spend rate (e.g., 1 point per USD)cap– Spending cap if configured (e.g., max 50 points per receipt)
Receipt Review UI Overhaul
The moderation interface is now cleaner and faster:- Structured layout – Separated concerns: receipt image, detected items, audit trail, and reward projection each in dedicated sections
- Action-focused – Approve/reject buttons front-and-center with clear intent
- Validation verdict – Clear banners show whether receipt passes confidence validation
- Item audit – Detected items display with per-item prices for manual verification
Games – Visual Enhancements & Fixes
Games – Visual Enhancements & Fixes
Bigger Matching Game Cards (Memory Game)
The memory/matching game grid now displays significantly larger cards:- Improved visibility – Card size scaled up for easier item recognition
- Better mobile UX – Larger tap targets reduce mis-taps on smaller screens
- Responsive scaling – Grid adjusts card count per row to maintain proper sizing across viewports
Flexible Catch Item Shapes
Catch game items are no longer locked to fixed aspect ratios:- Creative freedom – Designers can make tall, wide, or square items as game aesthetics require
- Visual variety – Items can have natural shapes (tall bottle, wide plate) instead of forced square proportions
- Still performant – No impact to physics or collision detection
Basketball Game Critical Fixes
Fixed two blocking issues in basketball game configuration:- Save reliability – Game configs now save successfully without silent failures
- Image handling – Uploaded background images properly attach to game config
- Live preview – Preview modal no longer returns 404 when loading game assets
Admin Configuration – Image Upload UX
Admin Configuration – Image Upload UX
Image Uploader Form Dirty Tracking
Image uploads in game configuration now properly trigger the unsaved changes indicator:- All uploaders integrated – Dual-theme image uploader and all item-level image uploaders mark form as dirty
- Data loss prevention – Users see “unsaved changes” warning before navigating away after uploading images
- Consistent UX – Image changes behave identically to other form fields (name, description, settings)
API & Models
API & Models
Receipt-Review Candidate Enrichment
Receipt review candidates now include complete Points-for-Spend projection data:- New
PfsProjectionDtoModelattached to each review candidate - Projection includes eligibility status, skip reasons, and projected award amount
- Lazy-computed from current community config (matches what will actually credit on approve)
New Enum: PFS Projection Skip Reasons
When Points-for-Spend won’t apply, admins see one of these skip reasons:fixed-mode– Action configured for fixed rewards onlypfs-disabled– Community has Points-for-Spend disabledbonus-zero– No eligible items found on receipt
Administrator Highlights
- Points-for-Spend Projection – See projected rewards before approving receipts; know exactly what points users will receive
- Faster Receipt Review – Cleaner moderation interface with reward visibility, validation status, and detected items all visible at once
- Reliable Game Publishing – Basketball game saves now work reliably with proper image attachment and live preview
- Image Upload Safety – Game image uploads trigger unsaved changes indicator, preventing accidental data loss
- Flexible Game Designs – Catch items now support variable aspect ratios for creative visual variety
Technical Notes
The Points-for-Spend projection engine computes three key fields for each receipt-review candidate:- Eligible Subtotal – Sum of prices from items matching the action’s
eligibleItemsconfig (computed server-side when receipt was submitted) - Points-for-Spend Rate – Current community configuration (e.g., 1 point per USD)
- Projected Bonus –
amount = min(eligible_subtotal × rate, cap)where cap is optional
eligibleSubtotal and live community config. This ensures admins always see what will actually credit, even if rates changed since submission.
Receipt review redesign consolidates three previous components (receipt-review-detail-drawer, receipt-review-modal) into a new modal with co-located sections for image, items, audit, and rewards.
Usage Examples
Points-for-Spend Projection in Receipt Review
Scenario: User submits receipt with:- Dove soap: $8.99 ✓ (eligible)
- Shampoo (other): $12.50 ✗ (not eligible)
- Subtotal: $21.49
- Eligible subtotal: $8.99
- Community rate: 1 point/USD
- Projected bonus: 8.99 points ✓ Will credit on approve
- Projected bonus: 5 points (capped) ⚠️ Max reached
- Projected bonus: Skip —
pfs-disabled(no bonus will apply)
Catch Game Item Shapes
Before: All items were forced to square 1:1 aspect ratio. After: Designers can make items with natural proportions—tall water bottles, wide plates, varied shapes that enhance visual gameplay.Related Features
- Points-for-Spend Integration (Phase 1–3 complete; projection is Phase 2)
- Receipt Detection Phase A & B (per-item price extraction)
- Receipt Confidence Scoring (validation thresholds)
- Game Configuration & Publishing
- Community Points Settings
Known Limitations
- Projections use current community rates; historical rate changes are not reflected in past receipt reviews
- Spending caps are community-wide; no per-user spending limits yet
- Eligible items use simple string matching; product variants require exact name configuration
Contributors
@dchnudj3 commits • +297/-367 lines
@jamescockayne1 commit • +1902/-414 lines
@ZuhayrK001 commit • +321/-14 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 7 |
| Lines Added | +8,553 |
| Lines Removed | -1,068 |
| Files Changed | 84 |
| Size | Large |
| Complexity | Moderate ⭐⭐ |
v2.302.1 deployed on April 23, 2026


