Changelog

What changed, basically.

v7.6.0June 22, 2026
  • Shop command no longer shows fake "500 balance" when the database is having issues — tells you straight up
  • API server rate limiter won't leak memory anymore — old IP entries get cleaned up every 2 minutes
  • Auto-mod spam cleaner won't stack up duplicate timers if the module gets reloaded
  • Rob command now properly sets your cooldown even when you fail with zero balance — no more unlimited spam attempts
  • Added HSTS header to harden security — served through _headers file
  • robots.txt added so search engines actually find the sitemap
  • noscript fallback added to the homepage — lets people know JS is required
  • Status page stats now retry with proper backoff (2s, then 4s) instead of hammering the API three times instantly
  • Mobile hero panel layout fixed — stats card no longer jumps above the headline text
  • OG meta tags added to changelog, privacy, terms, and 404 pages — link previews actually work now
  • prefers-reduced-motion respected — animations disabled for accessibility when the user asks for it
v7.5.0June 22, 2026
  • Blackjack reworked from auto-play to interactive Hit/Stand buttons — you actually play now
  • Fish and mine cooldowns now show seconds when under a minute instead of rounding to "1m"
  • Race conditions squashed across every economy command — wrapped in DB transactions so concurrent usage doesn't eat your balance
  • Pay and rob were reading stale balances — now re-fetch inside the transaction
  • Gamble's lucky clover check was reading the wrong data — fixed
  • Migration scripts cleaned up — no more hardcoded passwords in the repo, reads from .env like everything else
  • Empty catch blocks throughout API and bot code now actually log errors instead of eating them
  • Pay and use commands now respect the economy toggle — they were slipping through before
  • Version unified to v7.0.0 across the board so /about and help aren't showing different numbers
  • Generated Drizzle migration adding 13 columns that were missing from guild_configs and user_economy (automod toggles, welcome channel IDs, xp boost expiry, etc.)
  • Added npm run db:migrate and db:generate scripts
  • Removed unused parameter in /about that was just sitting there
  • Fixed help command crash when no commands matched — was using a bad non-null assertion
  • Privacy policy and terms pages got staggered scroll animations so it's not all just appearing at once
  • Team page redesigned with actual cards, role badges, and social links that don't look like an afterthought
v7.4.0June 17, 2026
  • Fixed TypeScript compilation errors across 30+ source files — type mismatches, unused imports, incorrect enum patterns resolved
  • Fixed Docker build failing on multiline ENV and trailing backslash syntax in Dockerfile
  • Fixed postinstall script failure in Docker (bash not found in alpine-slim image — switched to node:20-slim)
  • Fixed Drizzle ORM schema: $default replaced with default(), $exists replaced with raw SQL subquery
  • Fixed gambling payout calculation — was overpaying 3x the intended amount on wins
  • Fixed random range off-by-one errors in /search, /fish, /mine, /gamble, /slots, /blackjack
  • Fixed level-role string comparison causing incorrect role assignments on level-up
  • Fixed SQLite date parsing — new Date(dbDate) replaced with manual date string parsing for SQLite date format
  • Fixed SQL injection vulnerability in API stats endpoint — table names now validated against strict allowlist
  • Fixed Response/Request serialization of bigint, Date, Map, Set, and Buffer types in API responses
  • Fixed double .where() clause in ticket database query — merged into single chained filter
  • Node.js version bumped to 20 in Dockerfile for compatibility
  • Switched from bun to npm as package manager in Docker build for lockfile consistency
  • Added global JSON serializer patch for BigInt, Date, Map, Set, and Buffer in API server
  • Website revamp — refreshed landing page hero, feature cards, and command previews
v7.3.0June 13, 2026
  • Discord.js sharding via ShardingManager with auto-scaling — bot spawns shards based on guild count
  • Shard count displayed on the status page and in /stats command
  • Each shard reports stats (guilds, users, commands, latency) via IPC every 15 seconds
  • Removed dashboard page and all OAuth routes (no longer needed)
  • Removed guild config API endpoints and OAuth helper
  • Dashboard link removed from all navigation bars across the site
  • Added page fade-in animation and staggered card slide-up effects across the site
  • Mobile nav and desktop nav now have hover/active transform transitions
v7.2.0June 13, 2026
  • Status webhook now broadcasts live stats to Discord every 5 minutes
  • Fixed status webhook sending 0 values on startup — moved send to ClientReady event
  • Guild join/leave now triggers a status webhook update
  • Status page shows DB connection status (green/rose dot) and "last updated" timestamp
  • Added rate limiting (100 req/min per IP) to all API endpoints
  • Added security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy)
  • Limited JSON body size to 32KB on all API endpoints
  • Whitelisted allowed config fields in dashboard save endpoint — only 10 fields accepted
  • Fixed OAuth CSRF — state parameter now validated on callback with 5-minute TTL
  • Sanitized guild name display in dashboard against XSS (HTML entity encoding)
  • Cached DB health check — rechecks every 30 seconds instead of every poll
  • Bot approved on discords.com — link added to all footers and home page hero
  • Discords.com vote webhook endpoint with API key and webhook secret configured
  • GitHub URL updated to watispro5212/PulseKeep
  • Discord invite updated to b9HBphyeuP
  • Social links and toast notifications added to all website pages
  • Support server blueprint (server.md) — complete channel-by-channel guide
  • Fixed welcome messages not sending when channel wasn't cached
  • Fixed mod log delivery when guild/channel wasn't cached
  • Welcome events now logged to configured mod log channel
  • Error logging added to welcome and log delivery (no more silent failures)
  • /data-deletion command added (owner/co-owner only) for GDPR-compliant user data wipes
v7.1.0June 12, 2026
  • /search now has a 15-minute cooldown (was an infinite money exploit)
  • /fish and /mine now show precise cooldown remaining time instead of "wait a moment"
  • All moderation commands now show the actual error message on failure instead of generic "Failed to..."
  • Ban/kick/mute/unmute/softban/warn now tell the moderator when the user couldn't be DMed
  • DM failure no longer silently swallowed — footer note added to moderation embeds
  • /role add now warns if user already has the role; /role remove warns if they don't
  • /configure ticket_category now validates the channel is a category type
  • Fixed duplicate /vote entry in help command economy category
  • /vote command now handles DBL API errors gracefully (tells user if check is unavailable)
  • DB error handling added to economy commands (daily, work, vote) — no more silent crashes
  • Balance shown after every economy transaction (daily, work, fish, mine, search, blackjack)
  • /clearwarns now has confirmation buttons to prevent accidental data loss
  • /inventory now shows active XP Boost and Lucky Clover status
  • Economy commands now use try/catch for graceful DB error handling
v7.0.0June 2026
  • Complete TypeScript rewrite — 50+ slash commands
  • New economy system: daily streaks, blackjack, slots, fishing, mining
  • Moderation suite with warnings, mute, ban, purge, lockdown
  • Button-based ticket system with private channels
  • PostgreSQL database with Drizzle ORM
  • Express API server with real-time stats
  • Redesigned website
v6.0.0May 2026
  • Original Go version with basic moderation and ticket features