Manual subscriptions and plan assignment foundation
Added admin manual subscription/plan assignment table and page to prepare for PayFast recurring billing, trial tracking and plan status workflows.

A public changelog grouped by frontend website, artist apps, label tools, listener apps and platform/admin work.
Public-facing website pages, public campaigns, charts, QR pages, transparency and onboarding.
Added admin manual subscription/plan assignment table and page to prepare for PayFast recurring billing, trial tracking and plan status workflows.
Rebranded public homepage language to Signal Sabotage, including underground transit hero copy, live telemetry labels, sabotage protocol feature pillars, tip transparency framing and onboarding copy.
Reduced the Signal Sabotage hero headline size, shortened the hero message, and rebuilt the homepage transparency section with cleaner ledger framing and updated Signal fee wording.
Restored the preferred Signal Sabotage hero line about the digital middleman and underground transit system, with reduced font sizing so it fits the homepage better.
Updated artist, listener, label, pricing, beta, campaign, charts, FAQ, contact and about pages to match the Signal Sabotage brand voice and underground transit positioning.
Changed public-facing terminology from campaigns to signals across the frontend navigation and public pages while keeping backend/admin table names stable.
Updated visible admin/app branding to Signal Sabotage, changed public homepage Live Test Channels to Live Signal Channels, and began shifting admin menu labels from Campaigns/Campaign Manager to Signals/Signal Manager.
Fixed public Signal Charts so top artists and top tracks count distinct download rows, prioritise the actual track artist over the signal/bridge artist, and resolve older downloads where track_id is missing but track_name matches a track file/title.
Fixed admin dashboard Content Breakdown so top songs and top artists count distinct verified bp3_downloads rows and resolve artist from the actual track first instead of signal bridge assignments.
Rebuilt public top tracks/top artists to use the same row-by-row distinct verified download aggregation as the corrected admin dashboard, eliminating unstable artist/name swapping with identical totals.
Updated public Signal Charts labels to make it clear rankings are by verified plays, while listener counts are unique listeners and not the ranking metric.
Rebuilt the pricing page with beta-friendly listener, artist, label and QR activation plan ideas plus subscription roadmap and transparent donation fee model.
Added public orientation pages for artists, listeners, labels, pricing, about and contact.
Added dynamic public campaign directory, top artists, most played tracks and liked songs.
Added public campaign landing pages with QR code, share links and most-played campaign track tables.
Frontend player buttons route desktop to download.php and mobile to mobile_player.php. Homepage hero shows the most recently played or a random public track.
Fixed admin FAQ/changelog 500 errors and made the admin seeder populate all existing frontend FAQ categories and changelog groups into the database.
Added public donation transparency showing gross, gateway fees, BuzzPromo fees, artist payout and wallet credited.
Homepage now updates public stats and now-playing panel with AJAX without refresh.
Added admin-managed FAQ and changelog pages, plus public frontend pages that can read database-managed content.
Reorganised the frontend navigation into primary links plus More dropdown with cleaner styling, and added admin-managed pricing plans used by the public pricing page.
Added public beta signup page, thank-you page, admin beta signup manager, beta CTA blocks and beta signup database table.
Added listener-facing public stats to the For Listeners page, including verified plays, unique listeners, liked songs, public playlists, most listened tracks, favourite songs and top countries.
Added drag-and-drop FAQ ordering in admin and changed changelog display to date-descending order. Confirmed frontend FAQ/changelog pages read admin-managed DB content.
Removed the music note overlay from live homepage artwork and changed frontend live stats/now-playing AJAX refresh to initial load plus every 60 seconds.
Artist portal, artist app, wallet, member split views, payout requests and artist-facing tools.
Added internal wallet ledger, donation-to-wallet credit foundation and payout request tables.
Artists can request payout from available wallet balance. Admin can approve, mark paid or reject.
Added artist wallet links, mobile dock entry, dashboard wallet cards and artist app wallet card.
Artist app and dashboard wallet cards show the logged-in member split share instead of the full band wallet.
Rebuilt the artist mobile menu as a fullscreen two-column app menu with large touch targets.
Kept the new fullscreen mobile menu and removed the legacy generated menu from artist pages.
Removed duplicate artist mobile menu and kept the correct full-screen artist app menu.
Label and distributor management, roster views, campaign visibility and payout reporting.
Label and artist dashboards were tightened to show only their own campaigns/artists instead of platform-wide totals.
Added per-campaign split mapping so donations can be allocated against members/splits instead of only the linked artist.
Added payout batch CSV exports and wallet statement downloads for admin and artists.
Listener mobile app, likes, playlists, follows, recommendations, notifications and discovery.
Added listener profile, favourites, recent plays, playlists, share/delete and save-to-playlist from player.
Added artist/campaign follows, notification centre, new track alerts, PWA notifications and listener global menu.
Added listener search, list view, followed artist hub and playlist discovery.
Added listener discovery feed, feed artwork fallback, listener activity centre and listener settings centre.
Added listener-to-artist message flow and player message button with artist context fixes.
Track and playlist shares use current track ID3 artwork or campaign artwork fallback.
Admin dashboard, loudness queue, ID3 artwork, desktop player and platform operations.
Added admin payout batch export page for selected wallet payout requests, showing gross withdrawal, payout fee deducted, net bank transfer, and bulk mark-paid workflow.
Added billing dashboard, billing settings, subscription CSV export, beta-to-subscription conversion links, and soft plan usage/limit visibility so backend billing foundation is complete before returning to frontend work.
Fixed desktop keyboard controls and native audio control conflicts.
Added ID3 artwork read/write tools, bulk album artwork and desktop player artwork display.
Added LUFS/true peak analysis and player-side gain improvements without normalising or rewriting files.
Added LUFS background queue and missing LUFS filters for large track libraries. Analysis only; no audio rewriting.
Moved Listener Favourites lower into the analytics/tables area to keep the top dashboard clean.
Fixed footer admin link to route to dashboard.php because admin/login.php does not exist on this install.
Added wallet payout fee/net transfer tracking for PayFast/EFT/manual South African bank payouts: gross withdrawal, R10 incl. VAT payout fee, and net transfer amount shown to artists and admins.
Added pricing plan limits/capabilities, public pricing limit chips, and subscription health/expiry warnings in admin.
Added admin manual subscription/plan assignment table and page to prepare for PayFast recurring billing, trial tracking and plan status workflows.
Planned features and change-control items not yet complete.
Investigate and add modern payment buttons for listener donations.
External playlist/player widgets for artist and label websites.
Improve payout batching, statement exports and PayPal/PayFast payout references.
Replace mailto contact with lead capture form and admin lead list.
Move this file-based changelog into database-backed admin change-control entries with publish/draft status.