Skip to main content

🔴 Massive Release v2.469.4

⭐⭐⭐ Complex • 21 commits • 503 files
Nudj v2.469.4 brings a major internationalization upgrade with a redesigned translation editor that makes managing multi-language content significantly faster, plus a unified image editor now available to all users. We’ve also hardened widget security and embedded script reliability, and built a comprehensive E2E testing infrastructure to ensure platform stability going forward. All the plumbing you don’t see, and all the tools you do.

What’s New

For Platform Administrators & Community Managers

  • Redesigned Translation Editor – New translator-friendly interface with improved filtering, CSV import/export, section organization, and real-time translation status tracking for managing community-wide multi-language content at scale
  • Unified Image Editor Now Available Everywhere – The enhanced image editor with crop, refine, and advanced controls is now the standard for all asset uploads across challenges, rewards, and community branding
  • Persistent Community Card Preferences – Admin dashboard now remembers your card visibility preferences across sessions, keeping your workspace organized exactly how you left it
  • Auto-Refreshing Admin Navigation Counts – Challenge and reward counts in the navigation automatically update when you create new entities via the AI assistant, eliminating manual refreshes
  • Shopify Plan Handle Flexibility – Accept Shopify plan IDs with or without the plan_ prefix, reducing integration friction for merchants with different plan naming conventions

For End Users & Widget Integrations

  • More Reliable Widget Embedding – Embed.js now includes a watchdog that detects and recovers from initialization timeouts, with improved hash-trigger normalization for cleaner URL handling
  • Enhanced Widget Security – Widget frame-ancestors policy is now dynamically derived from your configured allowed domains, with improved session cookie handling for iframe authentication scenarios
  • Secure OAuth in Widget Context – Fixed popup window behavior to prevent unintended redirects after OAuth callbacks within the widget frame

Apps Updated

User App

✓ Updated - 8 changes

API

✓ Updated - 6 changes

Admin

✓ Updated - 12 changes

MCP Server

✓ Updated - 2 changes

Design System

✓ Updated - 1 change

Games

✓ Updated - 1 change

Detailed Changes

  • Embedded Script Reliability: Added ready-signal watchdog to embed.js that detects initialization timeouts and recovers gracefully, preventing blank widget states
  • Security Improvements: Fixed OAuth popup window lifecycle to prevent unintended redirects after callback within widget frame
  • Session Cookie Cross-Site: Improved NextAuth session cookie handling when running inside widget iframe (SameSite attribute handling)
  • Frame-Ancestors CSP: Widget Content Security Policy now dynamically derives allowed parent domains from community configuration instead of hardcoded values
  • Hash Trigger Normalization: Improved hash-based triggers in embed.js to handle leading ’#’ character consistently
  • Card Detail Persistence: Hidden card details on dashboard now persist across sessions
  • Cache Invalidation: Platform config cache properly invalidates on publish
  • Language Config Management: New mutation handler and validation utilities for platform language configuration updates
  • Language Status Tracking: Improved language last-updated timestamp tracking and deduplication of reviewed translation keys
  • Development Fallbacks: Dev-only localhost fallback for organization resolution in test environments
  • Language Utility Functions: New helpers for language validation, merging, and matching across updates
  • Admin Language Endpoints: Enhanced admin language endpoints with improved validation and status reporting
  • Redesigned Translation Editor: Complete UI overhaul for the Edit Translations page with new components for translation rows, section lists, sticky headers, toolbar controls, CSV import/export, and translation status indicators
  • Translation Filtering: Added advanced filtering by translation status, missing keys, and section organization for faster content discovery
  • Translation Session State: New hooks for managing editor session state, draft changes, and unsaved-changes protection across language edits
  • Community Card Preferences: Theme schema now stores visibility preferences for community card details, persisting across sessions
  • Navigation Count Refresh: Generalized entity cache refresh mechanism that automatically updates challenge and reward counts after AI entity creation
  • Image Editor Rollout: Removed feature flag and deleted legacy crop/refine dialogs; unified editor is now the standard for all image uploads
  • Shopify Plan Handle: Accept both prefixed and non-prefixed Shopify plan IDs (e.g., plan_123 and 123)
  • Identity Tester Safety: Gate the identity-tester “Applied” confirmation button on real delivery confirmation instead of visual state
  • Unsaved Changes Guard: Enhanced unsaved-changes protection for the translation editor with context-aware warnings
  • Chat Image Attachment: Improved image attachment runner for better asset library integration
  • Entity Cache Invalidation: New helpers for invalidating related entity queries after mutations
  • i18n Localization: Added translation strings for new OAuth and widget features across all supported languages (English, German, Spanish, French, Portuguese, Chinese)
  • E2E Test Suite: Comprehensive Playwright test configuration and test cases for games suite

Technical Architecture

Translation Editor Rebuild

The Edit Translations page received a complete architectural overhaul focused on developer ergonomics:
  • Component-based structure with specialized hooks for state management (useEditTranslations, useTranslationDraft, useTranslationFilters)
  • CSV import/export pipeline with error handling and validation
  • Real-time translation status tracking with section-aware rendering
  • Unsaved-changes protection with context-aware user warnings

Widget Security Hardening

Three interconnected fixes improve iframe-based widget reliability:
  1. CSP Frame-Ancestors: Dynamically generated from community’s allowedDomains instead of hardcoded, preventing embedding on unauthorized domains
  2. Session Cookies: NextAuth now issues cookies with appropriate SameSite attribute for cross-site iframe scenarios
  3. OAuth Cleanup: Popup windows properly close after callback to prevent navigation drift to merchant page

E2E Testing Infrastructure

Comprehensive Playwright test suite across the platform:
  • Shared global setup and configuration across games, admin, user apps
  • Deterministic test data through improved seed-data integration
  • E2E test corpus covering critical user flows

Contributors

dch@wenudj.com@dch@wenudj.com11 commits • +38,580/-5,182 lines
solicshop@gmail.com@solicshop@gmail.com6 commits • +13,053/-7,941 lines
jamescockayne@jamescockayne3 commits • +464/-36 lines

Release Stats


v2.469.4 deployed on August 4, 2026