🔴 Massive Release v2.387.5
⭐⭐ Moderate Complexity • 51 commits • 466 files changedv2.387.5 is a comprehensive platform update delivering major UX improvements, new gamification features, and significant Shopify integration enhancements. Key highlights include a rebuilt admin command palette with faster search, a new Runway 3D plane-landing game, per-step achievement insights for better engagement tracking, Shopify multi-language support, and a suite of stability and safety improvements. This release strengthens the core Nudj platform while expanding customization options for Shopify partners.
What’s New
- Rebuilt Admin Command Palette — ⌘K navigation now features canonical sidebar integration, expanded search results, and significantly faster queries for instant platform access
- Runway 3D Game Launch — New immersive plane-landing game adds visual variety to challenge libraries with 3D graphics, dynamic difficulty levels, and brand-customizable aircraft
- Achievement Insights Breakdown — Per-step progress charts pinpoint exactly where users drop off in multi-step achievements, enabling data-driven challenge refinement
- Shopify Multi-Language Support — Loyalty platform now supports French and additional languages via react-i18next, enabling international Shopify storefronts
- Shopify Storefront Widget Verification — Comprehensive end-to-end harness testing verifies loyalty account, FAB, checkout drawers, and referral widgets across all storefronts
- Destructive Action Safety — Type-to-confirm guards prevent accidental deletion of loyalty settings, rewards, and customer configurations
- Optimized Cache Invalidation — API now supports array-valued cache tags for efficient batch operation invalidation and improved performance
- Shopify Data Synchronization — Loyalty state now writes back to Shopify customer metafields for unified customer data across platforms
- Enhanced Observability — Shopify money-path logging now includes detailed error context with structured traces for faster incident response
Apps Updated
User App
✓ Updated - 5 changes
API
✓ Updated - 6 changes
Admin
✓ Updated - 2 changes
Shopify
✓ Updated - 19 changes
Games
✓ Updated - 5 changes
MCP Server
— No changes
Detailed Changes
User App – Navigation & Performance
User App – Navigation & Performance
Admin Panel – Discovery & Insights
Admin Panel – Discovery & Insights
Command Palette Rebuild
- ⌘K Canonical Navigation (NJ-955) — Completely rebuilt command palette integrates with the canonical sidebar navigation. Expanded search now includes pages, sections, and actions with faster relevance ranking. Enhanced keyboard navigation and recents tracking provide power-user shortcuts.
- Per-Step Progress Breakdown (NJ-1003) — Achievement Insights now display step-by-step completion rates in a visual chart, showing exactly where users complete or abandon multi-step challenges. Enables data-driven challenge optimization.
- Email Case-Insensitive Lookup (NJ-1174) — OTP token verification now handles email case variations, ensuring admins can log in regardless of email capitalization.
Games – New Game Type & Customization
Games – New Game Type & Customization
Runway 3D Game
- Runway Game Launch (NJ-999) — New immersive plane-landing game featuring 3D graphics, dynamic difficulty progression, brand-customizable aircraft colors/patterns, and variable scoring multipliers. Harness-tested for all game variants with comprehensive coverage.
- Editable Game Brand Colors (WS-566) — Game brand colors now map from
theme.accentwith per-game overrides, allowing admins to customize game appearance without modifying theme settings.
- Memory Game Score Transfer Fix (NJ-1169) — Fixed hang when memory game scores transfer at the end of gameplay. No longer blocks subsequent challenge progression.
- Replay/Retry Removal (NJ-1169) — Removed non-functional “Replay” and “Retry” buttons from memory game-over modal, eliminating confusion about unavailable features.
- Sound Storage Permission Handling (NUDJ-0000) — Gracefully handle denied browser sound storage permissions without crashing game initialization.
Shopify Loyalty Platform – Integration & Safety
Shopify Loyalty Platform – Integration & Safety
Internationalization & Localization
- React-i18next Integration (NJ-1028) — Wired react-i18next across Shopify app. Community Profile page, loyalty settings, and onboarding flows now fully support French and additional languages with locale detection.
- Widget Verification Matrix (NJ-909) — Comprehensive end-to-end harness test suite verifies all storefront widgets: loyalty account page, floating action button (FAB), points-at-checkout drawer, referral nudge, points-earning product cards, and ways-to-earn sections. Blocks regressions with matrix-based coverage.
- App Proxy Authentication Fix (NJ-909) — Fixed App Proxy authentication on widget endpoints, ensuring storefront widgets load securely behind Shopify’s auth layer.
- Shopify Metafield Sync (NJ-830) — Loyalty state now writes back to Shopify customer metafields, enabling unified customer data across Nudj and Shopify admin. Customers see their points, tier, and activity in Shopify’s native admin.
- Deduped Loyalty Settings (NJ-828) — Collapsed duplicate loyalty settings screens and consolidated referral program configuration into a single, streamlined admin experience. Theme-editor pointer nudges guide admins to customize appearance.
- Optimistic Concurrency on Points Config (NJ-1026) — Points-config write paths now include optimistic concurrency guards, preventing race conditions when multiple managers edit settings simultaneously.
- Type-to-Confirm Destructive Actions (NJ-1024) — Deleting loyalty settings, rewards, or access rules now requires admin to type a confirmation phrase, preventing accidental data loss.
- Scoped Reward Unlink (NJ-1023) — Unlink-all-rewards operation now scopes to individual rewards, applies pagination, and offers archival instead of deletion for safer bulk operations.
- Community Settings Mass-Assignment Guard (NJ-1020) — Fixed mass-assignment vulnerability in
update-community-settingsendpoint. ID field cannot be overridden by attacker input.
- Collapse Referral Config Screens (NJ-1027) — Merged duplicate referral config screens, unharness setup, and surface previously swallowed validation errors with clear messaging.
- Access & Scheduling Navigation (NJ-1016) — Wired Access & Scheduling features into the main settings navigation, removing orphaned coming-soon stub routes.
- Checkout Redeem Unification (NJ-1006) — Unified checkout redeem context wire contract so the points-redemption slider renders reliably on all checkout variants.
- Loyalty Settings Wire Real APIs (NJ-1008, NJ-1009) — Both loyalty settings pages now wire their fake save operations to real backend APIs, removing stub behavior and enabling full admin configuration persistence.
- Points Earned Card Integration (NJ-1010) — Loyalty Activity “Points Earned” card now wires to the real aggregate data source instead of mock data.
- Mock Data Local-Dev Only (NJ-1011) — Mock Data toggle and demo analytics are now gated to local dev mode only, preventing accidental staging/production use.
- Community Profile Logo/Banner Removal (NJ-1184) — Logo and banner removal on Community Profile page now persists correctly instead of reverting on refresh.
- Layout-Based Onboarding Routes (NJ-1173) — Onboarding step routes now render via layout
<Outlet/>pattern, fixing navigation and state management during setup flows.
- Money-Path Error Logging (NJ-1025) — Enhanced observability on money-path catches with
markSpanErrored()and structured logs, enabling faster incident response when Shopify integrations fail.
API – Performance, Safety & Reliability
API – Performance, Safety & Reliability
Cache Optimization
- Array-Valued Cache Tags (NJ-1000) — API now supports array-valued cache tags for efficient batch operation invalidation. When a single operation affects multiple entities (e.g.,
$inqueries), all affected entries invalidate in one call instead of individual tag operations.
- Integration Path-ID + Input Validation (NJ-1067) — Added strict path-ID validation and input schema checking to integration endpoints. Converts 500 server errors to 4xx client errors when invalid paths or payloads are supplied, improving error clarity for API consumers.
- Skip Orphaned Integration Communities (NJ-1036) — Analytics and query endpoints now skip communities with broken integration links instead of failing the entire operation, improving resilience.
- CLAIMED Tile Counts Progress, Not Assets (NJ-1002) — Fixed analytics dashboard CLAIMED tile to count claims from
UserProgressrecords instead of reward asset distribution. Eliminates inflation from draft/expired rewards and provides accurate engagement metrics.
- QStash Signature Verification (NJ-970) — Implemented cryptographic signature verification for QStash queue and schedule callbacks. Prevents spoofed webhook attacks and ensures only authorized Upstash workers trigger queue handlers.
- Integration API Spec-Driven Coverage (NJ-1140) — Built spec-driven integration test suite that enforces coverage invariants against the OpenAPI spec. Tests discover and validate every integration endpoint, catching drift and spec violations early.
Admin Highlights
- ⌘K Command Palette – Rebuilt with canonical sidebar integration, expanded search, and fast relevance ranking for instant platform discovery
- Per-Step Progress Charts – Achievement Insights show completion rates at each step to pinpoint user drop-off points and optimize challenge design
- Shopify Multi-Language Support – Loyalty platform now works in French and supports additional locales via react-i18next
- Editable Game Brand Colors – Override theme.accent per-game for custom aircraft/ball colors and visual branding
- Destructive Action Confirmation – Type-to-confirm guards prevent accidental deletion of loyalty settings, rewards, and customer data
- Scoped Reward Unlink – Safe bulk-unlink with pagination and archival option instead of permanent deletion
- Optimistic Concurrency Guards – Points-config writes protected against race conditions from simultaneous admin edits
- Loyalty Settings Wire Real APIs – Both settings screens now persist changes server-side, removing stub behavior
- Community Metafield Sync – Loyalty state writes to Shopify customer metafields for unified data across platforms
- App Proxy Security – Storefront widgets now authenticate securely through Shopify’s App Proxy auth layer
- Access & Scheduling Navigation – Main settings nav now includes access control and scheduling features
- Money-Path Observability – Enhanced error logging with structured traces for faster incident response
User Highlights
- Faster Command Palette – Navigation is significantly quicker with expanded search and canonical integration
- Runway 3D Game – New immersive plane-landing game adds visual variety with brand-customizable aircraft
- Better Game Performance – Memory game no longer hangs during score transfer for seamless gameplay
- Stable Game Branding – Game colors now inherit community theme and persist across sessions
- Multi-Language Loyalty – Shopify stores can now configure loyalty features in French and other languages
- Community Prefetch Efficiency – Faster app startup and navigation from optimized prefetching
Breaking Changes
None. All changes are backwards-compatible.Technical Notes
Performance Gains- Community prefetch elimination reduces initial user app payload and improves perceived navigation speed
- Array-valued cache tags reduce batch operation invalidation from O(n) tag operations to O(1)
- Theme fetch optimization eliminates layout thrashing and improves FCP
- SSR missing-content fallback prevents 500 errors from incomplete detail pages
- Email case-insensitive OTP lookup prevents auth failures from case mismatches
- Optimistic concurrency guards on points-config prevent race-condition data corruption
- QStash signature verification prevents spoofed webhook attacks on queue handlers
- Mass-assignment guard on community-settings prevents ID field override attacks
- Type-to-confirm destructive actions require explicit admin intent
- CLAIMED analytics tile now counts user progress claims, not reward distribution assets, for accurate engagement metrics
- Shopify metafield sync enables unified customer records across platforms
- Integration path-ID validation converts 500 errors to 4xx client errors for better observability
Usage Examples
Related Features
- Challenge Configuration — Create multi-step challenges with step-progress tracking
- Achievement Insights — Monitor achievement completion rates by step
- Shopify Integration — Loyalty platform configuration and storefront widgets
- Games & Gamification — Play games and earn rewards
- Reward Management — Create and configure reward inventories
- Access Control — Manage team member permissions and roles
- Internationalization — Multi-language support for global storefronts
Contributors
@erek_d16 commits • +170,216/-4,056 lines
@solicshop15 commits • +9,497/-2,298 lines
@dch11 commits • +2,758/-2,166 lines
@ZuhayrK005 commits • +13,892/-1,623 lines
@jamescockayne1 commit • +477/-33 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 51 |
| Lines Added | +196,629 |
| Lines Removed | -9,718 |
| Files Changed | 466 |
| Release Size | 🔴 Massive |
| Complexity | ⭐⭐ Moderate |
v2.387.5 deployed on June 17, 2026

