Version 1.9.1
Web-LGSM v1.9.1 Release Notes
Release Overview
Release Date: April 11, 2026
Version: v1.9.1
Significance: This release is a monumental internal transformation of the Web-LGSM codebase. While user-facing features are targeted and specific, the underlying engine has been completely rebuilt using Clean Architecture principles. This sets the stage for a much more testable, maintainable, and secure application moving forward.
Major Architectural Overhaul: Clean Architecture Migration
The core of this release is a complete backend restructure. We've moved away from a monolithic "Utils and Managers" pattern to a strict Clean Architecture layering system (Domain, Application, Infrastructure, Interface). This resolves long-standing issues with circular dependencies, improves code cohesion, and dramatically increases testability.
Domain & Application Layer (Core Business Logic)
- New Core Entities: Created proper domain objects for
GameServer,User,CronJob,AuditLog,SystemMetrics, andProcInfo. - Repository Pattern: Implemented repository interfaces to abstract data persistence, separating business rules from database and system implementation details.
- Use Case Driven Development: Refactored all major features to be invoked via discrete Use Cases (e.g.,
InstallGameServerUseCase,UpdateSortOrderUseCase,GetUnmanagedCronJobsUseCase).
Infrastructure Layer Overhaul
- Dependency Inversion: Concrete implementations (like SQLAlchemy for DB or
python-crontabfor system tasks) now depend on the core abstractions defined in the domain layer. - Service Decomposition: The monolithic "Services" have been broken down and moved to the Infrastructure layer as concrete adapters:
- Cron Management: Replaced Ansible Connector calls with pure Python (
python-crontab) executed via theUserModuleService. This is faster and more secure. - Command Execution: Moved
CommandExecutorandConfigManagerinto infrastructure adapters. - SSH Abstraction: Introduced
SshClientInterfaceto allow for dependency inversion and unit testing of remote connections without needing live auth.
- Cron Management: Replaced Ansible Connector calls with pure Python (
- Cleaner Logging: Migrated all logging to standard Python logging calls, decoupling logs from the Flask app context.
Interface Layer Cleanup
- Route Slimming: Stripped database and business logic from Flask route code. Routes now simply translate HTTP requests into Use Case calls.
- Interface Factory: Implemented a dynamic factory to shorten complex dependency injection calls in route handlers, keeping the presentation layer clean.
- Auth Boundary: Established a clear boundary where Flask-Login's
current_user(SQLAlchemy model) is converted to a domainUserentity when crossing into business logic.
New Features & Enhancements
Home Page Server Management
- Custom & Alphabetical Sorting: You can now reorder your game server list! Use the new drag-and-drop interface (powered by
SortableJS) to set a custom order, or use the new sort buttons for A-Z / Z-A ordering. (Resolves #55)
Cron Job Administration
- Unmanaged Job Visibility: Administrators can now see a greyed-out list of cron jobs that exist in the system crontab but are not managed by Web-LGSM. This provides better visibility into system activities. (Resolves #49)
- Natural Language Descriptions: Cron schedule expressions are now translated into more human-friendly English phrases.
Security & Documentation
- Security Headers: Added
Content-Security-Policyand XSS protection headers to harden the application interface. - Architecture Documentation: Added comprehensive documentation outlining the new Application Software Architecture, including detailed diagrams of the Clean Architecture layers.
- Refreshed Documentation: Audited and updated existing project documentation to reflect the new code structure and patterns.
Bug Fixes & Maintenance
Installation & Configuration
- Non-Fatal Install Fix: Fixed a bug in
root_install.shwhere attempting to create an existing directory (/opt/web-lgsm/utils) caused a fatal error. The script is now more robust. - Terminal Dependency: Fixed the installation script path for
node xtermto ensure terminal functionality works out of the box.
Performance & Reliability
- File Manager Memory Leak: Fixed a bug where
LocalFileManagerwas not clearing the output buffer, causing stale process information to hang around in memory.
Code Quality & Testing
- Increased Test Coverage: Added new unit tests for previously untested infrastructure classes, including SSH logic and critical low-coverage areas.
- Integration Test Stability: Applied multiple tweaks to ensure the full suite of integration tests passes reliably with the new architecture.
Note on Upgrading: While this release fundamentally rewires the application internally, the upgrade path is designed to be seamless for existing installations. Database migrations will run automatically to support new features like server sort order. As always, please ensure you have a recent backup before upgrading.