🔴 Release v2.535.18
⭐⭐⭐ Complex • 49 commits • 1,003 files • +27,808 / -103,500 linesCampaign teams can now send members straight to a widget section or a specific challenge, reward, achievement, or game. Members get a more rewarding claim moment, a launcher badge that includes unread notifications, smoother game detail pages, and their community’s own points name everywhere. Admins get clearer period data, dependable community selection, and a preview experience that matches the phone.
What’s new
- Open a widget section or a specific member item from a campaign button or link
- Turn achievement claims into a clear celebration with animated points and confetti
- Show claimable achievements and unread notifications in one launcher badge
- Keep member-facing wording in your community’s own points name
- Show leaderboard exclusions files dated to the period they came from
For platform administrators
- Public widget navigation – Send members to a specific widget section or item from a campaign CTA, including challenges, rewards, achievements, and games.
- Check: the campaign links or buttons that open your embedded widget
- Current leaderboard distribution view – Open a leaderboard’s distribution page on the current period and load the selected leaderboard directly.
- Reliable community switching – Move between communities without an old selection being restored after a refresh or navigation.
- Aligned preview panes – Keep the phone preview positioned consistently across Brand Kit and other admin preview panels.
- Check: the previews you use for mobile widget and theme review
- Visible accessibility review – Bring colour accessibility findings into view when a theme has contrast issues, with a responsive colour layout for narrower editors.
- Check: light and dark theme colour editing when a contrast warning appears
- Transparent AI artwork – Generate PNG artwork with a real transparent background on supported ChatGPT ImageGen models, avoiding a second background-removal pass that can soften edges.
- Check: a badge or achievement image generated through Ask Nudj
- Dated leaderboard exclusions file – Download a period’s exclusion template with the period’s first and last day already filled in, so an exclusion applies to that period only.
- Check: an exclusions template downloaded from a leaderboard period
- Clearer points expiry settings – Points expiry shows the switch as unavailable while the organisation’s points settings are being checked, and warns when expiry set at community level will not be applied.
- Clean create-community drafts – A saved draft no longer reappears in the form after you create the community or clear the draft.
For community members
- Celebration claim modal – See the achievement badge arrive at a larger size, watch the points count up, and get confetti when you claim.
- Unified launcher badge – See a single count for claimable achievements and unread inbox notifications, including after closing the widget.
- Your community’s points name – Read your community’s own points name wherever points appear, including balances, claim buttons, and screen-reader labels.
- Check: the points wording across your member pages
- Smoother game detail pages – Open game details in the parallax layout by default, with a colour transition that matches the artwork while it loads.
- Check: a branded game detail page on desktop and mobile
- Fresh XP rankings – See pending XP included in leaderboard results after concurrent activity settles.
- Return to the action – When enabled for your organisation, return to the action page after following an external-link action instead of losing your place.
- Smoother sign-in handoff – Keep your widget session on track when simultaneous sign-in requests arrive.
Usage examples
Open a specific place in the widget
Use the public embed API to connect a campaign button to the right member experience. Section panels do not need an item ID; item panels do.Link a campaign CTA to a member’s reward
Add a button to an email, campaign page, or authenticated game screen that callsopen with a reward ID. Members can review the reward in the Spend view without first searching through the widget.
Apps updated
User App
✓ Updated – widget deep links, achievement celebrations, unread launcher counts, points naming, and smoother game details
API
✓ Updated – leaderboard refreshes now adopt pending XP after a lease wait
Admin
✓ Updated – dated exclusions files, clearer points expiry, dependable community selection, and aligned previews
MCP Server
✓ Updated – native transparent-background handling for supported AI image models
Website
No changes
Games
No changes
Shopify
No changes
Detailed changes
Points naming across member surfaces
Points naming across member surfaces
- Read the community’s configured points name once and reuse it across balances, wallet statistics, reward cards, claim buttons, drawers, and screen-reader labels.
- Fell back to the standard wording when no custom name is configured, or when the configured name is the untranslated default.
- Added named wording variants for every supported language, including singular and plural forms.
Achievement and game experiences
Achievement and game experiences
- Reworked the achievement claim modal into a shared celebration with a larger image, badge glow, animated points counter, confetti, sound support, and a short exit animation.
- Kept admin and link previews read-only while still showing the celebration treatment.
- Made parallax the default game detail presentation, with smoother hero sizing, image-matched transition colours, brand-colour fallbacks, and lighter overlays while artwork loads.
- Sampled the full hero artwork for its dominant colour and started the transition from the community’s brand colour, so dark artwork no longer turns the surface grey or black.
Leaderboard and admin improvements
Leaderboard and admin improvements
- Adopted pending XP after a leaderboard refresh waits for another refresh owner, with one additional adoption attempt when XP arrives during snapshot creation.
- Loaded the selected leaderboard configuration directly on its distribution page and defaulted the period selector to the current period.
- Dated a downloaded exclusions template to the period on screen, in the board’s own timezone, so an uploaded exclusion stays inside that period; an open board leaves its last day blank, and clearing both dates makes a row permanent.
- Removed stale community restoration from the admin context so the selected community remains the one the current session requested, and surfaced a community lookup failure instead of rendering without community data.
- Kept phone previews aligned across admin preview panes and automatically revealed contrast findings when theme colours need attention.
- Stopped the points expiry card from claiming an organisation setting was applied when the organisation’s points configuration could not be read.
- Guarded the create-community autosave against a pending save restoring a draft that was already cleared.
Platform maintenance
Platform maintenance
- Added a permanent benchmark community and repeatable seed data for testing query behaviour at large scale.
- Limited development deployments to affected applications and added lighter local pull-request validation to shorten feedback loops.
- Added a CommonJS entry point to the shared Redis package so the end-to-end seed runner can load it directly, without a build step or a shim.
- Security and access-control hardening.
Technical details
The widget navigation contract now carries an optionalview, panel, and entityId. The loader queues one latest request before iframe readiness. The widget validates the target, checks community feature availability, applies the same visibility rules as its rendered lists, and preserves approved targets across sign-in. Item panels never claim, complete, or purchase anything as part of navigation.
Leaderboard reads now adopt pending XP after lease acquisition and retry adoption if XP lands between adoption and snapshot creation. The admin distribution page reads a leaderboard configuration by its ID instead of loading a page of configurations and searching locally.
Reward create and update inputs validate tags and campaigns as organisation IDs. Points naming resolves from the merged community theme through a single helper, so every member surface reads the same label. Game detail pages default to parallax, and hero colour extraction samples the whole artwork.
AI image generation now uses native alpha on supported ChatGPT ImageGen models and keeps the existing background-removal path for other models. Transparent output is mirrored as PNG. Shared model metadata keeps the admin picker and MCP tool aligned.
Internal performance work added a large benchmark community for query analysis and affected-app development deployments. Security and access-control hardening.
Related features
- Embedded widget
- Widget deep links
- Achievement claims
- In-app notifications
- Community leaderboards
- Game detail pages
- Points and XP naming
- AI image generation
- Game integrations
Contributors
@DerekCounihan37 commits • +24,492 / -102,593 lines • 950 files
@dchnudj5 commits • +1,323 / -812 lines • 25 files
@blankcode-alt4 commits • +1,470 / -106 lines • 45 files
@HienH1 commit • +228 / -28 lines • 6 files
@nudj-changelog-bot[bot]2 commitsRelease stats
v2.535.18 deployed on September 15, 2026

