Skip to main content

🟠 Release v2.297.4

⭐⭐⭐ Complex • 9 commits • 88 files changed
Smart 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

  • 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
  • Receipt Detection Phase A: Per-item price extraction from GPT receipt analysis
    • Updated receipt detection schema to include price field per item
    • New confidence validation rule: price-total reconciliation (15% tolerance)
    • One-time migration wraps legacy string items as { name, price: 0 } objects
  • Receipt Detection Phase B: Eligible subtotal computation
    • New eligibleItems: string[] field on receipt detection action config
    • Server-side computation of eligibleSubtotal based on extracted prices
    • Prepares foundation for points-for-spend rate integration
  • MongoDB URI now properly passed to MCP server Vercel deployments
  • 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-boundaries utility 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-input component for configuring eligible product names
    • Updated action schemas for receipt detection attributes
    • Prepares admin forms for eligibility configuration

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-side eligibleSubtotal 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:
User submits receipt:
  - Dove soap: $8.99
  - Shampoo (other brand): $12.50
  - Total: $21.49

Admin configured eligible items: ["Dove"]
System computes: eligible subtotal = $8.99
Points awarded: $8.99 × community rate (e.g., 1 point/USD) = 8.99 points

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 date
  • 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

ZuhayrK00@ZuhayrK003 commits • +392/-153 lines

erek_d@me.com@erek_d@me.com2 commits • +4,728/-479 lines

jamescockayne@jamescockayne2 commits • +2,177/-88 lines

dch@wenudj.com@dch@wenudj.com1 commit • +1/-1 lines

Release Stats

MetricValue
Total Commits9
Lines Added+7,482
Lines Removed-696
Files Changed88
SizeLarge
ComplexityComplex ⭐⭐⭐

v2.297.4 deployed on April 21, 2026