MLM & Affiliate System 6.0.8
6 March 2026
This release has upgrade notes. Read them before updating — they describe behaviour changes that need your attention.
MLM & Affiliate v6.0.8
Release Date: March 6, 2026 Tags: CRITICAL FIXES, SECURITY, DEDUPLICATION, STABILITY
Overview
Version 6.0.8 is a comprehensive stability and correctness release for the MLM & Affiliate addon. It fixes critical bugs in binary tree placement, reward notification routing, cycle detection safety, and self-referral handling. It also introduces deterministic reward deduplication using source IDs, replacing the fragile 60-second time-window approach, and corrects numerous calculation errors across the dashboard, landing page, and network endpoints.
Update Instructions
After updating, run the following command in terminal:
pnpm updatorThe update adds one new column to the referral reward table, so that each reward can be tied to the transaction that produced it. Existing records are unaffected — they carry no value in it and cannot conflict — and new rewards use the new deduplication automatically.
Upgrade Notes
Requires Core v6.2.0 or higher.
Changed
Reward deduplication
- Changed duplicate detection from a 60-second time window to an identifier derived from the transaction that triggered the reward, so a duplicate is caught however far apart the two attempts fall. The old window could miss duplicates during a slow scheduled run.
- Changed the reward table to refuse a duplicate outright, so even two simultaneous requests that both pass the initial check cannot produce two rewards — the second returns without creating anything.
- Changed Binary and Unilevel rewards to carry a distinct identifier per upline level, so deduplication applies level by level.
- Changed every reward trigger point across the platform to pass one: spot deposits (welcome bonus), general and AI investments (on creation and on the scheduled run), staking positions (on creation and on the loyalty run), forex investments (on creation and on the scheduled run), futures orders, P2P trade releases for both buyer and seller, ICO token purchases, ecommerce orders, copy trading subscriptions, NFT purchases and sales for both buyer and seller, and binary option results.
Consistent settings and defaults
- Changed MLM settings loading onto one shared routine, so all three places that read those settings now read them the same way.
- Changed the default Binary and Unilevel level counts to "0" — meaning not configured — everywhere. It previously varied between "0" and "2" depending on which part of the system was asking.
- Changed the affiliate landing page to map all 31+ condition types to a category and an icon rather than about 11, so NFT, Futures, Copy Trading and Token conditions now display with a proper category and icon instead of falling through.
Fixed
Binary tree placement corruption
- Fixed placing a new referral under a binary node that already had both children silently overwriting the right child and orphaning everything beneath it. Placement now searches the tree for the next available slot when the direct parent is full.
Reward notifications went to the wrong person
- Fixed reward-earned notifications being sent to the user who made the transaction rather than the referrer who earned the commission. They now reach the referrer, and the link inside opens the affiliate reward page instead of an address that has never existed.
Cycle detection race condition
- Fixed the cycle checks for the Binary and Unilevel trees querying outside the database transaction, so two concurrent registrations could both pass the check and create a referral loop. The checks now run inside the transaction with row locking.
Self-referral record crash
- Fixed creating the self-referral record for a member at the root of a Binary or Unilevel tree failing outright when that member already had a referral record. An existing record is now found and reused, on both tree types and on the legacy user migration path.
Direct rewards leaked to unapproved referrals
- Fixed direct rewards being paid on referrals that had not been approved. Direct rewards now require an ACTIVE referral, matching Binary and Unilevel processing. Previously, PENDING and REJECTED referrals could earn them.
Landing page stats inflation
- Fixed the "Total Paid Out" figure on the affiliate landing page including unclaimed rewards, which overstated it. It now sums claimed rewards only.
Landing page advertised extensions you do not run
- Fixed conditions being listed for extensions that are not installed. Only 6 of 25+ condition types were mapped to their extension; the mapping now covers NFT (purchase, sale, trade), Copy Trading (trading, profit), Futures (trade, profit, volume), Token (purchase, sale), Spot Trade (trade, volume) and both Staking variants.
Network upline earnings counted rows instead of money
- Fixed the upline earnings figure on the network page counting reward records rather than summing their value, so it showed how many rewards existed where an amount belonged.
A broken timeout in the network view
- Fixed a timeout in the affiliate network view that raised an uncaught error without actually cancelling the request it was meant to stop. The existing guard against concurrent requests already prevents duplicate calls.
Dashboard calculation corrections
- Fixed the growth figure being labelled weekly when it in fact compares the selected period against the one before it. It is now named for the period, on the dashboard and in the data behind it.
- Fixed the conversion rate dividing by the lifetime referral total instead of the referral count for the period selected, so the figure is now specific to the period you are looking at.
Admin screens filtered and fetched on values that did not exist
- Fixed the affiliate admin screens filtering on lowercase status values the rest of the system does not use, so those filters matched nothing. They now use ACTIVE, PENDING and REJECTED.
- Fixed the admin rewards lookup calling an address that does not exist, so a referrer's rewards could never be loaded.
Binary tree traversal
- Fixed the binary referral list mixing two different ways of walking the tree, which could return the same member twice or miss one entirely. It now walks consistently by parent.
Reward counts on the downline list
- Fixed the direct referral list reporting a reward count of zero for every downline member instead of the real count.
Unilevel reward detail was unreadable
- Fixed the unilevel referral list flattening its nested reward data incorrectly, so reward detail was missing from that view.
A placeholder member id in the network fallback
- Fixed the affiliate network view falling back to a hardcoded placeholder member id when it had no data. The fallback is now empty.