> ## 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.471.1

> Released August 4, 2026

## 🔴 Massive Release v2.471.1

⭐⭐ Moderate Complexity • 14 commits • 171 files

<Note>
  This release brings powerful customization controls to your leaderboards and challenges, enhanced admin analytics for swipe-to-discover challenges, and important privacy hardening for analytics compliance. Admins can now fully brand their leaderboard podiums, toggle educational modals per-community, and view aggregated results for interactive challenges.
</Note>

## What's New

* **Brand Your Leaderboard Podiums** – Configure exact colors for first, second, and third-place positions to match your community's theme
* **Swipe-to-Discover Challenge Analytics** – View comprehensive aggregated results and performance metrics for interactive swipe challenges
* **Longest Streak Leaderboard Metric** – New leaderboard type showcases user streaks alongside points and XP
* **Community-Level Modal Controls** – Disable educational info modals per-community for streamlined user experiences
* **Enhanced Privacy Compliance** – PostHog consent controls now hardened with explicit deny flows and withdrawal mechanisms
* **Mobile UI Improvements** – Better community title wrapping and improved responsive layouts across the app
* **Security Enhancements** – Stricter shared-hosting allowlist validation and improved quick-actions container protection

## Apps Updated

<CardGroup cols={3}>
  <Card title="User App" icon="mobile">
    ✓ Updated - Leaderboard theming, modal controls, UI polish
  </Card>

  <Card title="API" icon="server">
    ✓ Updated - Swipe-to-discover metrics, leaderboard types, models
  </Card>

  <Card title="Admin" icon="gear">
    ✓ Updated - Challenge results UI, leaderboard configuration, analytics
  </Card>

  <Card title="MCP Server" icon="robot">
    ✓ Updated - Tool schema updates for new metrics
  </Card>

  <Card title="Games" icon="gamepad">
    — No changes
  </Card>
</CardGroup>

## Detailed Changes

<AccordionGroup>
  <Accordion title="User App" icon="mobile">
    * **Leaderboard Podium Colors** – Podium first, second, and third-place positions now render with admin-configured colors, with automatic shade/tint variations for visual depth
    * **Info Modal Toggles** – XP info, coins/points info, rewards info, streak info, leaderboard info, effects info, and referral info modals can all be disabled at the community level
    * **Longest Streak Leaderboard** – Leaderboard columns now support the new `longest-streak` metric type with formatted time-period display
    * **Mobile Layout Fixes** – Community titles now properly wrap on mobile devices, preventing text overflow
    * **Challenge Complete Flow** – XP step in the challenge completion immersive flow now references longest-streak metric when available
  </Accordion>

  <Accordion title="Admin" icon="gear">
    * **Swipe-to-Discover Challenge Results** – New dedicated results UI in challenge analytics showing aggregated statistics for interactive swipe challenges
    * **Challenge Results Computation** – Server-side computation of swipe-to-discover performance metrics including completion rates and aggregate analytics
    * **Leaderboard Metric Selection** – Basic info step in leaderboard form now includes `longest-streak` as a selectable metric option
    * **Brand Kit Improvements** – Added safeguards against preview image failures in the brand kit settings
    * **Settings Polish** – Save buttons now consistently styled across Shopify settings sections and modals
  </Accordion>

  <Accordion title="API" icon="server">
    * **Longest Streak Metric** – New `LeaderboardMetricFieldEnum.LongestStreak` enum value for leaderboard configuration
    * **Swipe-to-Discover Aggregation** – New service layer helpers and validators for computing aggregated challenge results
    * **Event Aggregation Config** – Shared configuration helpers for determining which event types contribute to different metrics
    * **Leaderboard Schema Updates** – Admin and integration schemas now include longest-streak metric in leaderboard configuration validation
  </Accordion>

  <Accordion title="MCP Server" icon="robot">
    * **Tool Schema Updates** – Leaderboard mappers and schemas now reference the new longest-streak metric
    * **Quick Actions Protection** – Improved container protection logic for quick-actions tool responses
    * **Replay Test Coverage** – MCP replay test corpus extended with longest-streak examples
  </Accordion>
</AccordionGroup>

## Admin Highlights

* **Leaderboard Podium Customization** – Configure custom RGB hex colors for first, second, and third-place podium positions; automatic color mixing generates semi-transparent shades for roofs and cards
* **Swipe-to-Discover Analytics Dashboard** – View aggregated performance data for interactive swipe-to-discover challenges with user participation and completion metrics
* **Longest Streak Leaderboard Creation** – New leaderboard metric type to showcase the longest active streaks across your community members
* **Per-Community Modal Visibility** – Toggle educational info modals (XP explained, coins explained, streak info, rewards guide, effects guide, leaderboard rules, referral info) on a per-community basis without code changes
* **Enhanced PostHog Privacy Controls** – Strengthened consent flows with explicit deny options, session replay masking, consent withdrawal with page reload, and improved consent audit logging
* **Brand Kit Security** – Safeguards against missing or broken preview images in brand kit sections
* **Shopify Settings UX** – Consistent primary button styling across all Shopify settings dialogs and modals

## User Highlights

* **Themed Leaderboard Podiums** – First, second, and third-place podiums now display in your community's custom brand colors instead of generic gold/silver/bronze, creating a more cohesive visual experience
* **Cleaner User Interfaces** – Communities can disable educational info modals for a streamlined, less modal-heavy user experience if desired
* **Streak Recognition** – New leaderboard type highlights members with the longest active streaks, fostering momentum-based engagement

## Breaking Changes

None in this release.

## Technical Notes

### Swipe-to-Discover Results Architecture

* Moved band validation logic from individual challenge endpoints into a shared `get-event-aggregation-config.ts` helper
* Results computation runs server-side in the admin results route (`/api/challenges/v2/results`)
* Aggregation config determines which events contribute to specific challenge result metrics

### Leaderboard Color Customization

* Podium colors derive from `community.theme.podiumColors` object with optional per-position RGB hex values
* `buildPodiumColorVars()` utility generates CSS variables for color mixing (55% light, 70% dark, 35% roof) using native CSS `color-mix()` function
* Colors gracefully degrade: missing/invalid hex values are skipped and fall back to default theme colors

### PostHog Privacy Hardening

* Consent stored in `nudj_cookie_consent` first-party cookie; SDK initializes only after acceptance
* Session replay masking: `maskAllInputs`, `maskTextClass`, `blockClass` applied at init time
* Consent withdrawal reloads page and clears analytics state before banner reappears
* All AI observational telemetry (Vercel AI tracing) gated behind consent with `recordInputs: false` / `recordOutputs: false`

## Contributors

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

    **@dch**

    7 commits • +3,547 / -754 lines
  </Card>

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

    **@tomcarroll09**

    3 commits • +2,654 / -988 lines
  </Card>

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

    **@solicshop**

    3 commits • +686 / -75 lines
  </Card>
</CardGroup>

## Release Stats

| Metric        | Value  |
| ------------- | ------ |
| Total Commits | 14     |
| Lines Added   | +7,047 |
| Lines Removed | -1,818 |
| Files Changed | 171    |

***

*v2.471.1 deployed on August 4, 2026*
