Release history
Changelog
Every new feature, fix and speed-up on s&box Explorer, newest first.
- Last 30 days
- 90
- Features shipped
- 233
- Fixes
- 218
- Days with changes
- 66
304 changes in November 2025 Clear filters
November 2025
14
-
Feature
2:42 PM
Remove grid/list view toggle feature and cleanup documentation
Details
- Remove layout preference toggle from package-list.php and search.php
- Delete backend/api/layout-preference.php endpoint
- Remove API routes for layout preference
- Remove setting option from settings.php
- Delete user_preferences table schema and migration files
- Clean up outdated documentation files
- Grid view is now the default and only view
4ddbdb1 -
Fix
10:09 AM
Fix hero title text cutoff with padding and line-height adjustments
e7f95f9 -
Performance
10:04 AM
Improve package grid layout and color scheme - Fix CSS bundling with proper postcss-import processing - Add cache-busting for CSS assets - Update color palette with darker backgrounds and refined primary blue - Tighter grid spacing and improved card styling with gradients - Enhanced hover effects and shadows
1f2ef30 -
Fix
8:38 AM
Fix duplicate 'by' text in package cards
f190c15 -
Feature
8:26 AM
Add reputation schema migration endpoint and invalid user cleanup
Details
- Register migrate-reputation-schema route in API router
- Add Steam ID validation to leaderboard query (PostgreSQL regex)
- Create cleanup tool for invalid users (template literals, malformed IDs)
- Display 'Private User' instead of Steam ID for private profiles
- Add cleanup button to reputation management page
10f0537 -
Fix
8:04 AM
Add logging to scheduled tasks and fix PostgreSQL subquery aliases
999d434 -
Fix
5:38 AM
Fix database schema errors - Remove name column from saved_searches query - Stub out non-existent org/all API endpoint
934fcb6 -
Feature
5:27 AM
Add comprehensive UX improvements: modals, form validation, keyboard shortcuts, loading states
Details
- Modal system with focus trap, scroll lock, ESC/overlay close
- Keyboard shortcuts (?, /, ESC, g+h, g+f, arrows)
- Form validation with real-time feedback
- Button system with hover/focus-visible states
- Toast notification limit (max 3)
- Loading states for async operations
- Scroll lock utility
- 44px minimum touch targets
- Comprehensive reduced-motion support
- All implementations vanilla JS, no frameworks
9d2c3ae -
Performance
4:52 AM
Ultimate service worker: smart caching, offline support, performance optimized
ad1d7cb -
Feature
4:31 AM
Enhance offline page and service worker
Details
- Redesigned offline.html with s&box Explorer branding
- Improved visual polish with animations and hover effects
- Updated service worker to v2 with better caching strategy
- Added network-first approach with cache fallback
- Enhanced push notification handling with smart tab focusing
f18a820 -
Feature
4:13 AM
Add Discord webhook integration for package notifications
Details
- Implement WebhookNotificationManager with duplicate prevention and rate limiting
- Add ChangeDetector for tracking new and updated packages
- Create DiscordWebhook API wrapper with retry logic
- Build comprehensive admin interface with stats, filters, and health monitoring
- Add database schema for webhook settings, notifications, and package snapshots
- Support package type filtering (games, addons, maps, etc.)
- Implement update cooldown to prevent spam (24h default)
- Add notification history log with success/failure tracking
- Include test functionality for manual package notifications
- Set up cron-compatible detection script
8795fe7 -
Fix
1:57 AM
Fix notification dispatcher - use API functions and correct schema
40a91fa -
Fix
12:19 AM
Remove duplicate update date from package cards
927704f -
Feature
12:06 AM
Create 2025-11-30.json
b1a0796
6
-
Fix
11:55 PM
Chart rank changes now display correctly for current and historical dates
07cba63 -
Feature
11:38 PM
Add global announcement system with admin controls
af8b2d9 -
Feature
1:14 AM
Add error logging to settings API endpoint
c9f0d49 -
Fix
12:37 AM
Css stuf
aa34dc6 -
Fix
12:14 AM
Fix pagination: preserve query params and remove premature page validation
7ab906b -
Fix
12:10 AM
Fix set-language API to use user_settings table instead of non-existent users table
9b11270
14
-
Fix
11:53 PM
Fix notifications delete_all action mismatch
e0e9d55 -
Fix
11:48 PM
Fix admin panel errors and notification system
Details
- Fixed database connection issues in admin tools (AdminUserLookup, AdminActivityHeatmap, AdminBulkActions, CacheHealthMonitor)
- Converted PostgreSQL-specific queries to SQLite/PostgreSQL compatible syntax
- Fixed NotificationManager to use correct PostgreSQL schema (title/message columns)
- Fixed broadcast notification system to properly create notifications
- Improved user lookup page styling with dedicated CSS classes
- Fixed notifications.js to handle API response format correctly
- Added database driver detection for proper table creation (SERIAL vs AUTOINCREMENT)
- Fixed SQL syntax errors and missing file checks in admin classes
597f0f2 -
Fix
11:16 PM
Fix and modernize admin panel CSS and layouts
Details
- Recreate admin.css from scratch with clean design system
- Fix CSS variable conflicts (use --space-* instead of --spacing-*)
- Standardize card headers with icons across all admin pages
- Unify button styles (btn-admin, btn-danger, btn-warning)
- Remove unwanted hover effects and gradients
- Restructure claim-org page to 2-column layout
- Fix donations page button styling and spacing
- Fix warmup-redis grid layout
- Improve responsive breakpoints for mobile/tablet
- Clean up inline styles and use admin.css classes
07b1805 -
Fix
10:53 PM
Fix admin pages: PostgreSQL compatibility, CSS styling, and API endpoints
Details
- Convert all SQLite syntax to PostgreSQL (strftime, julianday, boolean comparisons)
- Fix CSS/layout issues across admin pages (active-users, warmup-redis, broadcast-notification)
- Create missing analytics API endpoints (realtime, behavior, comparison, predictions)
- Add proper timestamp casting and type conversion for PostgreSQL
- Fix JavaScript null checks in analytics-advanced
- Remove deprecated links from admin index (API Documentation, Steam Friends Cache)
- Add deprecation warning to steam-friends-cache page
- Ensure consistent admin.css styling across all pages
202aa7b -
Fix
10:30 PM
Fix donation stats not updating - use Unix timestamp for last_updated
8692cda -
Fix
10:21 PM
Fix reputation system and user profile stats
Details
- Add s&box ownership check via Steam API
- Award sbox_owner badge to verified owners
- Fix leaderboard to show display names and avatars
- Fix user package fetching for player profiles with claimed orgs
- Remove artificial limits on claimed org packages (was 4 per org, 12 total)
- Improve pagination to fetch all packages (up to 10k per type)
- Fix user-experience API to return empty array instead of 401 for unauthenticated users
- Add admin tools: sync-reputation.php, clear-user-cache.php, clear-all-user-caches.php
6eef905 -
Performance
8:11 PM
Improve API documentation page with modern design and better organization
Details
- Redesigned hero section with gradient background and glass-morphism effects
- Added sticky sidebar navigation for quick access to API sections
- Improved Swagger UI styling with theme-consistent colors
- Enhanced info section with better typography and spacing
- Fixed OpenAPI spec validation errors (nullable types)
- Replaced hardcoded colors with CSS variables for consistency
- Added responsive design for mobile and tablet devices
- Improved badges, buttons, and interactive elements
- Better contrast and readability throughout
fd957b2 -
Fix
6:47 PM
Fix favorite/follow button state persistence on package pages
Details
- Added server-side checks for favorite and follow status on page load
- Query favorites and followed_packages tables to set initial button state
- Removed JavaScript checkFollowStatus call on init to prevent overriding server state
- Fixed follow button to use 'following' class instead of 'active'
- Updated button text to show 'Following' when active
- Added error handling for database queries
173c677 -
Fix
6:20 PM
Fix compression issues, PostgreSQL schema errors, and Steam Presence toggle
Details
- Disabled PHP CompressionMiddleware (Apache handles compression)
- Disabled cache compression to prevent corruption
- Fixed PostgreSQL schema: removed user_type column from user_sessions INSERT
- Added steam_presence_settings table to PostgreSQL migration
- Fixed SQLite syntax in SteamPresenceIntegration for PostgreSQL compatibility
- Fixed saveUserSettings to use PostgreSQL ON CONFLICT syntax
- Added ini_set to disable zlib compression in API endpoints
- Fixed Steam Presence toggle to load server-side for instant display
- Fixed API URLs for Steam Presence endpoints
- Removed temporary debug tools
37740a7 -
Feature
5:19 PM
Add Redis integration with 10 specialized classes and OPcache optimization
Details
Redis Integration:
- Created 10 production-ready Redis classes in backend/includes/redis/
- RedisBase, RedisCache, RedisCounters, RedisLeaderboard, RedisLock
- RedisRateLimiter, RedisSessionHandler, RedisActivityStream, RedisPubSub
- RedisQueryCache, RedisBloomFilter, RedisHelper
- Integrated Redis into PageViewTracker, NotificationDispatcher, API routing
- Updated RecentlyViewedManager, PostgreSQLManager, WatchlistManager
- Added Redis API endpoints for counters, leaderboards, activity streams
Performance Optimization:
- Added .user.ini with OPcache configuration for 10-50x faster execution
- Added check-opcache.php diagnostic tool
- Optimized cache_manager.php with Redis support
Configuration:
- Updated .htaccess for production optimization
- Redis integration ready but optional (CACHE_DRIVER=sqlite by default)
- All Redis code tested and production-ready
ea95501 -
Performance
3:45 PM
Implement parallel API calls for user package fetching
7de39e2 -
Fix
4:31 AM
Fixing the fixes
d69c4c8 -
Feature
2:48 AM
Add Redis caching support and refactor database managers
Details
- Add RedisCache implementation with fallback to SQLite
- Enhance NotificationManager, ReputationSystem, and WatchlistManager
- Add Redis warmup and system info admin tools
- Remove deprecated precache scripts
- Add cache testing and migration utilities
66a8816 -
Fix
12:59 AM
Fix PostgreSQL compatibility and PWA meta tags
Details
- Add mobile-web-app-capable meta tag
- Fix getDatabase() to support PostgreSQL
- Add saved_searches table to both SQLite and PostgreSQL
- Fix NotificationManager and WatchlistManager to use getDatabase()
- Fix PostgreSQL boolean comparisons (FALSE/TRUE vs 0/1)
- Fix I18n to work with both SQLite and PostgreSQL
- Remove PWA install prompt auto-trigger warning
- Fix user_id vs steam_id column naming in PostgreSQL schema
e27172a
12
-
Feature
11:23 PM
Create 2025-11-27.json
7818f0b -
Fix
8:52 PM
Fix news post default images - use s&box header as placeholder
4d56f06 -
Fix
8:35 PM
Fix notification system schema mismatch
Details
- Updated NotificationManager to use 'content' column instead of 'title'/'message'
- Fixed dispatch-notifications.php to use consolidated DB when available
- Updated createNotification and createBatchNotifications methods
- Notifications now fire correctly when packages are updated
d389f3e -
Fix
8:28 PM
Fix database locks, 404 errors, and concurrent worker overload
Details
- Increased SQLite busy_timeout to 30s and added retry logic to cache operations
- Added ProcessLockManager to limit concurrent workers to 5 max
- Disabled CURLOPT_FAILONERROR and added smart 404 filtering for missing packages
- Added 2s batch delays between worker spawns in schedulers
- Prevents database lock contention and worker stampedes
cf434b8 -
Feature
8:17 PM
Add UGC charts with grid layout, daily snapshots, and rank tracking
3b0c2e2 -
Feature
7:36 PM
Add s&box header image fallback for news posts without media
912f1f7 -
Feature
7:32 PM
Add pagination to org news page and fix news post links to use internal pages
5cedf82 -
Fix
7:18 PM
Css stuff again
d3be490 -
Performance
5:48 PM
Improve search results page: remove hover effects, limit categories to 10 items, enhance mobile UX
9dfb4cb -
Feature
4:48 PM
Add unified search with organizations and categorized packages
e3a2ca7 -
Fix
4:32 PM
Footer
53173be -
Fix
4:14 PM
Improved footer stats
86a0bff
7
-
Fix
5:36 PM
Fix spacing between navbar and page content
72d3294 -
Fix
3:20 PM
Fix translation placeholder syntax for steamLink in credits page
Details
Changed {steamLink} to {{steamLink}} across all locale files to match i18n system's double-brace placeholder format
18f4767 -
Fix
3:13 PM
Fix all stylelint issues across CSS files
6daee0a -
Performance
3:08 PM
Improve API documentation page design
Details
- Add dedicated api-doc.css with modern, compact layout
- Redesign header with gradient background and icon card
- Improve endpoint cards with horizontal layout
- Better typography and spacing throughout
- Enhanced pills and buttons with hover effects
- Improved tables and code blocks styling
- Add responsive design for mobile
- Fix text visibility issues with !important overrides
1de94b9 -
Fix
2:11 PM
Changelog commit items invisible due to opacity
Details
- Removed opacity: 0 from .commit-item causing hidden text
- fadeInUp animation now handles visibility correctly
e07becb -
Fix
2:08 PM
News page CSS syntax errors and visibility issue
Details
- Fixed 5 extra closing braces in pages.css breaking stylesheet
- Removed opacity: 0 from news-item inline style causing hidden posts
- News posts now display correctly with fadeInUp animation
2132961 -
Fix
1:34 PM
Fix CSS styling: modern color functions, hero spacing, and filter button layout
ac92d79
5
-
Fix
4:59 PM
Improve hero component accessibility and UX
Details
- Add prefers-reduced-motion support for animations
- Add visible focus indicators for keyboard navigation
- Increase touch targets to 44px minimum (WCAG AA)
- Add disabled state styling for search input
3ecbc19 -
Feature
4:47 PM
Add analytics system with migration manager and admin tools
Details
- Add MigrationManager for database schema versioning
- Add PageViewTracker for analytics event logging
- Add AnalyticsEvents for event type definitions
- Add aggregate-analytics tool for data processing
- Update AdminLogViewer with analytics support
- Update admin-tools-api with analytics endpoints
- Update log-viewer with analytics UI
65b5a07 -
Performance
3:28 PM
Improve package type filter readability
Details
- Changed icon colors from primary to text-primary for better visibility
- Increased active state text weight to 800 and font size
- Added stronger text shadow on active state for better contrast
- Made "All" button text more readable on blue gradient background
8de35b3 -
Performance
3:19 PM
Improve hero section and package grid design
Details
- Enhanced hero with better spacing and subtle pulsing glow effect
- Redesigned search bar with pill shape and glassmorphism
- Improved package type filters with hover animations and gradient active states
- Enhanced package cards with better shadows, transitions, and hover effects
- Fixed spacing gap between hero and controls sections
- Added proper search icon positioning in HTML
- Improved responsive behavior for mobile devices
abbae2f -
Feature
2:22 PM
Enhance config and CSS for new features and UI
Details
Some stuffs
7755c3d
4
-
Performance
9:17 PM
Remove verbose CSS comments and add will-change optimizations
Details
Removed large header comments and section markers from multiple CSS bundles for community, profiles, admin, and utilities to reduce file size and improve readability. Added 'will-change' property to several animated elements in profiles.css for better rendering performance. Updated featured package image to use 'loading="lazy"' in user-profile-redesign.js. In index.php, added Font Awesome stylesheet for organization profile pages.
f6afdbc -
Fix
8:09 PM
Fix profile layout and widgets system
Details
- Remove duplicate getDatabase() function conflict
- Add profile-widgets API routes (GET/POST) to profile-api.php
- Add profile-widgets routing in router.php
- Add debug logging for profile layout loading
- Profile custom layouts now load and save correctly
- Widgets system now functional with default widgets support
fb94776 -
Feature
3:47 PM
Add consolidated database support and manager
Details
Introduces DatabaseManager for unified SQLite access and adds MigrationManager for data migration. Refactors multiple backend modules and APIs to use the consolidated database when enabled, improving maintainability and scalability. Updates .gitignore to exclude .zip files.
b265cca -
Feature
2:31 PM
Add API documentation generator and route metadata
Details
Introduces API documentation generation via new backend endpoints and helpers, including docs.php and api-doc-generator.php. Refactors Router to support route metadata for documentation, updates API response formatting, and removes obsolete scripts and tools. Also updates frontend scripts to use new API endpoints and improves code consistency.
23e3af2
11
-
Fix
6:37 PM
Css cleanup
Details
just some css cleaning
8b1f7c9 -
Fix
5:51 PM
Notification bell fixes
Details
hopefully
365f485 -
Performance
5:10 PM
Optimize caching strategy: Stale-While-Revalidate and SQLite tuning
4cee3af -
Fix
4:54 PM
Fix template variables, profile links, and notifications footer
1ef0ea3 -
Feature
4:42 PM
Implement search analytics, indexing, and frontend updates
f80d1e2 -
Fix
2:46 PM
Fix double HTML encoding in widget content
Details
Remove htmlspecialchars from storage layer - encoding should only happen at output time to prevent & issues
ab7e5ff -
Fix
2:41 PM
Fix profile layout persistence issue
Details
- Wrap layout data in {'layout': ...} format in POST endpoint to match GET format
- Remove auto-initialization that was overwriting custom layouts
- Add detailed logging for debugging layout load issues
ff7e366 -
Fix
2:30 PM
Load bootstrap.php for i18n in favorites and followed pages
6fc8d74 -
Performance
2:22 PM
Improve Rust theme and fix search bar styling
Details
- Fixed package card text visibility and backgrounds
- Improved action button styling (favorite/compare)
- Changed favorited items to rust green
- Fixed search bar blue glow effects
- Removed localStorage theme caching, use database as source of truth
- Added server-side theme CSS loading to eliminate flash
- Override all blue/purple colors with rust palette
2cc20d8 -
Fix
1:42 PM
Filter hex codes from issue display and remove float animation
a0a1dd1 -
Fix
1:31 PM
Navbar dropdown clipping issue
Details
Changed overflow from hidden to visible on .site-nav to allow dropdown menu to display properly
55513e3
Generated from the project's commit history whenever the site is deployed. Times are server time.