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
812 changes Clear filters
December 2025
1
-
Feature
7:58 PM
Add output schemas for Facepunch API endpoints
Details
Introduces multiple JSON schema files under schema/output_schemas/ to describe responses from various Facepunch API endpoints, including package queries, news, reviews, versions, and utility endpoints. Also adds schemav1.py and renames schema.py to schemav2.py for versioning.
d6d636c
4
-
Fix
10:20 AM
Refactor settings page, fix persistence & API 500 errors
2f8a553 -
Feature
6:47 AM
Implement live global player count and replace stats cron with direct API fetch
72d84f3 -
Refactor
6:09 AM
Refine Global Stats: cleaner footer, consistent pills, removed search
53fcf6e -
Feature
4:15 AM
V4.0 overhaul - Spotlight Hero, Rank History, Filters
17fc416
10
-
Refactor
5:37 PM
Refactor global stats caching and add update script
Details
Moved API fetching and caching logic from frontend/global-stats.php to a new tools/update_global_stats.php script. The frontend now reads from a pre-populated cache file, improving separation of concerns and enabling easier cache updates via cron or manual runs.
9607b72 -
Feature
5:30 PM
Implement Global Stats page with glassmorphism design and auto-discovery integration
6a5cf41 -
Feature
4:50 PM
Implement Auto-Discovery for sbox API Schema and Internal News Viewer with Premier Styles
4c737bd -
Fix
1:32 PM
Fix notification system: resolve schema mismatch, force cache refresh, and prevent duplicates
535de1c -
Style
1:20 PM
Enhance package card aesthetics and fix layout alignment
64342c5 -
Feature
12:50 PM
Implement package comparison feature with premium UI
d04b6c7 -
Feature
11:16 AM
Add chart history for games and maps (Dec 3-6, 2025)
Details
Added new chart history JSON files for games and maps for December 3rd, 4th, 5th, and 6th, 2025. Updated existing map chart history for December 3rd, 2025 with latest data.
5edb6ef -
Refactor
11:11 AM
Refactor notification handling and remove tools
Details
Refactored NotificationDispatcher and NotificationManager to improve PDO handling and error logging, and enhanced batch notification creation. Removed obsolete tools/check-opcache.php and tools/test-db.php scripts.
203062c -
Fix
12:31 AM
Fix multiple log errors and API issues
Details
- Add Steam ID validation to prevent 400 errors from Steam API
- Added isValidSteamId64() and normalizeSteamId() helper functions
- Updated getSteamSboxPlaytime(), checkSteamSboxOwnership(), and getSteamFriendsList()
- Invalid Steam IDs are now logged and rejected early
- Fix cache decompression failures
- Added missing base64_decode step before gzdecode in cache_manager.php
- Matches encoding process in set() method
- Suppress non-critical theme directory warning
- Commented out error_log in generate-critical-css.php
- Directory exists, warning was from transient path resolution issue
- Fix settings API returning HTML instead of JSON
- Updated fetch URLs from /api/settings to /backend/api/settings.php
- Resolves 'Server returned HTML instead of JSON' error on settings page
be6504b -
Performance
12:22 AM
Improve admin UI and reputation sync logic
Details
Refactored admin panel pages for cache and reputation management with improved HTML structure, styling, and code formatting. Enhanced reputation sync to use the higher value between Steam and s&box API playtime. Updated API endpoints in admin actions and improved code consistency across admin scripts.
bc249b8
3
-
Performance
2:11 PM
Enhance .htaccess with compression, caching, and routing
Details
Added Brotli and improved gzip compression, static asset caching headers, and security headers. Implemented advanced routing for API, static files, and front controller pattern. Improved handling of static files, preflight requests, and direct access to admin/auth PHP files.
9476102 -
Refactor
1:50 PM
Switch to dynamic CSS bundle loading
Details
Removed hardcoded references to styles.css in admin and compare pages. Updated static-assets.php to load bundle.min.css if available, falling back to styles.css, improving asset management and supporting CSS bundling.
eb8a0d7 -
Refactor
1:29 PM
Refactor HTTP requests to use HttpService class
Details
Replaces direct cURL usage with the new HttpService class for all backend API calls, improving code maintainability and centralizing HTTP logic. Also updates NotificationDispatcher to support new user tables and watchlists, and enables cache compression for large entries in cache_manager.php. Cleans up formatting and minor logic in several backend files.
1d414cb
1
-
Fix
4:28 AM
Service worker being overly agressive
def8161
2
-
Fix
10:01 AM
Fix typo in user-profile-redesign.js
c6ab6bd -
Fix
9:58 AM
Fix duplicate constant warnings, add retry logic for connection resets, improve OpenID validation
66e6549
6
-
Performance
8:58 PM
Optimize LCP by lazy loading hero backgrounds and prioritizing above-fold images
02bce51 -
Fix
7:56 PM
Add include guard to prevent CACHE_LOCK_TIMEOUT redefinition warning
96ed68a -
Refactor
7:27 PM
Clean up spammy error logging - keep only actual errors
62ec16c -
Change
7:14 PM
SUM(CASE WHEN success = false THEN 1 ELSE 0 END) as misses
1c352f9 -
Maintenance
12:17 AM
Sync all CSS and config changes
d076fe7 -
Style
12:16 AM
Enhance profile badge styling with modern glassmorphism effects
111eb8b
10
-
Fix
11:25 PM
Fix all tests and improve org page package display - Fixed 7 failing tests (100% pass rate) - Added missing constants (ADMIN_STEAM_IDS, STINKY_STEAM_IDS) - Fixed announcement API endpoint - Added package-card-new styles with 1:1 aspect ratio - Made org page packages smaller (8rem) and more compact - Increased org page items per page from 12 to 20 - Added admin Steam ID configuration
8b7b791 -
Refactor
8:28 PM
Add MVC architecture with services and repositories
Details
- Add authentication helpers (requireAuth, requireAdmin, isAuthenticated, isAdmin, getCurrentUser)
- Add CSRF protection helpers (generateCsrfToken, validateCsrfToken, getCsrfToken, renderCsrfField)
- Add named constants for cache TTL, pagination, rate limits, and timeouts
- Create controller layer (BaseController, PackageController, UserController, AdminController)
- Create service layer (PackageService, UserService, CacheService)
- Create repository layer (BaseRepository, UserRepository, CacheRepository)
- Enhance CacheManager with key building methods (buildOrgKey, buildUserKey, buildPackageKey)
- Migrate 22 admin files to use centralized requireAdmin() function
- Migrate CSRF handling in admin forms to use new helpers
- Add comprehensive unit tests (25 tests, 100% passing)
- Eliminate 440 lines of duplicate authentication/CSRF code
- Zero breaking changes - fully backward compatible
faacc35 -
Refactor
10:30 AM
Remove package type badge from detail pages
Details
- Removed package-type badge element from package-detail.php
- Simplified CSS for package-meta-primary
- Cleaner detail page layout without redundant type indicator
59ef82c -
Fix
10:22 AM
Normalize package type badge sizing across all contexts
Details
- Reduced font-size from 0.875rem to 0.8125rem for .package-type
- Reduced letter-spacing from 0.08em to 0.05em
- Fixed MAP badge appearing too large on package detail pages
- Added max-width constraint to filter buttons
- Consistent sizing across homepage filters, detail pages, and cards
a00fb1f -
Fix
10:07 AM
Improve package type filters and action buttons
Details
- Increased filter box sizes to properly fit Material Symbols icons
- Fixed icon overflow with proper min-height and line-height
- Centered package type filters properly
- Made action buttons (favorite/follow) visible on package cards
- Improved responsive sizing for mobile and tablet
- Better proportions and spacing throughout
bfa8427 -
Refactor
9:46 AM
Eliminate duplicates and fix opacity issues
Details
- Consolidated 26 animations into utilities/animations.css
- Removed 50+ duplicate selector blocks (.package-card, .hero, .package-type-buttons)
- Removed 100+ duplicate variables from theme files
- Fixed package-card opacity causing invisible content on load
- Fixed orphaned CSS rules from cleanup
- Expected 20-25% bundle size reduction
- Improved maintainability with single source of truth
3b82574 -
Fix
9:07 AM
Fix follow button contrast - white icon on green background
74a4317 -
Fix
9:01 AM
Fix button and badge alignment in package details
a13b7b9 -
Fix
6:33 AM
Fix routing bug: package pages incorrectly matched as user profiles
Details
strpos() check for 'api' in org name was matching orgs containing 'api'. Changed to exact string comparison. Also reordered logic to check 2-part package routes before 1-part user profile routes.
cb15263 -
Feature
6:23 AM
Implement package comparison, advanced search, and cache management
Details
Major Features:
- Package comparison tool with side-by-side view
- Advanced search with boolean operators (AND, OR, NOT)
- Admin cache management interface with Redis integration
- Improved authentication with admin session handling
Package Comparison:
- Compare up to 4 packages side-by-side
- Display package thumbnails, types, ratings, and update frequency
- Comparison insights showing highest rated and most recently updated
- Responsive design with mobile support
- localStorage persistence for comparison state
- Clean URL routing
Advanced Search:
- Boolean operator support for complex queries
- Unified search across packages and organizations
- Query validation and syntax error handling
- Result grouping by type
Cache Management:
- Admin panel for Redis cache monitoring
- Real-time cache statistics (total keys, memory usage, hit rate)
- Pattern-based and tag-based cache invalidation
- Preview functionality before invalidation
Authentication & Security:
- Fixed admin session handling (set is_admin flag on login)
- CSRF protection for admin operations
- Admin rate limiting
- Proper session initialization in bootstrap
UI/UX Improvements:
- Gradient styling for comparison page
- Package thumbnails with fallback handling
- Toast notifications for user actions
- Follow button with notification bell icon
- Improved button alignment and styling
Bug Fixes:
- Fixed 403 errors on admin cache endpoints
- Restored comprehensive cache management page
- Fixed package type display (TypeName vs PackageType)
- Fixed thumbnail loading from API
- Removed test files
- Cleaned up placeholder image infinite loop
Technical Improvements:
- Removed unused test files
- Optimized API data structure
- Improved error handling
- Better cache key management
- Clean URL routing for comparison page
a521b64
Generated from the project's commit history whenever the site is deployed. Times are server time.