Skip to main content

🟑 Release v2.303.0

⭐⭐ Moderate β€’ 3 commits β€’ 31 files changed
Nudj now supports Osano cookie consent management alongside the existing OneTrust integration, giving enterprises the flexibility to use their preferred CMP. Admins can now easily toggle tab visibility from the page header for faster configuration workflows.

What’s New

  • Osano CMP Support – Enterprise organisations can now use Osano for cookie consent management, configured alongside or instead of OneTrust
  • Flexible Cookie Consent – Choose between OneTrust, Osano, both, or neither per organisation β€” each CMP independently gates analytics providers
  • Admin Configuration UI – Simple one-step setup: paste your Osano script URL into Organisation Settings β†’ Third Party β†’ Osano
  • Tab Visibility Toggle Relocation – Tab visibility controls now appear in page headers across admin engagement sections for faster access and better discoverability
  • Improved Test Stability – Fixed flaky daily-period tests that previously failed sporadically during certain UTC times

Apps Updated

User App

βœ“ Updated - Osano CMP integration

API

βœ“ Updated - Osano config schema & API client

Admin

βœ“ Updated - Osano settings UI & tab controls

MCP Server

β€” No changes

Games

β€” No changes

Packages

βœ“ Updated - Models (Osano config DTO)

Detailed Changes

Improved Header Positioning

The tab visibility toggle β€” used to show/hide content tabs across engagement sections β€” now appears in the page header instead of buried inside tab content. This applies to:
  • Challenges – manage Difficulty, Requirement tabs
  • Achievements – manage Category, Description tabs
  • Rewards – manage Stock, Description tabs
  • Posts – manage Status, Published tabs
  • Games – manage Details, Config tabs
User impact: Admins no longer need to scroll into tab content to toggle visibility. The control is visible the instant the page loads, reducing configuration friction and making the feature more discoverable.

Technical Improvement

The <TabVisibilityToggle /> component now receives header context from parent page layouts, allowing it to render in the header alongside other action buttons. This maintains a single source of truth for tab-visibility state while placing the control in the highest-priority UI real estate.

Test Reliability Fix

Fixed flaky daily-period tests in the challenge progress service that were failing sporadically when test execution crossed UTC period boundaries. The issue occurred because tests using relative time calculations (e.g., β€œ3 hours ago”) would straddle daily, weekly, or monthly boundaries depending on the exact UTC time the test ran.Solution: Tests now pin system time to a fixed date-time (Wednesday, April 15, 2026 at 12:00 PM UTC) using Vitest’s useFakeTimers() API. This ensures relative time calculations never cross a period boundary, eliminating the intermittent failures that plagued CI runs.Benefit: Faster, more reliable CI pipelines. No more mysterious failures that are hard to reproduce locally.

Contributors

jamescockayne@jamescockayne2 commits β€’ +1,101/-66 lines

ZuhayrK00@ZuhayrK001 commit β€’ +46/-33 lines

Release Stats

MetricValue
Total Commits3
Lines Added+1,147
Lines Removed-99
Files Changed31

v2.303.0 deployed on April 24, 2026