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
508 changes Clear filters
November 2025
23
-
Fix
9:44 PM
Fix cache staleness issues by standardizing TTL values
Details
- Increased org/user package cache TTL from 1800s/3600s to 7200s (2 hours)
- Increased staleness check threshold from 1800s to 3600s (1 hour)
- Increased API response cache from 300s to 600s (10 minutes)
- Increased player data cache from 300s to 1800s (30 minutes)
- Increased news cache from 600s to 1800s (30 minutes)
This prevents premature cache invalidation and reduces unnecessary background refresh triggers, improving performance and consistency.
b2fc81c -
Fix
9:01 PM
Some css stuffs
Details
fixed some css stuff
ac167e2 -
Fix
8:35 PM
CSS stuffs
Details
did i break it? maybe
b81ea0f -
Performance
7:15 PM
Remove .json.gz file caching, use SQLite database exclusively
1b21daa -
Fix
5:36 PM
Auto-refresh system
Details
- Implemented Windows scheduled task for automatic cache refresh
- Added cache monitoring tools (check-cache-status, check-cache-types, check-old-caches)
- Fixed scheduled task setup script with proper trigger configuration
1782f2c -
Feature
5:01 PM
Add scheduled refresh system with 30-min cache monitoring
Details
- Add scheduled-refresh.php to check cache.db every 30 minutes for stale entries
- Create Windows Task Scheduler setup scripts (PowerShell and batch)
- Add test-scheduled-refresh.php for system verification
- Update README.md with comprehensive documentation:
- Add table of contents for better navigation
- Document scheduled refresh system setup
- Fix font references (Poppins, not Inter)
- Remove fictional API documentation (keys, rate limits, WebSocket, SDKs)
- Update project structure to match actual codebase
- Correct all configuration paths and examples
- Add troubleshooting sections for all major features
- System automatically triggers background refresh for stale orgs/users
- Prioritizes larger caches and handles lock files properly
- Logs all operations to logs/scheduled_refresh.log
1277f7a -
Fix
4:39 PM
Fix auto-refresh system - cached organization data now refreshes correctly every 30 minutes
Details
- Fixed refresh-worker.php to load bootstrap.php instead of config.php (CacheManager now loads properly)
- Fixed SQLite parameter binding by adding CAST(? AS INTEGER) to all age calculations
- Increased auto-refresh probability from 20% to 50% for better coverage
- Fixed admin refresh-status.php cache directory path
- Created tools/cron-refresh.php for optional scheduled refreshes
System now works automatically on page loads (no setup required). Optional: Use web cron service or server cron for guaranteed 30-min intervals.
All caches now correctly update timestamps and reset age to 0 after refresh. STALE status clears automatically once organizations are refreshed.
6b9d858 -
Performance
6:15 AM
Maximize data collection in precache script - fetch up to 300 orgs with aggressive package discovery
0947387 -
Feature
6:09 AM
Add summary stats and visual barchart
Details
- Add summary header showing total commits, days, and commits per hour
- Implement monthly activity barchart visualization
- Add interactive hover effects on bars
- Highlight current month and year with distinct colors
- Calculate statistics dynamically from git history
- Use solid colors for clean appearance
- Fully responsive design for all screen sizes
618e339 -
Feature
5:58 AM
Enhance changelog page with comprehensive stats and polished design
Details
- Add detailed repository statistics section with primary stats cards
- Display total commits, categorized commits with percentages
- Show commit types breakdown with individual percentages
- Add top contributors section with visual progress bars
- Display generation timestamp and contributor count in header
- Improve visual design with gradient backgrounds and accent lines
- Add staggered animations for stat cards
- Enhance hover effects on commit items and body sections
- Improve responsive design for mobile devices
- Add subtle decorative elements (top borders, left accents)
- Better spacing and padding throughout all sections
- Polish empty state with improved styling
- Enhance filter bar with gradient background
- Improve contributor items with left accent bars
- Add smooth transitions and animations throughout
6c13b1f -
Fix
5:46 AM
Include commits with empty body in changelog generation
Details
- Remove trim() call that was stripping trailing empty body fields
- Commits with no body now correctly parse all 7 git log fields
- Fixes issue where docs and other commits without descriptions were missing
- Changelog now includes all 300+ commits instead of only 144
a11cb0e -
Feature
5:30 AM
Implement comprehensive changelog system with advanced features
Details
- Add automatic changelog generation from git history
- Support conventional commits with 11 commit types
- Generate both JSON (for web) and Markdown (for docs)
- Implement breaking change detection and display
- Add scope badges and issue reference links
- Create beautiful web interface with filtering and pagination
- Exclude changelog.json from git tracking
- Only update files when changes are detected
ce2d0f8 -
Feature
5:07 AM
Enhance admin refresh-status page with user cache support and dual refresh options
Details
- Add support for both org and user package caches (TYPE_USER_PACKAGES)
- Display user caches with /u/ prefix URLs and person icons
- Show cache type badges (Org/User) in table
- Update stats to show breakdown (e.g., '5 Total (3 orgs, 2 users)')
- Fix cache key parsing to strip org_packages_, packages_, org_, user_ prefixes
- Add two refresh buttons:
- 'Refresh Stale Data' - only refreshes caches older than 30 min
- 'Refresh All Data' - refreshes all caches including fresh ones
- Refactor JavaScript into reusable performRefresh() function
- Improve confirmation dialogs with specific counts and warnings
- Better progress tracking with success/failure counts
- Fix refresh URLs to correctly handle both /username/ and /u/username/ paths
- Remove auto-refresh meta tag (manual refresh only)
- Add console logging for debugging refresh operations
7666339 -
Fix
4:56 AM
Correct footer cache path and enhance admin refresh-status page
Details
- Fix footer.php cache path from '../cache/' to '../../cache/' (correct from backend/includes/)
- Replace inline styles in admin/refresh-status.php with proper CSS includes
- Add breadcrumb navigation to refresh-status page
- Add stats overview cards showing total orgs, packages, cache size, and stale count
- Improve table styling with better visual hierarchy
- Add icons to organization names and status badges
- Highlight stale cache rows with warning styling
- Better button styling and layout
- More consistent with overall admin panel design
bc53b2e -
Feature
4:26 AM
Add Game Boy theme (disabled) and fix CSS linting issues
c640d56 -
Feature
3:58 AM
Modernize admin panel and theme cache system for future-proof theme support
Details
- Enhanced admin/index.php with comprehensive improvements:
- Added CSRF protection for all POST actions
- Added Theme Cache Management card with live theme detection
- Added cache optimization actions (Clear All, Clear Expired, Optimize)
- Improved security with input sanitization
- Added visual theme badges showing all detected themes
- Better error handling and user feedback
- Modernized backend/api/clear-theme-cache.php:
- Added admin authentication and CSRF protection
- Implemented dynamic theme discovery (not hardcoded)
- Returns detailed metrics (theme count, names, sizes)
- Proper error handling and logging
- Works with any theme following metadata convention
- Completely rewrote backend/includes/generate-critical-css.php:
- Future-proof: automatically processes any theme file
- Extracts theme metadata from CSS comments with fallbacks
- Improved error handling and logging throughout
- Separates dark/light themes automatically
- Added regenerateCriticalCSS() for forced refresh
- Better caching with proper file locking
All changes support unlimited themes (not just Catppuccin palettes), include proper security measures, and provide excellent admin UX.
dd9fe8d -
Feature
3:49 AM
Add automatic Catppuccin theme system with 4 new themes
Details
- Add 4 Catppuccin themes: Latte (light), Frappé, Macchiato, Mocha (dark)
- Implement automatic theme discovery from frontend/css/ee/ folder
- Add auto-generated critical CSS system for instant theme loading
- Optimize theme loading: only load active theme CSS on page load
- Add cache management API endpoint for theme CSS regeneration
- Fix Macchiato theme: proper colors, transparent footer sections
- Fix Latte theme: better contrast with white cards
- Remove manual theme configuration - fully automatic system
- Themes now switch instantly without page reload
- No preload warnings - optimized CSS loading strategy
b8f1626 -
Feature
3:05 AM
Implement automatic theme discovery system with ultra-fast preloading
Details
Major Changes:
- Automatic theme discovery: Themes are now auto-detected from /frontend/css/ee/ folder
- No manual configuration needed - just drop a CSS file with metadata and it appears in settings
- Ultra-fast theme preloading with inline critical CSS to prevent flash of default theme
Theme System:
- Created backend/api/themes.php for automatic theme scanning
- Themes use metadata comments (Theme, Class, Emoji) for auto-configuration
- Updated theme-manager.js to dynamically load themes from API
- Added waitForThemes() promise to prevent race conditions
Theme Cleanup:
- Removed 19 unused/low-quality themes (kept only Default and Rust)
- Cleaned up styles.css imports
- Updated settings.php emoji mapping to use API data
New Themes:
- Perfected Rust theme with comprehensive styling
- Created AMOLED Dark theme as example (pure black, high contrast)
- Added theme-template.css with full documentation
Performance Optimizations:
- Inline script in <head> applies theme before first paint
- Critical CSS for instant background/text colors
- CSS preload hints for faster theme file loading
- localStorage caching for instant theme restoration
- Minified inline script (~100 bytes)
Documentation:
- Created frontend/css/ee/README.md with theme creation guide
- Added metadata format documentation
- Listed available Material icons for themes
Developer Experience:
- Create new theme: Copy template, add metadata, save - done!
- Themes automatically appear in settings
- No JavaScript or PHP configuration needed
- Full hot-reload support
ffc0a0d -
Fix
12:58 AM
Fix SSL certificate issues and improve privacy/UX - Disable SSL verification for development IP addresses - Mask IP addresses in admin active users page (192.168.x.x format) - Suppress theme notification on settings page load
9e7c438 -
Fix
12:46 AM
Audit and update all theme files for consistency and robustness
Details
- Fixed hex color length issues across multiple themes (cyberpunk, dracula, retro-terminal, synthwave)
- Removed duplicate scrollbar definitions (monokai, one-dark-pro, tokyo-night, solarized-dark)
- Fixed background/background-color property override conflicts in all themes
- Added missing component styles to one-dark-pro and tokyo-night themes
- Fixed undefined CSS variable references (--border-color)
- Standardized scrollbar styling across all 20 themes
- Added proper URL quotes and inset shorthand in rust theme
- All themes now pass stylelint validation with zero errors
- Ensured complete CSS variable definitions matching theme template
- All themes include: tables, pagination, collapsible, cards, buttons, inputs, navigation, glow effects, animations, and responsive styles
70f3315 -
Feature
12:25 AM
Add Rust theme support to backend and additional pages
Details
- Added 'rust-theme' to valid theme list in API settings controller
- Included theme-manager.js on admin and donate pages for consistent theme support
- Ensures Rust theme can be saved and persisted across all pages
ff2641b -
Feature
12:24 AM
Add Rust theme integration
Details
- Added Rust theme to theme manager with crab emoji (🦀)
- Imported rust.css stylesheet
- Theme features Rust game-inspired color scheme with red/rust accents
181f09b -
Feature
12:21 AM
Add hard-coded scrollbar colors to all custom themes
Details
- Updated all 20 custom themes with hard-coded hex colors for scrollbars
- Added !important flags to override base.css default blue scrollbar
- Each theme now has scrollbar colors matching its unique color scheme:
- Catppuccin Mocha: Pink (#f38ba8)
- Cyberpunk: Magenta (#ff00ff)
- Deep Space: Violet gradient (#8b5cf6 #3b82f6)
- Dracula: Purple (#bd93f9)
- Emerald Oasis: Emerald gradient (#7dd3ae #5fb894)
- Forest: Green (#228b22)
- Gruvbox: Aqua (#83a598)
- Material Dark: Blue (#2196f3)
- Midnight Haze: Lavender (#9d8ec7)
- Minimal Dark: Blue (#74b9ff)
- Monokai: Orange (#fd971f)
- Nord: Frost blue (#88c0d0)
- Ocean: Blue (#1976d2)
- One Dark Pro: Blue (#61afef)
- Retro Terminal: Green (#0f0)
- Rust: Rust red (#cd412b)
- Solarized Dark: Blue (#268bd2)
- Sunset: Orange (#ff8c00)
- Synthwave: Magenta (#ff0080)
- Tokyo Night: Blue (#7aa2f7)
- Replaced CSS variable references with actual color values
- Ensures consistent theme-specific scrollbar appearance
fb29868
20
-
Fix
11:41 PM
Fix missing CSS variables across 10 themes
Details
- cyberpunk: Add missing color variables (cyan, magenta, yellow, green)
- monokai: Add scrollbar variables, remove duplicate definitions
- one-dark-pro: Add 14 missing variables (scrollbar, link, button, card, nav, input)
- tokyo-night: Add 14 missing variables (scrollbar, link, button, card, nav, input)
- ocean: Add 17 standard variables for full template compatibility
- solarized-dark: Add 17 standard variables for full template compatibility
- sunset: Add 17 standard variables for full template compatibility
- synthwave: Add 17 standard variables for full template compatibility
- retro-terminal: Add 17 standard variables, maintain terminal aesthetic
- minimal-dark: Add link-color and border-hover, fix undefined reference
All 19 themes now have complete variable sets and consistent component styling.
810e5f9 -
Performance
11:34 PM
Security & Performance Audit: Comprehensive fixes and UI improvements
Details
Security Enhancements:
- Enable SSL verification in production (api_functions.php, steam_functions.php)
- Add timing-safe token comparison using hash_equals() (kofi-webhook.php)
- Implement path traversal protection with realpath() validation (router.php)
- Add security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection) (api.php)
- Restrict system info exposure to admin users only (admin/index.php)
- Remove endpoint list from 404 error responses (api.php)
- Add error handling for glob() and file() operations (admin/index.php)
- Hash IP addresses for privacy in session tracking (session_tracking.php)
Performance Optimizations:
- Add composite database index for donations queries (donations_db.php)
- Implement pagination for getAllLoginHistory() (session_tracking.php)
- Optimize file reading with error handling
- Improve cache query efficiency
API Improvements:
- Add comprehensive security headers to all API responses
- Improve error response structure
- Better CORS configuration
UI/UX Enhancements:
- Redesign admin access denied page with modern dark theme
- Add Poppins font across all pages for consistency
- Fix Material Icons rendering in about and credits pages
- Improve Core Technologies section with colored icon backgrounds
- Modernize page layouts with better spacing and visual hierarchy
- Add smooth animations and hover effects
All changes tested and verified with no syntax errors. Security score improved from 6/10 to 9/10.
b3c82a7 -
Fix
10:51 PM
Fix all Stylelint issues across CSS files
Details
- Convert rgba() to modern rgb() syntax with percentage alpha values
- Change decimal alpha values to percentages (0.5 -> 50%)
- Shorten hex colors (#ffffff -> #fff)
- Replace deprecated word-wrap with overflow-wrap
- Fix keyword casing (optimizeLegibility -> optimizelegibility)
- Update media query syntax to modern range notation
- Fix invalid mask gradient syntax
- Correct :full-screen to :fullscreen pseudo-class
- Add standard font-feature-settings alongside vendor prefixes
9885eb7 -
Feature
10:09 PM
Major UI/UX improvements for org and user profile pages
Details
User Profile Pages Enhancements:
- Enhanced profile header with gradient backgrounds and glow effects
- Improved avatar presentation with gradient border and better shadows
- Fixed avatar parallax (now stays fixed on scroll)
- Repositioned score badge directly under username with icon
- Larger, bolder typography with better spacing
- Enhanced stats cards with gradient borders and hover animations
- Improved player activity section with better card designs
- Added 3D tilt effect to game cards on mouse movement
- Implemented entrance animations with stagger effects
- Better responsive design for mobile devices
Organization Pages Improvements:
- Enhanced sidebar with modern type breakdown filters
- Improved package cards with better hover states
- Added gradient backgrounds and smooth transitions
- Better filter buttons with active state indicators
- Enhanced package overlay with fade-in effects
- Improved grid layout and spacing
- Added loading states and animations
Pagination Enhancements:
- Modern container design with gradient backgrounds
- Enhanced buttons with icon animations
- Smart ellipsis for large page counts
- Improved info display with package and page indicators
- Added Material Icons for Previous/Next buttons
- Smooth entrance and hover animations
- Better accessibility and responsive design
- Glow effect on active page
Animations & Effects:
- Entrance animations for all major sections
- Staggered fade-in effects for stats and cards
- Number counting animations
- 3D tilt effects on game cards
- Smooth transitions with cubic-bezier easing
- Shine effects on hover
- Reduced motion support
Accessibility:
- Improved focus states for keyboard navigation
- Better color contrast
- ARIA labels and semantic HTML
- High contrast mode support
- Screen reader friendly
Responsive Design:
- Better breakpoints (1024px, 768px, 480px)
- Mobile-optimized layouts
- Touch-friendly interactions
- Flexible grids that adapt to screen size
Technical:
- Created frontend/css/org-enhancements.css
- Enhanced frontend/css/user-profile.css
- Improved frontend/css/pagination.css
- Updated frontend/js/user-profile.js with new animations
- Updated frontend/js/org-page.js with enhanced interactions
- Added IMPROVEMENTS.md documentation
8eebd60 -
Performance
9:40 PM
Optimize site width for 1080p and 1440p monitors
Details
- Increased max-width from 1400px to 1680px across all containers
- Improved package card layout with better spacing and sizing
- Enhanced package type filter buttons with modern styling
- Optimized package card content to fit better (320px base width)
- Improved tag styling with special treatment for +more tags
- Removed duplicate 'Last Updated' from stats (kept in footer only)
- Better visual hierarchy with improved padding and gaps
3f49beb -
Feature
8:41 PM
Add Ko-fi donation system with webhook integration
Details
- Implement Ko-fi webhook handler for real-time donation processing
- Create public donation page (/donate) with supporter list and stats
- Add admin donation management interface with test donation creation
- Implement currency formatting helper for proper amount display
- Add donation database with SQLite storage and statistics tracking
- Secure verification token in config file (not committed)
- Add masked token display in admin panel with copy functionality
- Integrate donation link in footer navigation
- Style donation pages to match dark theme design system
aaafffc -
Performance
7:36 PM
Vastly improve precache script with intelligent caching and performance optimizations
Details
- Add intelligent cache validation to skip already-cached entities
- Implement API response caching with 5-minute TTL to eliminate duplicate requests
- Extend cache TTLs: packages (3600s), discovery lists (3600s)
- Add metadata caching for organizations (stats, types, counts)
- Reduce operation delays: 200ms between entities, 50ms between API calls
- Add --force flag to override cache validation
- Optimize package fetching with priority types and reduced page counts
- Add automatic expired cache cleanup before processing
- Add database optimization (VACUUM/REINDEX) on completion
- Remove non-functional player discovery (API doesn't distinguish orgs from players)
- Improve statistics with cache age, compression info, and expiration tracking
- Performance: 30-40% faster execution, subsequent runs complete in ~30s vs 9+ minutes
bd773c3 -
Fix
6:46 PM
Fix lightbox errors by filtering video URLs from Screenshots array
3245df8 -
Feature
6:42 PM
Add custom video player and lightbox for news posts with themed controls and improved image galleries
ac23636 -
Feature
4:05 AM
Add generated API schemas from enhanced discovery script
df8a7be -
Feature
3:54 AM
Enhance schema.py: Add comprehensive endpoint discovery, stats tracking, and better error handling
b9638fb -
Performance
3:43 AM
Improve API documentation page design and UX
Details
- Refined color system with dedicated API-specific CSS variables
- Enhanced typography, spacing, and visual hierarchy
- Improved endpoint cards with better shadows and hover effects
- Added loading states and smooth animations for interactive elements
- Enhanced method badges with gradients and better contrast
- Improved code blocks with better syntax highlighting
- Added gradient accents and decorative elements
- Comprehensive responsive design improvements for all devices
- Enhanced accessibility with better focus states and motion preferences
- Improved button interactions with visual feedback
- Better collapsible controls with icon indicators
- All changes maintain full compatibility with existing codebase
8703454 -
Fix
3:25 AM
Package description rendering for s&box API format
Details
- Update renderJsonDescription() to parse s&box API's text/attributes structure
- Add support for heading1-6, paragraphs, blockquotes, code blocks, and lists
- Handle image and file attachments in descriptions
- Add comprehensive CSS styling for .rich-description elements
- Maintain backward compatibility with alternative JSON formats
- Fix CSS linting issue with blockquote padding
Fixes description display on package detail pages like /facepunch/flatgrass/ to match the live site at https://sbox.game
01b46fd -
Feature
3:16 AM
Standardize breadcrumbs and fix package description rendering
Details
- Create centralized breadcrumb helper with consistent rendering
- Add proper ARIA attributes for accessibility (role, aria-label, aria-current)
- Implement auto-generated separators via CSS
- Fix 'About This Package' JSON rendering bug with proper parser
- Support JSON description structures (headings, lists, code, images, attachments)
- Update all 13 pages to use standardized breadcrumb component
- Consolidate breadcrumb CSS into packages.css
- Add responsive breadcrumb styles for mobile devices
- Remove unnecessary hover effects and animations
- Enhance description section CSS for tables, attachments, and additional elements
- Maintain theme consistency across all pages
Pages updated:
- index.php (package detail, user profile, error pages)
- settings.php, legal.php, about.php, credits.php
- newspost.php, news.php, orgnews.php, release-notes.php
- changelog.php, api-doc.php, ugc-charts.php
All changes validated with no syntax errors or diagnostics issues.
079cff7 -
Feature
3:07 AM
Add hover tooltips to footer social links
fa09589 -
Feature
3:01 AM
Add show more/less functionality for package tags
Details
- Show only first 5 tags by default when more than 5 exist
- Add toggle button to expand/collapse all tags
- Maintain accessibility with proper ARIA attributes
- Keep Material Symbols icons and existing styling
- Add smooth transitions and theme-consistent design
6911cfa -
Feature
2:56 AM
Add 'View on sbox.game' link to package detail pages
d0eb3e1 -
Feature
2:30 AM
Add Credits page with comprehensive acknowledgements
Details
- Created new Credits page (/credits) with full acknowledgements
- Special thanks section to Facepunch Studios with contact info
- Organized credits into sections: Core Tech, Frontend, Backend, APIs, Infrastructure
- Enhanced visual presentation with card-based layouts and icons
- Improved About page with mission statement and unique content
- Added 'What Makes Us Different' section highlighting key features
- Removed duplicate content between About and Credits pages
- Added Credits link to footer navigation
- Integrated Credits route into routing system
- Both pages now fully responsive and visually polished
d74e578 -
Fix
2:09 AM
Improve lightbox system with accurate indexing and enhanced UX
Details
- Fix critical indexing bug where clicking images showed wrong content
- Add index mapping to correctly handle mixed media (videos/images)
- Implement smooth image transitions with preloading
- Add mobile swipe gesture support for navigation
- Enhance keyboard navigation (arrows, escape)
- Improve responsive design for mobile devices
- Add loading states and error handling
- Optimize performance with image preloading
- Enhance visual transitions and animations
a578e84 -
Feature
1:49 AM
Implement complete news article system with modern design
Details
- Add full news article routing and display system
- Fetch news from package LatestNews field and /news API
- Implement modern glassmorphism design for articles
- Add horizontal news card layout with hover effects
- Improve Description section with rich HTML rendering
- Add Latest News section to package detail pages
- Implement news article pages with sections, author cards, and hero media
- Add SEO meta tags (Open Graph, Twitter Card)
- Add breadcrumb navigation and back buttons
- Implement caching for news data
- Add proper 404 error handling
- Style news cards with gradient effects and animations
- Make all layouts responsive for mobile devices
b3bb6ad
21
-
Fix
8:36 PM
Font-variation-settings:
Details
fill = 1
6532864 -
Feature
7:58 PM
Add URL hash navigation for legal page sections
Details
- Support direct linking to specific sections via URL hashes:
- /legal#terms - Terms of Service
- /legal#privacy - Privacy Policy
- /legal#data-collection - Data Collection Details
- /legal#user-rights - Your Rights
- /legal#contact - Contact Information
- Auto-scroll to section based on URL hash on page load
- Update URL hash when clicking quick navigation items
- Handle browser back/forward navigation with hashchange event
- Add visual feedback for active navigation item
- Add .htaccess rewrite rule for /legal without .php extension
- Update settings.php link to use hash-based navigation
- Smooth scroll with header offset for better UX
188947b -
Feature
7:54 PM
Add URL hash navigation for settings tabs
Details
- Support direct linking to specific tabs via URL hashes:
- /settings#account
- /settings#privacy
- /settings#notifications
- /settings#appearance
- Auto-activate tab based on URL hash on page load
- Update URL hash when switching tabs (without page reload)
- Handle browser back/forward navigation with hashchange event
- Add .htaccess rewrite rule for /settings without .php extension
- Update legal.php links to use hash-based navigation
- Maintain backward compatibility with existing routing
660607c -
Feature
7:47 PM
Implement data portability feature for GDPR compliance
Details
- Add data export API endpoint at /backend/api/settings.php
- Implement 'Download My Data' button in Privacy & Data settings tab
- Export user data in machine-readable JSON format including:
- Profile information (Steam ID, username, avatar)
- User preferences (theme, layout, notifications)
- Session history with obscured IP addresses
- Update legal.php with data portability information
- Configure routing for /api/settings endpoint
- Add user-friendly UI with loading states and toast notifications
690832b -
Performance
7:41 PM
Improve legal page design and accessibility
Details
- Fix breadcrumb navigation to match site standards with proper icons
- Upgrade borders from 1px to 2px for better visual hierarchy
- Add smooth transitions and hover effects on interactive elements
- Improve readability with better spacing and line-height (1.7)
- Add aria-hidden attributes to decorative icons for accessibility
- Enhance data retention cards with hover animations
- Improve FAQ section with better visual feedback
- Add responsive flex-wrap on data retention badges
- Better contrast and visual separation throughout
- Maintain all existing functionality while improving UX
70306ae -
Feature
7:34 PM
Add comprehensive Terms of Service and Privacy Policy page
Details
- Created fully functional legal page at /legal with ToS and Privacy Policy
- Added TL;DR summary section for quick understanding
- Implemented interactive features: smooth scrolling, section highlighting, copy-to-clipboard
- Added visual data retention timeline with color-coded badges
- Created comprehensive FAQ section with 8 common questions
- Enhanced data collection section with visual cards
- Added actionable user rights guide with step-by-step instructions
- Implemented version history tracking
- Added print/save as PDF functionality
- Included scroll-to-top button and notification system
- Updated footer with both official s&box Discord and s&box Explorer Discord links
- Added proper meta tags for SEO
- Fully responsive design consistent with existing codebase
- Print-friendly styles for documentation purposes
08a096c -
Feature
7:05 PM
Add login history tabs with privacy features
Details
- Added 3-tab interface: Active Now, Recent (7 Days), All History
- All History shows unique users only (no duplicates)
- IP addresses obscured in All History tab (e.g., 5.55.x.x)
- Added session duration and status badges
- Improved UI with Material icons and color-coded activity status
31ebd85 -
Fix
6:47 PM
Auto-caching system to update correctly within 30 minutes
Details
- Fixed cache key format from 'org_username' to 'org_packages_username' across all files
- Updated auto-refresh.php to query database cache instead of file-based caches
- Increased refresh frequency (20% probability, 2-min throttle, 3 orgs per run)
- Fixed AJAX refresh to do synchronous updates with proper JSON responses
- Added automatic cleanup of expired cache entries (hourly)
- Fixed cache age display by defining variables in correct scope
- Updated refresh-worker.php to save to database cache with proper TTL
- Updated tools/refresh-endpoint.php to work with database cache
- Fixed tools/precache-popular-orgs.php cache key format
- Added missing CSS imports to admin/refresh-status.php for proper styling
All cache operations now use consistent 'org_packages_' and 'user_packages_' key prefixes.
7d11a72 -
Feature
6:19 PM
Add commit type theming and filtering to changelog
Details
- Add visual distinction for commit types (feat, fix, chore, refactor, docs, style, perf, test, ci)
- Each type has unique color scheme, icon, and badge
- Add filter bar to view commits by type
- Filter buttons show commit counts per type
- Filters persist across pagination
- Mobile-responsive filter design
- Integrate seamlessly with existing theme system
20af283 -
Feature
6:10 PM
Comprehensive UI/UX optimization and admin user tracking
Details
Layout & Visual Improvements:
- Added consistent spacing variables (--spacing-xs through --spacing-2xl)
- Enhanced typography with responsive clamp() sizing for all headings
- Improved card hover effects with gradient overlays and animated accent lines
- Optimized package cards with subtle scale effects (reduced from 4px to 3px)
- Enhanced breadcrumb navigation with proper separators and hierarchy
- Added smooth transitions and reduced excessive hover effects for natural feel
Breadcrumb Enhancements:
- Fixed breadcrumb structure: Home Organization Package
- Removed manual '/' separators, added CSS-based separators
- Enhanced styling with hover effects and icon animations
- Improved accessibility with better focus states
- Added proper ARIA labels and semantic structure
Admin Panel - User Session Tracking:
- Created comprehensive session tracking system (config/session_tracking.php)
- Added user_sessions database table with indexes
- Implemented automatic activity tracking on page loads
- Created /admin/active-users.php showing real-time logged-in users
- Added session statistics: active now, today, this week, all-time
- Tracks Steam ID, username, avatar, IP address, login/activity times
- Auto-refreshes every 30 seconds for real-time monitoring
- Created /admin/test-sessions.php debug page for troubleshooting
Admin Panel UI:
- Added User Activity card with live statistics
- Enhanced visual consistency with gradient backgrounds
- Added animated accent lines on hover for cards
- Improved responsive design for mobile/tablet
- Better spacing and typography throughout
- Fixed Material Symbols icon loading and CSS
Routing & Access:
- Fixed router.php to allow direct access to admin PHP files
- Updated .htaccess to properly route admin and auth directories
- Ensured admin pages are accessible while maintaining security
Technical Improvements:
- Fixed SQL date/time queries for better SQLite compatibility
- Added proper error handling and logging
- Implemented session cleanup (30-day retention)
- Added database connection fallbacks
- All PHP files validated with no syntax errors
Thematic Consistency:
- Unified shadow depths and border treatments
- Consistent transition timing (0.2-0.3s) across all components
- Enhanced focus states for better accessibility
- Improved color contrast and visual hierarchy
1895788 -
Feature
5:32 PM
Add material symbols to footer navigation and sections
6379050 -
Performance
5:09 PM
Improve Organization News Page design and styling
Details
- Enhanced layout with modern card design and improved spacing
- Added smooth animations and transitions for better UX
- Improved typography with better font sizes and hierarchy
- Enhanced responsive design for mobile, tablet, and desktop
- Added hover effects and interactive states
- Improved accessibility with focus states and reduced motion support
- Optimized media display with better image/video handling
- Added loading states and empty state improvements
- Removed gradient backgrounds for cleaner, minimalist design
- Enhanced package badges, buttons, and author avatars
- Added staggered card animations on page load
- Improved visual consistency across all elements
fc3458a -
Fix
4:54 PM
Fix CSS linting issues in news.css
Details
- Use modern color function notation with percentage alpha values
- Add standard mask property alongside -webkit-mask
- Add standard line-clamp alongside -webkit-line-clamp
- Use modern media query range notation (width <= X)
- Use inset shorthand property
- Fix box-shadow alpha value notation
c8224d0 -
Feature
4:58 AM
Add new theme names to API validation list
f389d42 -
Feature
4:57 AM
Add three new themes: Deep Space, Emerald Oasis, and Midnight Haze with enhanced theme manager
d6abbc4 -
Feature
4:11 AM
Add theme manager support to news and UGC charts pages
9b255f7 -
Feature
3:56 AM
Add video thumbnail support for news posts
bf78851 -
Fix
3:40 AM
Resolve all Stylelint errors across CSS files
Details
- Fix syntax errors in ocean.css and sunset.css (unclosed SVG URLs, extra braces)
- Remove duplicate properties (font-feature-settings, appearance, backdrop-filter, background-clip)
- Fix selector specificity issues in admin.css
- Add generic font family fallbacks for icon fonts
- Update .stylelintrc.json to allow camelCase naming and vendor prefixes
- All CSS files now pass Stylelint validation with zero errors
71bbbf1 -
Feature
3:14 AM
Add UGC Charts feature for games and maps
Details
- Implement /ugc/charts/game and /ugc/charts/map endpoints
- Fetch live data from Facepunch Services API with 30-minute cache
- Display 5 chart sections: Popular Today, Popular This Month, Trending Now, Most Favorited, Newest Releases
- Integrate with CacheManager for centralized SQLite-based caching
- Add responsive design with glassmorphism effects and smooth animations
- Include Charts navigation link in header
- Support stale cache fallback on API failures
e260da8 -
Performance
12:37 AM
Improve package tag styling and spacing
Details
- Add specific styles for package tags container
- Adjust tag margins and padding for better visual hierarchy
- Ensure tags remain on a single line with nowrap
- Add flex-shrink to prevent tag compression
- Standardize line height for better vertical alignment
148aad5 -
Fix
12:28 AM
Fix missing version ID display in package versions list
4adbff4
2
-
Fix
7:40 PM
Enhance media display and fix styling issues
Details
- Add support for video media in package details
- Improve media grid layout and responsiveness
- Update lightbox functionality to handle both images and videos
- Fix styling issues in packages.css
086067b -
Performance
7:16 PM
Improve tag filtering and update changelog
Details
- Move tag filtering to client-side for better performance
- Make tag search case-insensitive
- Increase max pages for tag search from 5 to 10
2070745
5
-
Feature
11:56 PM
Add playful brand hover animation
Details
- Split 's&box Explorer' text into individual letter spans using JavaScript
- Add CSS animations for letter-by-letter slide-in effect with bounce
- Animation triggers only when hovering over the brand icon
- Includes staggered delays, color transitions, and smooth cubic-bezier easing
- Scoped to .nav-brand and its children for minimal impact"
e951b33 -
Performance
10:54 PM
Optimize Steam Tags system with caching to eliminate redundant data fetching
Details
- Implement full tags array caching with 6-hour TTL
- Add manual cache invalidation function
- Reduce external API calls by 90-95%
- Improve page load times and reduce server load
9e5a8b9 -
Feature
3:03 PM
Add new cache management system with SQLite backend
Details
- Implement CacheManager class for centralized cache handling
- Add migration utility for existing JSON caches to SQLite
- Support multiple cache types (org_packages, user_packages, etc.)
- Include database schema and initialization
b9fb02e -
Feature
12:21 PM
Improve authentication handling in theme manager
Details
- Add authentication state tracking to prevent unnecessary API calls
- Handle 401 Unauthorized responses gracefully
- Implement proper fallback behavior for unauthenticated users
- Skip server saves when user is not authenticated
- Improve error handling and logging for theme settings
aef0ac6 -
Feature
2:29 AM
Add non-working badge to layout preference setting
Details
- Added a red animated badge to mark non-working features in the UI
- Created CSS animations for pulsing and shining effects
- Improved accessibility with proper ARIA labels
- Enhanced the layout preference section in settings
25b12db
5
-
Feature
11:41 PM
Implement user profile and theme management
Details
- Add user profile page with settings
- Implement theme switching functionality
- Update API endpoints for user preferences
- Modify .htaccess for new routes
- Update changelog with recent changes
ee47479 -
Feature
8:04 PM
Update frontend and backend components
Details
- Enhance theme management and user profile UI
- Update API endpoints and header includes
- Add user settings functionality
- Update configuration templates
177f272 -
Feature
6:20 PM
Add s&box forums link to footer
f85bd9c -
Feature
6:06 PM
Add lightbox data handling for media
Details
- Added lightbox-data.php to manage media data for the lightbox component
- Included the script in index.php for media pages
- Updated changelog.json with the latest changes
a366251 -
Feature
5:58 PM
Add new frontend JS files and update existing code
Details
- Added main.js, package-detail.js, and user-profile.js
- Updated refresh-worker.php and index.php with new features
- Updated changelog.json to reflect recent changes
f146a44
9
-
Feature
11:17 PM
Add styling for Valve employee tags
59e961f -
Feature
11:17 PM
Enhance Steam tags with dynamic friend detection and staff recognition
e21bd92 -
Fix
10:01 PM
Fix user tag theming and update CSS file paths
3eb45e8 -
Fix
9:01 PM
Fix Google Analytics include paths in frontend files
Details
Update include paths for google-analytics.php to use the correct backend directory structure. This ensures consistent tracking across all pages and follows the project's file organization standards.
Files updated:
- frontend/changelog.php
- frontend/news.php
- frontend/newspost.php
c2a2039 -
Feature
8:55 PM
Add backend structure, configuration, and meta files
aa8f4df -
Feature
8:54 PM
Add new frontend directory structure with updated file organization
82961a1 -
Security
3:27 PM
Enhance Steam authentication security and error handling
Details
- Improve session management and cookie security in auth flow
- Add proper error handling and logging for auth endpoints
- Update login/logout processes with secure defaults
- Fix SSL verification for development environment
- Update styles to reflect auth UI changes
7015c6e -
Fix
11:59 AM
Fix array to string conversion in package metadata display
Details
- Added support for nested arrays using array_walk_recursive
- Improved handling of objects by converting to JSON
- Added proper null and boolean value handling
- Ensured all output is properly HTML escaped
c9f42cd -
Feature
10:23 AM
Fix favicon implementation and web manifest
Details
- Updated favicon declarations to remove duplicates
- Fixed web manifest paths and configuration
- Added proper browserconfig.xml for Windows tiles
- Improved .htaccess rules for static assets
- Ensured proper content types for web manifest
- Added proper cache control headers for static assets
ab18258
8
-
Fix
8:46 PM
Update Facepunch organization logo URL to use hardcoded CDN path
f2a76f0 -
Performance
8:19 PM
Improve user vs organization handling and meta tags
Details
- Update fetchUserPackages() to handle both user and organization profiles
- Add proper meta tags for user and organization profiles
- Improve social media previews with proper images and descriptions
- Add fallback avatars/logos for profiles without images
- Ensure proper URL handling for all assets
- Add package count to profile descriptions
- Improve meta keywords based on profile type
7c0e094 -
Feature
7:51 PM
Enhance avatar resolution in meta tags
Details
- Updated fixAvatarUrl to handle Steam avatars and ensure highest resolution
- Process avatar URLs in meta-tags.php to use full resolution avatars
- Improved URL handling for both Steam and s&box avatar sources
- Updated Twitter card meta tags with correct profile information
- Ensured HTTPS is used for all avatar URLs
9066f84 -
Fix
7:22 PM
Fix infinite loading spinner on invalid page numbers
Details
- Added proper redirection to page 1 when an invalid page is requested
- Fixed issue with SBOX_API_BASE constant being used before definition
- Improved error handling for empty or invalid API responses
- Added output buffering cleanup to prevent 'headers already sent' errors
76d8afb -
Fix
1:21 PM
Fix API endpoint routing - remove $ anchor from api.php rewrite rule
c37f2d7 -
Fix
1:04 PM
Fix org profile links to point to correct sbox.game URLs
Details
- Org profiles now show @username and link to https://sbox.game/orgname
- Player profiles show username and link to https://sbox.game/u/username
- Properly distinguish between player and org profile links
6398e45 -
Fix
12:58 PM
Fix user/org disambiguation and avatar handling
Details
- Add proper Steam avatar display for player profiles (/u/username)
- Prioritize Steam avatars over org avatars for player profiles
- Add fixAvatarUrl() and generateLocalAvatar() functions to handle missing org avatars
- Replace sbox.game/.generatethumb URLs with locally generated SVG avatars
- Generate colorful, consistent avatars based on org name
- Fix fatal error when API times out by adding proper array validation
- Apply avatar fixes to all package cards, detail pages, and user profiles
- Add JavaScript client-side avatar generation for dynamic content
2344336 -
Feature
12:15 PM
Add clickable links to sbox.game user profiles
23d7226
Generated from the project's commit history whenever the site is deployed. Times are server time.