🟠 Release v2.297.4
⭐⭐⭐ Complex • 9 commits • 88 files changedSmart receipt scanning with per-item price extraction, accurate dashboard analytics with timezone support, and essential quality-of-life fixes across admin configuration and game discovery.
What’s New
- Receipt Detection Phase A & B – Extract per-item prices from receipts and compute eligible subtotals for points-for-spend integration
- Dashboard Timezone Bucketing – Analytics dashboards now correctly respect organization timezone for accurate day-level reporting
- Game Discovery Everywhere – Games appear on discover tab and widget even when the games tab is disabled
- Game Config Improvements – Image uploads in game configurations now properly trigger unsaved changes indicator
- Shop Navigation & Settings Restored – Feature flag visibility and shop navigation restored in admin panel
Apps Updated
User App
✓ Updated - 2 changes
API
✓ Updated - Receipt detection infrastructure
Admin
✓ Updated - 5 critical fixes
MCP Server
✓ Updated - MongoDB URI configuration
Games
— No changes
Website
— No changes
Detailed Changes
User App
User App
- Games now appear on discover tab and community home widget when games tab is disabled
- Fixed silver podium CSS variable styling with proper HSL wrapping
API
API
- Receipt Detection Phase A: Per-item price extraction from GPT receipt analysis
- Updated receipt detection schema to include
pricefield per item - New confidence validation rule: price-total reconciliation (15% tolerance)
- One-time migration wraps legacy string items as
{ name, price: 0 }objects
- Updated receipt detection schema to include
- Receipt Detection Phase B: Eligible subtotal computation
- New
eligibleItems: string[]field on receipt detection action config - Server-side computation of
eligibleSubtotalbased on extracted prices - Prepares foundation for points-for-spend rate integration
- New
- MongoDB URI now properly passed to MCP server Vercel deployments
Admin
Admin
- Dashboard Analytics Fix: Day buckets now respect organization timezone
- All analytics time-series endpoints updated to use org-scoped date boundaries
- Fixes misalignment between UI day labels and server-computed buckets
- Includes
to-org-day-boundariesutility for consistent timezone handling
- Game Config Improvements: Image uploads mark form as dirty
- Dual theme image uploader and all item image uploaders now trigger form validation
- Users see unsaved changes indicator when images are uploaded
- Prevents accidental loss of configuration changes
- Settings & Navigation: Feature flags and shop navigation restored
- Feature flag visibility in settings restored to original state
- Shop navigation menu items re-enabled in admin sidebar
- Resolves regression from previous deployment
- Receipt Review Admin UI Prep (Phase B foundation):
- New
eligible-items-inputcomponent for configuring eligible product names - Updated action schemas for receipt detection attributes
- Prepares admin forms for eligibility configuration
- New
Administrator Highlights
- Dashboard Timezone Accuracy – Analytics now reflect your organization’s timezone, eliminating off-by-one-day discrepancies in challenge completion and member activity reports
- Receipt Per-Item Analysis – GPT now extracts individual item prices from receipts, enabling smarter fraud detection and eligible spend calculations
- Eligible Items Filtering – Configure which products count toward points-for-spend rewards independently from validation gates (e.g., require Dove but count all Dove variants)
- Game Config Save Detection – Image uploads in game customization now properly indicate unsaved changes, preventing lost work
- Settings Panel Restored – Feature flag management and shop navigation controls are back and fully functional
End User Highlights
- Games Always Discoverable – Find games on the community discover page and widget regardless of navigation settings
- Better Visual Feedback – Improved display of reward redemptions and podium visuals
- Accurate Reward Tracking – Points from receipt submissions now calculated with precise eligible-item subtotals
Technical Notes
This release completes Receipt Detection Phases A & B of the points-for-spend integration sequence. The OCR system now extracts per-item prices and validates them against declared totals (±15% tolerance). A server-sideeligibleSubtotal field computes spending on configured eligible items, preparing the foundation for Phase C (rate application) in the next release.
The dashboard analytics fixes address a critical timezone bucketing issue where timestamps were not being converted to org-local time before computing day boundaries. All time-series analytics (WAU, community activity, new member trends) now use consistent to-org-day-boundaries() utility.
Usage Examples
Receipt Detection: Per-Item Extraction
When an admin configures a receipt detection action with points-for-spend mode:Dashboard Timezone Fix
Before: Challenge completed at 11:50 PM PST on April 20 was bucketed into April 21 on dashboard (UTC midnight) After: Same challenge appears in April 20 bucket, matching user’s local dateRelated Features
- Points-for-Spend Integration (Phase C coming next)
- Admin Receipt Review Queue (Phase D/E)
- Receipt Confidence Scoring
- Community Points Configuration
- Challenge Action Configuration
Performance & Reliability
- Confidence-based routing ensures low-confidence receipts go to admin review instead of auto-processing
- Timezone bucketing now uses indexed date fields for sub-millisecond analytics queries
- Legacy receipt data automatically migrated with zero downtime
Known Limitations
Phase 1 – Points-for-Spend Integration:- Double-credit exposure: Users can earn points via both Shopify orders and receipt submissions for the same purchase (cross-system dedup in Phase 3)
- Per-product multipliers ignored for receipt-sourced points (future enhancement)
- Scheduled promotions not applied to receipt calculations
- No spend caps or daily limits
Contributors
@ZuhayrK003 commits • +392/-153 lines
@jamescockayne2 commits • +2,177/-88 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 9 |
| Lines Added | +7,482 |
| Lines Removed | -696 |
| Files Changed | 88 |
| Size | Large |
| Complexity | Complex ⭐⭐⭐ |
v2.297.4 deployed on April 21, 2026



