> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nudj.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# v2.407.0

> Released June 29, 2026

## 🔴 Release v2.407.0

⭐⭐⭐ Complex • 56 commits • 331 files changed

<Note>
  A massive release focused on Shopify monetization, community security, and platform polish. Introduces Shopify billing plans with entitlements, on-site content for product pages and checkout, community password protection, expanded Brand Memory, and significant performance improvements to wallet rendering.
</Note>

## What's New

* **Shopify Billing Plans & Entitlements** — Complete plan-based feature gating system with paywall modals for tier-restricted features
* **Points on Product Page** — Merchant-facing feature displaying point-earning opportunities inline with products on Shopify stores
* **Redeem at Checkout** — Streamlined checkout redemption UI integrated into Shopify checkout pages
* **Community Password Protection** — Secure password gates on branded communities with hashed storage and write-only validation
* **Brand Memory Expansion** — 5x larger text fields (2,000 → 10,000 characters) with real-time character counters
* **New Fraunces Serif Font** — Brand-new serif typography option for community customization
* **Wallet Performance** — Optimized predictions endpoint reducing load times on wallet views
* **Admin Engagement Creation** — Simplified UI for creating challenges, games, and leaderboards directly from the admin dashboard

## Apps Updated

<CardGroup cols={3}>
  <Card title="User App" icon="mobile">
    ✓ Updated - Password protection, mobile fixes, performance improvements
  </Card>

  <Card title="API" icon="server">
    ✓ Updated - Wallet hydration, contact email, reward fixes
  </Card>

  <Card title="Admin" icon="gear">
    ✓ Updated - Engagement creation, Brand Memory, cache refresh, UI polish
  </Card>

  <Card title="Shopify" icon="store">
    ✓ Updated - Billing, on-site content, font selector, security
  </Card>

  <Card title="Games" icon="gamepad">
    ✓ Updated - Touch controls for basketball
  </Card>

  <Card title="MCP Server" icon="robot">
    ✓ Updated - Community context injection
  </Card>
</CardGroup>

## Detailed Changes

<AccordionGroup>
  <Accordion title="Shopify — Monetization & On-Site Content" icon="store">
    ### Billing Plans & Entitlements

    * Introduced complete plan-based monetization system with Free/Premium/Max tier structure
    * Built entitlement validation layer that gates features based on active plan
    * Added paywall modal system that surfaces plan upgrade CTAs when users hit tier restrictions
    * Implemented `useEntitlement()` hook for simple feature access checks throughout the app
    * Created dedicated `/api/entitlements` endpoint for client-side entitlement queries

    ### On-Site Content Integration

    * **Points on Product Page**: Wired up product-page nudge showing point values for products, enabling merchants to highlight earning opportunities inline
    * **Redeem at Checkout**: Integrated redemption UI directly into Shopify checkout flow with real-time preview of redemption options
    * Both features now fully configurable in the Shopify admin UI with live preview capability

    ### Branding & Design

    * Added Fraunces (serif) font option to community font picker
    * Implemented live preview of font changes in the branding settings page
    * Enhanced radiogroup accessibility with proper ARIA labels and keyboard navigation
    * Polish: currency preset icon colors now match their label colors
    * Dashboard improvements: cleaned up home dashboard with better chart rendering and launch guide refinements

    ### Security & Infrastructure

    * Added HMAC verification for App Proxy requests with key identity validation (NJ-976)
    * Migrated session MongoDB client to lazy-loading to reduce connection pool overhead
    * Serialized concurrent environment file writes during dev startup to prevent race conditions
    * Upgraded Nodemailer from 7.0.12 to 9.0.1 for security patches

    ### Reporting

    * Fixed redemption rate reporting to show actual data (was displaying placeholder values)
  </Accordion>

  <Accordion title="User App — Community Access & Performance" icon="mobile">
    ### Community Password Protection

    * Introduced passwordprotected community feature with hashed, write-only storage (no plaintext hashing at read time)
    * Password gates render as full-screen branded overlays, replacing the entire app shell until unlocked
    * Only gates Live communities; Draft/scheduled/archived communities fall through to standard 404 handling to avoid disclosing non-public communities
    * Integrated throughout all community entry points (direct links, modals, modal-less routes)

    ### Wallet Performance

    * Optimized `wallet/predictions` to use new user-scoped `/me/predictions` endpoint instead of full-org queries
    * Implemented batched wallet hydration via cached `$in` reads with aggregation pipeline optimization
    * Reduced prediction queries from org-wide scans to single-user lookups, cutting typical wallet load times significantly

    ### Stability & Mobile

    * Fixed responsive layout of Sweep game on mobile devices (width/height constraints)
    * Improved action challenge link handling for stale/completed actions
    * Fixed wallet reward CTA button visibility (was hidden in some states)
    * Enhanced action submission error handling for incomplete submissions
  </Accordion>

  <Accordion title="API — Wallet, Rewards, Events" icon="server">
    ### Wallet Optimization

    * Added `/me/predictions` user-scoped endpoint for efficient wallet prediction loading
    * Implemented batched hydration pattern with cached `$in` reads and proper aggregation
    * Reduced database load on heavily-used wallet views

    ### Rewards & Feature Parity

    * Fixed rewards list endpoint returning 500 errors when reward supply fields were null
    * Optimized rewards hydration lookups to reduce N+1 queries
    * Improved reward display reliability across all platforms

    ### Contact & Communication

    * Added `contactEmail` field to community DTO for better email routing
    * Implemented synthetic-aware email delivery resolver (routes correctly for synthetic domains)
    * Enables better targeting of admin notifications

    ### Event Processing

    * Added processing status map to event model for event lifecycle tracking
  </Accordion>

  <Accordion title="Admin — Content Creation & Brand Control" icon="gear">
    ### Brand Memory Expansion

    * Increased all Brand Memory text field limits from 2,000 to 10,000 characters (5x expansion)
    * Added real-time character counters showing current usage vs. limit
    * Updated MCP tool schemas to reflect new limits

    ### Engagement Creation

    * New "Create" options in engagement section for quick challenge/game/leaderboard creation
    * Simplified workflow: admins can now create from the dashboard without navigating to separate pages

    ### Admin UI Improvements

    * Fixed sticky category header overlapping reward-ideas scrollbar
    * Implemented entity cache refresh after all mutations (challenges, achievements, rewards)
    * Updated rewards stat cards to refresh on mutation and sync display with rewards table
    * Fixed achievement language save timing to prevent premature view updates
    * Restored leaderboard create action that was missing in some UI states
    * Exposed anonymise leaderboard setting in community settings

    ### Community Management

    * Injected community context into MCP tool calls for better context awareness in AI operations
  </Accordion>

  <Accordion title="MCP Server — Context & Tool Improvements" icon="robot">
    * Implemented community context injection into all tool calls for richer AI context
    * Updated Brand Memory tool schemas to support 10,000-character limits
    * Maintained backward compatibility with all existing tool interfaces
  </Accordion>

  <Accordion title="Games" icon="gamepad">
    * Fixed Basketball start control to respond to touch input (mobile support improvement)
  </Accordion>

  <Accordion title="Testing & Quality" icon="test">
    * Added comprehensive E2E tests for community password protection flows
    * Added comprehensive E2E tests for Shopify billing plans and entitlements
    * Added deep economy/auth/retention journey E2E tests for user app
    * Added E2E tests for branding font selector live preview
    * Added E2E tests for Redeem at Checkout configuration and preview
    * Added E2E tests for Points on Product Page configuration and preview
    * Fixed flaky concurrent-upsert test in achievement handler
  </Accordion>

  <Accordion title="Database & Models" icon="database">
    * Extended Brand Memory DTO model to support 10,000-character limits
    * Added community password protection schema to user models
    * Added entitlement and billing plan models to Shopify integration layer
    * Extended event model with processing status tracking
    * Extended community DTO with contactEmail field
  </Accordion>
</AccordionGroup>

## Contributors

<CardGroup cols={4}>
  <Card>
    <img src="https://github.com/erek_d@me.com.png" alt="erek_d@me.com" style={{borderRadius: '50%', width: 48}} />

    **@[erek\_d@me.com](mailto:erek_d@me.com)**

    21 commits • +25,836/-3,206 lines
  </Card>

  <Card>
    <img src="https://github.com/solicshop@gmail.com.png" alt="solicshop@gmail.com" style={{borderRadius: '50%', width: 48}} />

    **@[solicshop@gmail.com](mailto:solicshop@gmail.com)**

    11 commits • +2,653/-439 lines
  </Card>

  <Card>
    <img src="https://github.com/dch@wenudj.com.png" alt="dch@wenudj.com" style={{borderRadius: '50%', width: 48}} />

    **@[dch@wenudj.com](mailto:dch@wenudj.com)**

    11 commits • +4,530/-543 lines
  </Card>

  <Card>
    <img src="https://github.com/ZuhayrK00.png" alt="ZuhayrK00" style={{borderRadius: '50%', width: 48}} />

    **@ZuhayrK00**

    5 commits • +4,329/-322 lines
  </Card>

  <Card>
    <img src="https://github.com/jamescockayne.png" alt="jamescockayne" style={{borderRadius: '50%', width: 48}} />

    **@jamescockayne**

    4 commits • +2,850/-158 lines
  </Card>
</CardGroup>

## Release Stats

| Metric        | Value       |
| ------------- | ----------- |
| Total Commits | 56          |
| Lines Added   | +39,340     |
| Lines Removed | −3,613      |
| Files Changed | 331         |
| Release Size  | Massive 🔴  |
| Complexity    | ⭐⭐⭐ Complex |

***

*v2.407.0 deployed on June 29, 2026*
