Skip to main content

Changelog

Public release notes for M3X HUB

v2.0.0-hub.14 — M3X HUB 2.0 — Modul 8: Discord Server Management

Sprint 13 · 2026-08-02

Features

  • Guild-primär modell: befintlig DiscordGuild utökad (ownerDiscordId, lastActivityAt, lastHeartbeatAt) — ingen parallell statusmaskin
  • Admin Discord Servers: `/admin/control-center/servers` + detaljsida med produkter, loggar, Enable/Disable/Maintenance/Suspend/Blacklist (installation-scoped)
  • API: `GET/PATCH /api/admin/discord-servers*` — aggregerar ControlCenterInstallation + BotInstallation + DiscordGuild
  • Agent heartbeat/register: additiva guild-fält (iconUrl, memberCount, ownerDiscordId) synkar DiscordGuild
  • `GET /api/control-center/config` returnerar per-installation status + commandsEnabled
  • Agent SDK Health: DISABLED/SUSPENDED/BLACKLISTED + areCommandsEnabled(); Fortnite Tracker command-guard stoppar slash commands när Disabled
  • Bot Platform / My Servers stats: Total/Online/Offline/Disabled/Maintenance/Blacklisted/Premium/Free
  • Additiv migration 0014

v2.0.0-hub.13 — M3X HUB 2.0 — Modul 7: Billing Platform

Sprint 12 · 2026-08-02

Features

  • Billing-modul `backend/src/modules/billing/` — provider interface, Stripe-adapter, PayPal-scaffold, subscription/refund/customer views
  • Stripe Checkout: coinsUsed appliceras på order.total innan session; subscription mode för premium_monthly/yearly
  • Webhooks: checkout.session.completed, payment_intent.succeeded/failed, charge.refunded, customer.subscription.*, invoice.paid — dual idempotens (stripe_webhook_events + processed_webhook_events)
  • Automatisk kedja: betalning → Order PAID → License → ProductDownload → coins settle → notifications/audit (via befintlig order-delivery)
  • Admin refund anropar Stripe Refund API + SUSPENDERAR licenser (ej hard-revoke); coins återställs ej automatiskt
  • Kundvyer: /dashboard/purchases, /subscriptions, /payments, /invoices + Sidebar (svenska labels)
  • Admin: /admin/orders/failed för misslyckade betalningar; manuell aktivering via befintlig mark-paid
  • Additiv migration 0013: BillingSubscription, ProcessedWebhookEvent, Order billing-fält, Refund.providerRefundId
  • PayPal: env-placeholders + stub provider + POST /api/webhooks/paypal (tydliga not-implemented-fel)
  • Dokumentation: docs/BILLING.md

v2.0.0-rc.1 — M3X HUB 2.0 — Release Candidate 1 (RC1)

Sprint 11 · 2026-08-02

Fixes

  • Fortnite Tracker bot API kräver nu FORTNITE_TRACKER_BOT_SECRET (Bearer, timing-safe) — koordinerat med discord-bot hub-client
  • CSRF hoppar över Bearer machine clients + Control Center/Agent/Fortnite bot-prefix (fixar produktionsblockering av maskin-API)
  • Stripe utan nycklar returnerar BadRequest (400) istället för generiskt 500 via requireStripeClient
  • Additiva FK-index: role_permissions.permissionId, order_logs.actorId (migration 0011)
  • Striktare rate limit på machine-auth-ytor

v2.0.0-hub.12 — M3X HUB 2.0 — Modul 6: Bot Platform Foundation

Sprint 10 · 2026-08-02

Features

  • Ny modul `backend/src/modules/bot-platform/` — produkt-/ägarskapslager ovanpå Control Center (ingen parallell heartbeat)
  • Modulär bot-katalog: Fortnite Tracker, Warzone Tracker, Activity Bot, Mod Guard (productSlug = Control Center `module`)
  • Additiv Prisma-migration `0010`: tunn `BotInstallation` (user/product/license ↔ ControlCenterInstallation)
  • User API: `GET /api/me/bots`, `GET /api/me/servers` + sidor `/dashboard/my-bots`, `/dashboard/my-servers`
  • Admin: `/admin/bot-platform` — produktkort, statistik, Disable/Enable/Maintenance/Suspend/Blacklist via Control Center
  • Lazy-länk från befintliga `ProductInstallation` (t.ex. Fortnite) till matchande Control Center-installation

v2.0.0-hub.11 — M3X HUB 2.0 — Modul 5: M3X Agent SDK Foundation

Sprint 9 · 2026-08-02

Features

  • Nytt workspace-paket `@m3x-stats/agent` (`packages/m3x-agent`) — gemensam HTTP-klient med exponential backoff, Control Center Bearer-auth (`m3x_cc_`), valfri HMAC-signering (klientfoundation), heartbeat, license/coins-klienter, config/events/update/health
  • Additiv Prisma-migration `0009`: `ControlCenterEvent` för Agent SDK event-ingest (`POST /api/control-center/events`)
  • Tunna Control Center-tillägg: `GET /api/control-center/config` (stub), `GET /api/control-center/update-check` (foundation), plus `POST /api/agent/licenses/validate` som anropar befintlig `license.service.validateByKey`
  • Framtida SDK-hooks som 501-style stubs: Auto Update, Remote Restart, Remote Config, Plugin Loader, Broadcast, Remote Commands
  • Dokumentation: `docs/AGENT_SDK.md` + `packages/m3x-agent/README.md` med Discord-bot-exempel (live discord-bot orörd)

v2.0.0-hub.10 — M3X HUB 2.0 — Modul 4: M3X Control Center Foundation

Sprint 8 · 2026-08-02

Features

  • Ny modul `backend/src/modules/control-center/` — generisk client/installation-registry (Discord Bot, FiveM Resource, Desktop App, Launcher, Future Client), ej Discord-only
  • Additiv Prisma-migration `0008`: `ControlCenterClient` + `ControlCenterInstallation` med status (Online/Offline/Maintenance/Disabled/Suspended/Blacklisted) och heartbeat-metrics
  • Autentiserad client-API: `POST /api/control-center/register`, `POST /api/control-center/heartbeat`, `GET /api/control-center/installations` via `m3x_cc_`-credentials (samma SHA-256-mönster som api-keys)
  • Lazy Offline när `lastHeartbeatAt` är äldre än 5 minuter; admin-låsta statusar överskrivs inte av heartbeat
  • Admin UI `/admin/control-center` + `/api/admin/control-center/*` (overview, clients CRUD/rotate-key, installations list/update)
  • Framtida extension points returnerar 501: remote-config, remote-restart, module-toggle, auto-update, broadcast, roll-sync

v2.0.0-hub.9 — M3X HUB 2.0 — Modul 4: Stripe Integration

Sprint 7 · 2026-08-02

Features

  • Utredde och verifierade befintlig Stripe-stack (`checkout.service`, webhook `POST /api/webhooks/stripe`, `order-delivery`, Commerce Foundation) — kompletterade luckor utan att bygga om flödet
  • Checkout Session metadata utökad med `productIds`/`productSlugs`; success/cancel-URL:er mot `/checkout/success` och `/checkout/cancel` oförändrade
  • Webhook: `charge.refunded` → `orderService.markRefunded`; `payment_intent.succeeded` delegerar nu till samma `onOrderPaid`/delivery som `checkout.session.completed`; event-idempotens via ny tabell `stripe_webhook_events`
  • Post-payment coins: debiterar `coinsUsed` (`checkout_discount`) och krediterar `Product.coinsBonus` (`purchase_bonus`) idempotent via `coinsService.settleCheckoutCoins`
  • Admin: `POST /api/admin/orders/:id/mark-paid`, live `/admin/payments` (sök/filter + webhook-logg), dashboard ProductsCard visar senaste betalning

v2.0.0-hub.8 — M3X HUB 2.0 — Modul 3: Commerce Foundation

Sprint 6 · 2026-08-02

Features

  • Utredde och verifierade den redan omfattande, befintliga order/checkout/Stripe-infrastrukturen (`Order`/`OrderItem`/`Payment`/`Refund`-modellerna, `checkout.controller.ts`, `orders.controller.ts`, `admin-orders.controller.ts`, `stripe-webhook.controller.ts`, hela `/admin/orders`-UI:t, `/dashboard/purchases`) innan någon kod ändrades — ordersystemet fanns redan och byggdes INTE om från noll, trots att uppdraget antog motsatsen
  • Ny provider-agnostisk motor `modules/orders/order.service.ts` — utvinnen ur `modules/stripe/checkout.service.ts`, som tidigare byggde order-draften och skrev `Order`/`OrderItem`-rader direkt blandat med sin Stripe-specifika sessionslogik. `createOrder`/`markPaid`/`markFailed`/`markExpired`/`buildOrderDraft` flyttades ut oförändrade (samma beteende, samma resultat) så att en framtida betalningsleverantör (PayPal) kan återanvända dem utan Stripe-beroende — `checkout.service.ts` innehåller nu bara det som faktiskt är Stripe-specifikt (session/webhook/payment-intent)
  • Nya endpoints `POST /api/orders` (skapa en fristående `DRAFT`-order, ingen betalningsleverantör inblandad — den enda vägen att skapa en order fanns tidigare bara via Stripes `create-session`, vilket blockerade allt utan konfigurerad Stripe-nyckel) och `PATCH /api/orders/:id` (ägaren applicerar/tar bort en M3X Coins-rabatt innan betalning) — inga dubbletter: `GET /api/orders/:id/payment-status` (ägare/admin), `GET /api/me/orders` (lista) och hela `/api/admin/orders/*` fanns redan och lämnades orörda
  • Ny orderstatus `DRAFT` i `OrderStatus`-enumet (additiv migration `0006_commerce_foundation.sql`) — de sex kravda statusarna (Draft/Pending/Paid/Cancelled/Refunded/Failed) mappas nu tydligt: `DRAFT`/`PENDING`/`CANCELLED` på `Order.status`, `PAID`/`REFUNDED`/`FAILED` redan täckta av befintliga `Order.status`+`Order.paymentStatus`. Admin-filtret "unpaid" och `ORDER_STATUSES`-listan i `/admin/orders/[id]` uppdaterade för att inkludera `DRAFT`
  • Nya fält `Order.coinsUsed`/`Order.coinsDiscountAmount` (additiv migration, defaultar till 0) — kopplar ihop Sprint 3.1:s Coins-modul med ordermotorn: `applyCoinsDiscount()` validerar saldo (utan att debitera det ännu — det är en betalnings-completion-angelägenhet för Modul 4/5), räknar om `total` och loggar en `OrderLog`. Visas nu på `/dashboard/purchases` (`MeOrdersPanel`) och `/admin/orders/[id]`
  • Dashboard (`GET /api/dashboard`, `ProductsCard`, `/dashboard/purchases`) och admin-orderhantering (lista/filtrera/sök/statusändra/refund/cancel) verifierade fungera korrekt med de nya fälten/statusen — inga ändringar behövdes utöver typtilläggen ovan, eftersom Sprint 2B/Modul 2 redan byggde denna infrastruktur komplett

v2.0.0-hub.7 — M3X HUB 2.0 — Modul 2: Licenssystem

Sprint 5 · 2026-08-01

Features

  • Aktivering/deaktivering av licenser (`license.service.ts` — `activate()`/`deactivate()`) — den enda verkligt saknade delen: `LicenseActivation`, `currentActivations` och `lastActivated` fanns redan i schemat men ingenting skrev till dem tidigare. Aktivering är idempotent per `deviceId` (samma enhet som "checkar in" igen förbrukar inte en ny aktiveringsplats) och respekterar `activationLimit` (409 CONFLICT vid överskriden gräns); deaktivering tar bort en specifik aktivering (skiljer sig från befintlig "reset activations" som nollställer alla på en gång)
  • Nya endpoints `POST /api/licenses/:id/activate` och `POST /api/licenses/:id/deactivate` under den redan existerande, autentiserade `/api/licenses`-routern (ägaren eller admin) — inga dubbletter: `/api/admin/licenses/*` (skapa/förläng/suspendera/återaktivera/återkalla/reset-activations) fanns redan komplett sedan tidigare och lämnas orörd
  • `GET /api/me/licenses` (`me.service.ts`) synkar nu utgångna licenser lazy (samma mönster som `syncPremiumExpiry` i `user.service.ts` och den befintliga `syncExpiredStatus` i `license.service.ts`) — en `ACTIVE`-licens vars `expiresAt` har passerat flippas till `EXPIRED` vid läsning istället för att bara reflekteras när admin-vyn eller `/api/licenses` råkar synka den
  • `GET /api/me/downloads` (`download.service.ts`) filtrerar nu bort produkter vars licens är Suspended/Revoked/Expired — tidigare visades posten i listan trots att ett faktiskt nedladdningsförsök redan gav 403 via `assertEntitlementValid`; nu är "visas" och "tillåts" konsekventa. Nytt fält `licenseStatus` på `MeDownload` för transparens
  • `ProductsCard` (dashboard) visar nu antal aktiva licenser och senaste aktivering (produkt + datum), återanvänder befintlig `GET /api/me/licenses` (nu utökad med `lastActivated`/`currentActivations`/`activationLimit`) — ingen ny aggregat-endpoint behövdes. `DashboardCard`-wrapper och gridposition oförändrade

Fixes

  • Licensstatusar (Active/Expired/Suspended/Revoked + Inactive) verifierade konsekventa överallt status kontrolleras: `LicenseStatus`-enumet i Prisma-schemat täckte redan alla fyra kravda värden — ingen migration behövdes
  • Regressionsbugg hittad under E2E-verifiering och fixad på tre ställen (`license.service.ts`, `admin-licenses/service.ts`, `me.service.ts`): den lazy expiry-synken skrev tidigare över VILKEN status som helst till `EXPIRED` bara för att `expiresAt` passerat — inklusive en admins explicita `SUSPENDED`/`REVOKED`. Exempel: återkalla en licens vars utgångsdatum redan passerat visade felaktigt `EXPIRED` istället för `REVOKED` vid nästa läsning. Lazy-synken flippar nu enbart `ACTIVE → EXPIRED`

v2.0.0-hub.6 — M3X HUB 2.0 — Modul 1: Marketplace Foundation

Sprint 4 · 2026-08-01

Features

  • Befintlig marketplace-katalog (marketplaceService, bots-marketplace/marketplace-modulerna) utökad — inte omskriven: Fortnite & Warzone-bots får nu egna toppkategorier (Fortnite/Warzone) istället för generiska "Discord Bot"
  • Ny "Bundle"-kategori + exempelprodukt (M3X Ultimate Bundle) — katalogen täcker nu samtliga 7 kravda kategorier (Discord Bots, FiveM Scripts, Fortnite, Warzone, Premium, Tools, Bundles) plus befintlig "Kommande"
  • GET /api/products stödjer nu valfria ?q=&category=&sort=-query-parametrar via nya delade filter/sort-funktioner i shared/src/marketplace/index.ts (ingen dubblerad logik mellan frontend/backend)
  • Ny "Owned"-status — GET /api/products & GET /api/products/:slug markerar owned: true när en inloggad användare äger produkten (riktig licens/order-koppling via ny meService.getOwnedProductSlugs(), återanvänder samma query som /api/me/products); aldrig fejkad, alltid false för anonyma requests
  • Ny visningsfält coinsPrice (pris × 10, delad computeCoinsPrice()-hjälpare) på produktkort/produktsida — rent informativt, ingen coins-betalningslogik byggd
  • Ny "Kommande funktioner"-sektion (upcomingFeatures) på produktsidan — riktiga roadmap-poster för kommande bots/bundle, ärlig tom-state annars
  • Canonical produktsida-konflikt löst: /products/[slug] (fullständig SEO/JSON-LD, gallery, features, FAQ, version history, relaterade produkter) behålls som enda canonical route; äldre /marketplace/[id] omdirigerar nu permanent dit istället för att rendera en egen enklare vy
  • ProductsCard (dashboard) visar nu även total katalogstorlek och senaste köpdatum bredvid befintlig ägda-produkter-lista — DashboardCard-wrapper och gridposition oförändrade
  • Install/Köp/Detaljer-knappar på marketplace-kort och produktsidan är ownership-medvetna — ägda produkter visar "Installera" (länkar till befintligt /dashboard/products) istället för "Köp"

v2.0.0-hub.5 — M3X HUB 2.0 Sprint 3.1 — M3X Coins Foundation

Sprint 3.1 · 2026-08-01

Features

  • Ny /api/v1/coins-namespace vid sidan av befintliga /api/me/coins/* (som fortsätter fungera oförändrat)
  • GET /api/v1/coins — exakt saldo-summary (balance, todayChange, totalEarned, totalSpent, latestTransaction) beräknad helt via Prisma-aggregat, ersätter Sprint 2B:s klientsida approximation över senaste 50 transaktionerna
  • GET /api/v1/coins/history — paginerad transaktionshistorik för inloggad användare
  • GET /api/v1/coins/statistics — global myntstatistik för admin (coins i cirkulation, totalt utdelat/spenderat, användare med saldo)
  • POST /api/v1/coins/admin/add & /admin/remove — admin krediterar/debiterar en användares saldo, återanvänder befintlig credit()/debit()-logik i coins.service.ts (inget dubblerat)
  • GET /api/v1/coins/admin/:userId/summary & /admin/:userId/history — admin-vy av en specifik användares saldo/historik
  • coins.service.ts utökad med getBalanceSummary(), getGlobalStatistics(), adminCredit() & adminDebit() — alla admin-mutationer auditloggas via befintlig audit.service.ts
  • Ny admin-sida /admin/coins — sök användare, se saldo/historik, lägg till/ta bort coins, se plattformsstatistik; registrerad i AdminSidebar
  • CoinsCard och /dashboard/coins uppgraderade till GET /api/v1/coins + /coins/history — samma UI/UX, mer exakta siffror
  • Additiv migration 0005_coins_admin_fields.sql — coin_transactions.source & .description (nullable) för admin-mutationer, inga befintliga rader påverkas

v2.0.0-hub.4.5 — M3X HUB 2.0 Sprint 3.0 — Auth Hardening & Decimal Migration

Sprint 3 · 2026-08-01

Features

  • authenticate-middleware slår nu upp sessionen i databasen (sessionService.findActiveSession) på varje request istället för att bara lita på JWT-signaturen — logout, admin "force logout" och bans invaliderar nu faktiskt ett redan utfärdat token
  • Premium-utgång synkas nu vid inloggning/sessionskontroll — en utgången premiumanvändare degraderas automatiskt till USER, medan personalroller (ADMIN/SUPER_ADMIN) aldrig påverkas av premium-utgång
  • rateLimiter-middleware applicerar en striktare gräns (max 30/fönster) på riktiga auth-känsliga path-prefix (/auth, /login, /api/auth, /api/v1/auth, /api/checkout, /api/v1/checkout)
  • CSRF-skydd kopplat genom authFetch/api-fetch.ts på frontend för alla tillståndsändrande requests
  • Additiv migration 0004_money_decimal_types.sql — payments.amount samt orders.subtotal/tax/discount/total breddade från flyttal till NUMERIC(10,2) för att eliminera avrundningsdrift i aggregat/återbetalningar
  • Ny lib/decimal.ts-hjälpare används konsekvent där dessa fält läses/skrivs

Fixes

  • JWT-only auth kontrollerade aldrig sessions-tabellen — en utloggad/bannad användares token förblev giltigt fram till JWT-utgång

v2.0.0-hub.4 — M3X HUB 2.0 Sprint 2.5 — Production Stabilization

Sprint 2.5 · 2026-07-31

Features

  • Ingen ny funktionalitet — ren stabiliserings-/revisions-sprint efter Sprint 1/2A/2B
  • Fullständig backend-revision — alla routes, controllers & services i backend/src verifierade som korrekt kopplade
  • Fullständig dashboard-revision — bekräftat att alla 9 kort är fria från placeholder-data och konsekvent använder DashboardCard + useDashboardCardData
  • 8 döda pre-Sprint-1-dashboardkomponenter borttagna efter grep-verifiering i hela monorepot (frontend, backend, shared, discord-bot)
  • Prisma-schema & migrationer granskade end-to-end — 0002-migrationen bekräftat identisk med schema.prisma, två saknade FK-index tillagda via ny migration 0003
  • npm audit kört — 1 av 5 sårbarheter åtgärdad utan brytande ändringar (brace-expansion), 4 kvarstår och kräver brytande major-uppgraderingar (dokumenterat, ej åtgärdat)

Fixes

  • Saknad asyncHandler i v1/discord.routes.ts kunde orsaka tysta hängningar vid onhanterade promise-rejections
  • POST /api/v1/announcements saknade adminskydd — vem som helst kunde skapa hub-breda meddelanden — nu kräver requireAdmin
  • admin-products.controller.ts uploadFile använde rå res.json istället för delad sendError-helper
  • admin-notifications-flödet saknade audit-logg och tystade utskicksfel — lägger nu till audit.service-loggning + felloggning per mottagare
  • 3 bekräftat döda backend-exports borttagna (bots-marketplace.controller.ts, auth.controller.ts#getCurrentUser/#updateUserSettings, premium-platform.controller.ts#getPremiumOverview)
  • Hårdkodade hex-färger i 6 Sprint 1/2A/2B-filer bytta till befintliga design-tokens (bg-background) istället för #06060b/#0a0a0f

v2.0.0-hub.3 — M3X HUB 2.0 Sprint 2B — Dashboard Live Data

Sprint 2 · 2026-07-31

Features

  • Alla 9 dashboard-kort bytte från placeholder-data till riktiga API-anrop
  • Ny delad hook useDashboardCardData — enhetlig fetch/loading/error-hantering för alla kort
  • Welcome/Profile/Premium återanvänder befintlig useAuth()-kontext (GET /api/auth/me) — noll extra nätverksanrop
  • Coins-kortet använder GET /api/me/coins/balance + /transactions (Sprint 2A) med härledd dagsförändring, intjänat & spenderat
  • Products/Downloads-korten använder befintliga GET /api/me/products & /api/me/downloads
  • News-kortet använder publika GET /api/news (Sprint 2A) — 5 senaste publicerade inläggen
  • RecentActivity-kortet återanvänder befintliga GET /api/me/activity
  • Ny liten API-klient frontend/lib/news/api.ts + utökad frontend/lib/me/api.ts (profile, coinsBalance, coinsTransactions) — inga nya backend-endpoints
  • Skeleton-loading och "Kunde inte hämta data."-fallback på samtliga kort — dashboarden kraschar aldrig
  • /dashboard/coins lättkopplad till samma riktiga coins-endpoints

v2.0.0-hub.2 — M3X HUB 2.0 Sprint 2A — Backend Foundation (Coins, Profile, News)

Sprint 2 · 2026-07-31

Features

  • M3X Coins-ekonomi — CoinTransaction-ledger med atomiska credit/debit-operationer och saldoskydd
  • Coins läsvägar — GET /api/me/coins/balance och GET /api/me/coins/transactions
  • Utökad profil — bio & socialLinks-fält på User, GET/PATCH /api/me/profile
  • Nyhetsflöde-foundation — NewsPost-modell, GET /api/news och GET /api/news/:slug (publikt)
  • Handskriven SQL-migration 0002_hub_coins_profile_news.sql, validerad med prisma validate

v2.0.0-hub.1 — M3X HUB 2.0 Sprint 1 — Dashboard Foundation

Sprint 1 · 2026-07-31

Features

  • Modulär DashboardCard som bas för alla hubbkort
  • DashboardGrid äger layout — DashboardPageClient är tunn shell
  • Nio dashboardkort med placeholder-data (Welcome, Profile, Premium, Coins, Products, Downloads, News, QuickActions, RecentActivity)
  • Utbyggbar sidebar med svensk primärnav + permission-gated Admin/Developer
  • Topbar med Discord-avatar, namn, premium-badge, coins, notiser & settings
  • Placeholder-sidor /dashboard/profile och /dashboard/coins

Fixes

  • Dashboard hem är inte längre tillfällig homepage — permanent HUB-foundation

v2.0.0 — Version 1.0 Quality Pass — Public Beta

Sprint 18 · 2026-07-26

Features

  • Global quality review — code, design, performance, a11y, security & SEO
  • Quality pass API — GET /api/v1/quality/report with scored audit
  • Extended health — Discord, marketplace, workers & cron jobs
  • Input sanitization middleware for JSON bodies
  • Developer status — commit, build ID, frontend version & health
  • Version 1.0 panel — version, build, commit, environment, API & database
  • QualityPassPanel & VersionOnePanel in Developer Center
  • Documentation — README, INSTALL, CONTRIBUTING, CHANGELOG & ROADMAP
  • Design spacing scale & Button focus-visible improvements
  • System status panel extended with 8 service checks

Fixes

  • README outdated with wrong backend port and placeholder pages
  • Button component missing keyboard focus styles
  • Health endpoint missing extended service status fields

v1.9.0 — Launch Preparation — Public Beta

Sprint 17 · 2026-07-26

Features

  • SEO — dynamic meta tags, Open Graph, Twitter Cards, canonical URLs
  • robots.txt, sitemap.xml & manifest.webmanifest
  • PWA — install prompt, offline page, icons & splash theme
  • Error pages — /404, /500, maintenance & offline
  • Skeleton loading, lazy loading & route-level loading state
  • Legal — Privacy, Terms, Cookies, Contact & Support
  • Help Center at /help — FAQ, guides, Discord, marketplace & premium
  • Public /changelog & /roadmap pages
  • Enhanced /status — Frontend, Backend, Database, Discord, API, Marketplace, Workers
  • Footer — Status, Roadmap, Changelog, API, Developer, Discord, GitHub, Support
  • WCAG prep — skip link, focus states, ARIA labels
  • Security verified — Helmet, CORS, JWT, rate limiting, input validation, CSRF prep
  • Beta readiness API — GET /api/v1/launch/readiness
  • Developer Center Beta Readiness panel

v1.8.0 — Notification Center

Sprint 16 · 2026-07-26

Features

  • Full Notification Center at /notifications — all, unread, read, important filters
  • 10 category filters — system, premium, marketplace, games, discord, activity, developer
  • 5 notification types — success, info, warning, error, announcement
  • 10 event placeholders — premium, bot, game, achievement, level up, order, license, discord, API key
  • Channel settings — Discord, Email, In-App, Push (placeholder)
  • Message Center at /messages — support, system & news
  • Announcements API — banner, popup, notification (admin)
  • API: /notifications, /messages, /announcements
  • Developer Center Notification Center panel

v1.7.0 — Public API & Developer Portal

Sprint 15 · 2026-07-26

Features

  • Developer Portal at /developers — API home, docs, Swagger, SDK & examples
  • OpenAPI 3.1 spec with Swagger UI at /developers/swagger
  • API key management at /dashboard/api — create, delete, regenerate
  • Rate limits — Free, Premium, Enterprise tiers
  • SDK placeholders — JS, TS, Python, PHP, C#, Go
  • Webhooks prepared — player, bot, license, premium, achievement events
  • Public status page at /status
  • Interactive API Explorer with placeholder responses
  • API: /api/v1/developers/* & /api/v1/status
  • Developer Center Public API panel

v1.6.0 — Analytics & Business Intelligence

Sprint 14 · 2026-07-26

Features

  • Analytics Center at /analytics — overview, traffic, dashboards & export
  • Traffic charts — line, bar & area with day/week/month/year periods
  • Game analytics — Fortnite, Warzone, FiveM, Discord
  • Bot analytics — installs, usage, crashes & updates
  • Premium & marketplace — conversion, revenue & top products
  • System analytics — API, server, workers & logs
  • 6 pre-built dashboards: Executive, Developer, Marketplace, Games, Bots, Premium
  • Export CSV & JSON (PDF placeholder)
  • API: /api/v1/analytics/* — modular BI endpoints
  • Developer Center Analytics Platform panel

v1.5.0 — M3X Activity Platform

Sprint 13 · 2026-07-26

Features

  • Activity Platform at /activity — dashboard, profile, leaderboards & server stats
  • XP, level, messages, voice/camera/screen share tracking
  • Leaderboards — daily, weekly, monthly, all-time with 6 sort modes
  • Achievement system — 10 milestones prepared
  • Activity timeline — level-ups, achievements & rank changes
  • Server stats — members, voice channels, messages & voice hours
  • API: /activity/profile, /leaderboards, /server, /achievements
  • Bot integration prepared — internal sync endpoint
  • WebSocket & activity notifications prepared
  • Developer Center Activity Platform panel

v1.4.0 — Enterprise Admin Control Center

Sprint 12 · 2026-07-26

Features

  • Full Admin Control Center at /admin with sidebar navigation
  • Dashboard — users, premium, licenses, bots, games, revenue & system health
  • User management — search, filter, sort, pagination & actions
  • Role management — Guest, User, Premium, Moderator, Developer, Admin, Owner
  • Permission matrix with role-based access control
  • Game, bot, marketplace, license, payment & server management
  • System logs, settings & developer health metrics
  • API: /api/v1/admin/* — 15 endpoints behind requireAdmin
  • Developer Center Admin Control Panel

v1.3.0 — Premium Platform & Licensing

Sprint 11 · 2026-07-26

Features

  • Full /premium page — Hero, plans, benefits, FAQ, testimonials
  • 5 plans: Free, Premium Monthly/Yearly, Lifetime, Enterprise
  • License Center at /dashboard/licenses
  • My Purchases at /dashboard/purchases
  • Checkout with order summary, coupons, tax & payment method selection
  • User badges: Premium, Founder, Developer, Moderator, Verified, Lifetime
  • API: /premium/plans, /licenses, /orders, /subscriptions
  • Developer Center Premium Platform panel

v1.2.0 — Discord Bots Marketplace

Sprint 10 · 2026-07-26

Features

  • Full Discord Bots Marketplace at /bots
  • Search, filter & sort — name, category, features
  • Bot cards with status, downloads, rating, tier badges
  • Product pages — commands, permissions, FAQ, changelog
  • My Bots dashboard at /dashboard/bots
  • API at /api/v1/bots — list, detail, categories, popular, latest
  • Developer Center Bots Marketplace panel
  • Featured bots: fortnite, warzone, activity

v1.1.1 — Stabilisering — Dev Startup & Health

Sprint 9.1 · 2026-07-26

Features

  • Single-command dev environment: npm install && npm run dev
  • Enhanced /api/v1/health — Frontend, Backend, Database, API, Version
  • Startup readiness banner with service checkmarks
  • System Status panel on /developer/preview
  • Registered routes & installed modules inventory
  • Backend port standardized to :5000

v1.1.0 — Warzone Module

Sprint 9 · 2026-07-26

Features

  • Complete Warzone module via Game SDK — mirrors Fortnite architecture
  • Player search: Activision ID, Battle.net, Xbox, PlayStation with autocomplete
  • Full profile: avatar, platform, region, linked account, last updated
  • 11 stat cards: Wins, Kills, Deaths, K/D, Matches, Gulag Wins, Damage, SPM, Accuracy, Headshots, Time Played
  • Match history: placement, K/D, damage, gulag result, mode, duration, date
  • Leaderboards: Daily/Weekly/Monthly/Lifetime — sort Wins, Kills, K/D, Damage, SPM
  • Cache + rate limiting (30 req/min)
  • Error states: offline, not found, timeout, rate limit
  • Developer Center — Warzone module health panel

v1.0.0 — Discord Integration Platform

Sprint 8 · 2026-07-26

Features

  • Discord OAuth2 login, link & unlink accounts
  • Full Discord profile — avatar, banner, username, global name, user ID
  • Connected servers where user and M3X bot coexist
  • Bot Center at /dashboard/bots — status, version, latency, uptime
  • Multi-platform linking scaffold (Epic, Steam, Riot, Xbox, PlayStation)
  • Discord notifications & activity panels (real-time ready)
  • Discord settings — visibility, notifications, language, servers
  • 11 secured API endpoints with JWT + rate limiting
  • Developer Center — Discord module status panel
  • 4 new Prisma models: DiscordSettings, LinkedAccount, DiscordGuild, DiscordGuildMember

v0.9.0 — Fortnite Module

Sprint 7 · 2026-07-26

Features

  • First complete game module — Fortnite via Game SDK
  • Global player search (Epic Display Name & Epic ID)
  • Full profile page with avatar, platform, region, linked date
  • Stats panels: Lifetime, Season, Daily, Weekly, Monthly
  • 11 stat cards: Wins, Kills, Matches, K/D, Win Rate, Top 10/25, Avg Placement, Damage, Time Played, Level
  • Match history with placement, kills, mode, duration, date
  • Leaderboards: Daily/Weekly/Monthly/Lifetime — sort Wins, Kills, K/D, Win Rate
  • Premium glassmorphism UI with skeleton loading & error states
  • In-memory cache layer + rate limiting (30 req/min)
  • Developer Center — Fortnite module health panel

Fixes

  • Build errors in fortnite routes and error state types

v0.8.0 — Game Platform

Sprint 6 · 2026-07-26

Features

  • IGameSDK — unified interface for all game modules
  • GameManager auto-loads 9 installed modules
  • Modules: Fortnite, Warzone, FiveM, Discord (+ 5 coming soon)
  • Stat cards, player profile, leaderboards, match history, achievements
  • /games/[slug] dynamic pages with tabbed UI
  • Global search across all enabled games via API

v0.6.0 — Core System — Providers, Layout & Modules

Sprint 4 · 2026-07-26

Features

  • 11 modular global providers (Theme, Language, Currency, User, Settings, Notifications, Permissions, Games, Premium, Search)
  • Unified Settings system with date/number formats & notification preferences
  • Notification Center with category filters (real-time ready)
  • Global search engine with extensible index
  • AppShell layout — Sidebar, Topbar, Content, Footer (desktop/tablet/mobile)
  • Game module registry — enable/disable games without code changes
  • Permission roles: Guest, User, Premium, Moderator, Developer, Admin, Owner
  • Future-ready Sidebar navigation with permission filtering

Fixes

  • Settings hydration from authenticated user profile

v0.5.0 — Developer Center

Sprint 4 · 2026-07-26

Features

  • Full Developer Center dashboard at /developer
  • Changelog with expandable sprint entries
  • Roadmap with quarter grouping
  • Sprint status tracking
  • Live logs panel (WebSocket-ready)
  • Build status history
  • Version history timeline
  • Project Progress panel with codebase metrics

v0.4.0 — User System & Discord OAuth

Sprint 3 · 2026-07-26

Features

  • Discord OAuth2 flow (prepared)
  • User model with full profile fields
  • Role system (User, Premium, Moderator, Admin, Super Admin)
  • Dashboard with welcome, linked games, activity
  • Settings page (language, currency, theme, timezone, country)
  • Premium subscription view
  • Auth navbar with avatar dropdown
  • JWT session cookies

Fixes

  • Fixed OAuth redirect URI to backend callback
  • Improved user upsert for Discord accounts

v0.3.0 — Landing Page Redesign

Sprint 2 · 2026-07-26

Features

  • Full landing page redesign
  • Community, Live Status, Updates, Activity Feed sections
  • Blue/purple/pink accent system
  • Official M3X HUB logo support
  • Modern footer with link columns

Fixes

  • Tailwind neon color tokens
  • Logo auto-detection

v0.2.0 — SaaS Foundation

Sprint 1 · 2026-07-26

Features

  • Next.js 15 frontend with 7 pages
  • i18n, currency, and theme systems
  • Express API skeleton
  • Prisma schema with 14 models
  • Docker & Nginx setup
  • Discord bot skeleton

v0.1.0 — Initial Scaffold

Sprint 0 · 2026-07-26

Features

  • Monorepo structure
  • TypeScript everywhere
  • ESLint & Prettier