🟠 Release v2.229.2
⭐⭐⭐ Complex • 6 commits • 95 files changedMajor features for multi-tier achievements and flexible points management. This release adds organization-level points configuration for centralized points tracking, tier-aware integration API responses enabling progressive achievement systems, and critical stability fixes for the admin challenge editor. Particularly valuable for platforms running multiple communities with unified points economies or implementing tiered loyalty programs.
What’s New
- Flexible Points Economy: Configure organization-level points tracking to unify points across all communities or keep them separate with optional expiration settings
- Multi-Tier Achievement System: Users now progress through achievement tiers with detailed tier status tracking, completion percentages, and claimable rewards visible in the integration API
- Challenge Editor Restored: Fixed critical issue preventing challenge editing in the admin panel
- Widget Component Parity: Added missing FeaturedRewards component to widget component registry
- Import Optimization: Improved admin bundle efficiency by replacing barrel imports with direct enum imports
Apps Updated
User App
✓ Updated - 1 change
API
✓ Updated - 50+ changes
Admin
✓ Updated - 10 changes
MCP Server
— No changes
Website
— No changes
Games
— No changes
Detailed Changes
Organization Points Configuration
Organization Points Configuration
New Feature: NUDJ-5091Organizations can now configure whether points are tracked at the organization level or per-community:
- Organization-Level Points: All communities share a single points balance for each user. Enables unified points economies across multiple communities.
- Per-Community Points: Each community maintains its own separate points ledger for users (existing behavior).
- Points Expiration: When using org-level points, administrators can set an optional expiration window (in hours) for earned points. Set to 0 for points that never expire.
/admin/settings/organisation) with:- Toggle to switch between org-level and per-community tracking
- Points expiration configuration (hours)
- Confirmation dialog to prevent accidental settings changes
Multi-Tier Achievement API Responses
Multi-Tier Achievement API Responses
New Feature: NUDJ-1597The integration API now returns complete tier progression data for tiered achievements, enabling rich user interfaces for progressive achievement systems:
- Per-Tier User State: Each tier includes dedicated user progress tracking (status: locked/in-progress/completed/claimable, progress percentage, earned values, claimable rewards)
- Active Tier Detection: API automatically determines which tier is currently active based on user progress (priority: claimable > in-progress > not-started)
- Tier Summary Data: Root-level fields now include:
activeTierNumber: Current tier user is working towardhighestCompletedTier: Highest tier they’ve completedtotalTiers: Number of tiers in the achievementoverallStatus: Achievement-level completion status (not-started/in-progress/completed)
- Backward Compatibility: Single-tier achievements produce identical API responses to previous versions
- Display multi-stage achievement progression with visual tier indicators
- Show which tier is “claimable” (completed but not yet claimed)
- Track overall achievement completion across all tiers
- Render progressive unlock systems where later tiers are locked until earlier ones complete
Admin
Admin
Challenge Editor Fix (NUDJ-5288)
- Fixed critical issue where challenge editing failed in the admin panel by adding reflect-metadata polyfill to client bundle
- Challenge forms now load and save correctly
- Replaced barrel model imports with direct enum imports to reduce admin bundle size
- Improves build performance and code clarity
API & Backend
API & Backend
Points Configuration Service (NUDJ-5091)
- New
PointsConfigServicefor managing org-level points settings getPointsConfig(): Retrieve current points configurationupdatePointsConfig(): Update points tracking mode and expiration settings- Helper functions for points expiration resolution
- Comprehensive test coverage for configuration CRUD operations
- Enhanced achievement aggregation pipeline to collect rewards from all tiers (not just tier 1)
- Returns array of user progress documents (one per tier) instead of single document
- New
computeActiveTier()helper for calculating active tier from user progress - New
computeEarnedValuesFromTierProgress()helper to extract per-tier earnings - Updated achievement mapper to build complete tier user states
- Migration to add org_level_points_config collection
Models & Types
Models & Types
Points Platform Config (NUDJ-5091)
- New
PointsPlatformConfigDtoModelwith fields:useOrgLevelPoints: boolean to enable org-level trackingexpirationHours: hours until points expire (0 = never)
- New
IntegrationTierSchemafor per-tier user state - New
ActiveTierSchemafor active tier metadata - Expanded
AchievementIntegrationSchemawith tier array and tier-aware user state - New fields:
activeTierNumber,highestCompletedTier,totalTiers,overallStatus
- Added
FeaturedRewardstoWidgetComponentIdEnum
User App
User App
- Minor widget configuration updates
Admin Highlights
- Points Configuration Hub – Control whether user points accumulate organization-wide (unified economy) or stay isolated per-community with optional point expiration windows
- Challenge Editing Restored – Fixed critical admin panel issue preventing challenge creation and editing workflows
- Tier Management Visibility – See active tier, highest completed tier, and total tier count for achievement progress tracking
User Highlights
- Progressive Achievement Tiers – Experience multi-stage achievements where each tier unlocks new challenges and rewards as you progress
- Clear Tier Status – See which tier you’re currently working on, which ones you’ve completed, and which are locked ahead
- Flexible Reward Structures – Earn tier-specific rewards that scale with your achievement progression
Contributing
This release represents work from our engineering team:
@jamescockayne1 commit • +4954/-383 lines
@SaadK941 commit • +5688/-213 linesRelease Stats
| Metric | Value |
|---|---|
| Total Commits | 6 |
| Lines Added | +10,951 |
| Lines Removed | -610 |
| Files Changed | 95 |
| Size | 🟠 Large |
| Complexity | ⭐⭐⭐ Complex |
v2.229.2 released on March 17, 2026


