# Changelog All notable changes to the Habland Admin Panel will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.1.0] - 2025-12-08 ### Added - **Health Check Dashboard**: Real-time system health monitoring at `/health` - System status: Docker, MariaDB, containers, databases - Circular health score visualization - Auto-refresh every 5 seconds - Response time tracking for all components - Component status cards with detailed diagnostics - **Database-Based Clothing Management for Arcturus**: Full CRUD interface at `/clothing` Retro tab - Manage 589 clothing bundles directly from catalog_clothing table - Add/Edit/Delete clothing items with inline editing - Search functionality for quick filtering - View and edit name and setid (comma-separated set IDs) - Real-time updates with SWR - Dedicated API endpoint `/api/clothing/db` for database operations - **Dark/Light Theme Toggle**: Seamless theme switching with next-themes - Toggle button in top bar - Persistent theme preference - Smooth transition animations - Light mode optimized color palette - System theme detection support - **Comprehensive Theme Customization**: Full theme control system at `/settings` - 6 preset themes: Orange Fury, Purple Dream, Ocean Blue, Emerald Green, Sunset, Midnight - One-click preset application with instant preview - Custom gradient colors (start/end) with color pickers - Primary, secondary, and accent color customization - Border radius slider (0-24px) for UI roundness control - Live preview section showing theme changes in real-time - Auto-reload after save to apply theme changes - Theme persistence via database storage - CSS variables system for consistent theming across all components - ThemeProvider with SWR integration for 30-second auto-refresh - Full API support for theme properties (gradient_start, gradient_end, primary_color, secondary_color, accent_color, border_radius) - **Debug Console**: Comprehensive system diagnostics at `/debug` - System information (hostname, platform, CPU, memory, uptime) - Environment variables and configuration - Docker version and container statistics - Database connection status and metrics - Node.js process performance monitoring - Application logs viewer - Export debug data as JSON - Auto-refresh every 5 seconds - **Bulk Operations Interface**: Mass action system at `/bulk` - User operations: ban, unban, give credits/pixels/points, set rank - Furniture operations: delete items, move to inventory - Catalog operations: enable/disable, update pricing, set limited edition - Multi-select with search and filter - Confirmation dialogs for dangerous operations - Transaction-based execution with rollback support - Success/failure reporting with detailed error messages - **Automated Backup System**: Database backup management at `/backups` - One-click manual backups with compression - Scheduled backup support (daily/weekly/monthly) - Backup rotation and retention policies - Restore from backup with confirmation - Backup integrity verification (SHA-256 checksums) - Transaction-based backup/restore with automatic rollback - Cleanup old backups (30+ days) - Backup metadata tracking in database - **Mobile-Responsive Design**: Optimized for all screen sizes - Mobile navigation drawer with swipe gestures - Touch-friendly controls and buttons - Responsive tables and layouts - Mobile-optimized dashboard - Hamburger menu navigation - Progressive disclosure of UI elements - Adaptive component sizing (sm/md/lg breakpoints) - **Progressive Web App (PWA)**: Install as native app - Service worker for offline support - App manifest for home screen installation - Cached resources for faster loading - Mobile-optimized icons (192px, 512px) - Standalone display mode - Theme color integration - Apple iOS support - **Keyboard Shortcuts Help**: Press `Cmd/Ctrl+/` to view all shortcuts - **Unified Search System**: Press `Cmd/Ctrl+K` to search across containers, users, furniture, and pages - **Quick Actions Toolbar**: Floating action button (Shift+Q) for common tasks - Restart/Stop all containers - Quick database backup - Clear cache - Maintenance mode toggle - **Container Modal System**: Comprehensive 7-tab modal for each container - Links & Ports: Container URLs and port mappings - Notes: Persistent notepad for container documentation - Credentials: Comprehensive default credentials from docker-compose.yml for all 14 containers - Automatic display of database credentials (usernames, passwords, hosts, ports) - Network port configurations (game ports, RCON, MUS, web ports) - API endpoints and service URLs - System configuration (Java opts, upload limits, etc.) - Color-coded categories: database (blue), network (green), api (purple), system (orange) - Show/hide toggle for sensitive values - Custom secrets storage with encryption support - Documentation: Links to GitHub repos and official docs - Controls: Start/stop/restart with confirmation dialogs - Status: Real-time CPU, memory, network I/O, uptime stats - Logs: View and download container logs with auto-refresh - **Enhanced Documentation Links**: Updated all container docs to official GitHub sources - Arcturus Morningstar Extended - Havana, Kepler, Roseau emulators - AtomCMS, Nitro React, and more - **API Endpoints**: New backend routes for container management and system operations - `/api/health` - System health check with component status - `/api/debug` - System diagnostics and performance metrics - `/api/bulk` - Bulk operations for users, furniture, and catalog - `/api/backups` - Database backup management (GET/POST/DELETE) - `/api/backups/restore` - Restore database from backup - `/api/backups/[id]` - Delete individual backup - `/api/containers/[id]/logs` - Container log retrieval - `/api/containers/[id]/stats` - Real-time container statistics - `/api/containers/[id]/notes` - Persistent notes storage - `/api/containers/[id]/secrets` - Secure credentials storage - `/api/search` - Global search across all resources ### Fixed - Console errors from missing images (hotel-icon.png, room images) - Created placeholder SVG images for all container cards - Fixed Google Fonts build issue by removing external font dependency - Fixed residual Google Fonts CSS variable reference (--font-jakarta) in globals.css - Replaced with system font stack for consistent, fast loading fonts - Updated to Next.js 16 async params API - Fixed search bar in TopBar - clicking now properly opens SearchModal - Search bar now functional alongside Cmd/Ctrl+K keyboard shortcut - **Fixed Retro Tab in Furniture Editor**: Performance optimization - Removed expensive LEFT JOIN with FIND_IN_SET() that was causing 10+ second load times - Simplified query to fetch items_base directly without catalog_items JOIN - API response time improved from 10+ seconds to ~100ms (100x faster) - Retro tab now displays all 52,000+ furniture items from Arcturus database instantly - Returns 500 items per request with fast search and pagination - API endpoint `/api/furni?emulator=retro` fully functional - **Fixed Console Errors**: Resolved multiple browser console errors - Fixed missing PWA icon by updating manifest.json to use SVG icons (icon-192.svg, icon-512.svg) - Fixed clothing API 400 error for retro tab by adding proper handling - Retro tab now shows "Not Supported Yet" message (uses database, not XML) - Prevented JavaScript crash from undefined data access - **Fixed Container Control Errors**: Improved error handling for Docker container operations - Added container existence validation before performing actions - Improved error messages for network configuration issues - Added specific error handling for containers with stale network configurations - User-friendly error messages now displayed instead of generic failures - **Fixed Service Worker Cache Error**: Resolved PWA service worker caching issues - Service worker now skips caching for POST/PUT/DELETE requests - Fixed "Request method 'POST' is unsupported" error in Cache API - Only GET requests are cached, as per Cache API specification - **Fixed Self-Restart 502 Error**: Improved handling when restarting admin-panel from within itself - Detects self-restart/stop operations and responds before executing - Uses setImmediate to perform action after response is sent - Eliminates 502 Bad Gateway errors when controlling the admin-panel container - User-friendly message warns that page will become temporarily unavailable - **Fixed Theme Preview**: Theme changes now apply in real-time on settings page - Added useEffect hook to apply CSS variables immediately when colors change - Users can now see theme changes instantly before saving - Clicking preset buttons now updates UI colors in real-time - No page reload needed to preview theme changes - **Added Full CRUD Controls to Furniture Editor**: Complete Create, Read, Update, Delete functionality - Inline editing for all furniture items with form inputs - Add New button to create furniture items for all 4 emulators - Edit button (hover-activated) for inline editing of existing items - Delete button (hover-activated) with confirmation dialog - API endpoints: POST /api/furni (create), PUT /api/furni (update), DELETE /api/furni (delete) - Real-time updates with SWR mutations for optimistic UI updates - Works across all emulators: Havana, Kepler, Roseau, and Retro - Edit sprite_name, public_name, type (floor/wall), width, and length - Save/Cancel buttons for inline editing operations ### Changed - Dashboard "Latest News" renamed to "Container Manager" - Added all missing containers to dashboard (arcturus-emulator, atomcms, etc.) - Removed unused social media icons from container cards - Improved container card layouts with gradients and animations - Updated container cards with real images for Arcturus, AtomCMS, Havana, Kepler, and Roseau ### Technical - Database schema additions for container metadata (notes, secrets) - Playwright testing integration for console error detection - Next.js 16.0.7 compatibility updates - Docker build optimizations with .dockerignore - **Redis Integration for AtomCMS**: Enabled Redis for caching and sessions - Installed PHP Redis extension (phpredis 6.3.0) in AtomCMS container - Configured Laravel to use Redis for CACHE_STORE and SESSION_DRIVER - Redis container now running and healthy at port 6379 - Significant performance improvement for repeated queries and session management ## [1.0.0] - 2025-12-06 ### Added - Initial release of Habland Admin Panel - Dashboard with container management - Furniture editor for all emulators - Catalog editor with multi-emulator support - Clothing editor (XML-based for Havana/Kepler) - User management interface - Settings page with theme customization - Encyclopedia with Habbo Hotel knowledge base - Docker container integration - MariaDB unified database support - SWR for real-time data fetching - Responsive UI with Tailwind CSS - Modern glassmorphic design system ### Supported Emulators - Arcturus Morningstar - Havana (Java v14) - Kepler (Java v14) - Roseau (Shockwave-era) --- ## Upcoming Features See `ADMIN_PANEL_UPGRADE_SUGGESTIONS.md` for planned features including: - Multi-user authentication system - Real-time analytics dashboard - Automated backup system - Advanced log management - In-game command console - Room & floor plan editor - Moderation tools suite - And 50+ more features! --- **Legend**: - `Added` for new features - `Changed` for changes in existing functionality - `Deprecated` for soon-to-be removed features - `Removed` for now removed features - `Fixed` for any bug fixes - `Security` for vulnerability fixes