Version 1.4.0 — Compact Dashboard & Structural Foundation
UI/UX Improvements
- Compact Dashboard Layout: Server and Tunnel sections are now arranged in two rows with a visual separator, significantly reducing panel height to maximize console space.
- Inline Server Status: Consolidated status indicators into a single line:
[▶ ■] [● Online] [FABRIC]. - Refined Tunnel Toolbar: Action controls (Start/Stop/Restart) aligned to the left, Link + Setup to the right, and Status + IP centered for better workflow.
Architecture & Core Refactoring
- Unified Scheduler: Merged server and backup schedulers into a single efficient loop.
- Modular Server Startup: Extracted
start_serverlogic fromcore.pyfor better maintainability. - Centralized Metadata: All server metadata is now managed via
metadata.json. - Thread Safety: Implemented
threading.LockinStateManagerandSettingsManagerto prevent race conditions. - Type Hinting: Added complete type hints to 6 core services.
- Cross-Platform Helpers: Parametrized test helpers for
sys.platform,platform.system(), andplatform.machine().
New Feature: Auto-Backup Scheduler
- BackupScheduler: Integrated with its own model in
metadata.json(auto_backup). - Automated Checks: Verification loop runs every 30s via
_check_auto_backup(). - Retention Policy: Automatic retention application (
_apply_retention()) upon backup creation. - Concurrency Control: Mutex implementation to prevent simultaneous backup operations.
- Event Integration: Dispatches
BACKUP_COMPLETEDandBACKUP_FAILEDevents via EventBus.
Bug Fixes & CI/CD
- DNS Polling: Removed the 60s timeout in
_dns_polling_loop; the loop now continues until the manager stops or DNS resolves. - Linux CI/CD:
test_single_instance.pynow skipsctypes.windlltests on Linux using@pytest.mark.skipif. - Auto-Release Workflow: Added
permissions: contents: writetobuild.ymlto allowsoftprops/action-gh-releaseto create releases automatically. - Critical Bug Fixes (B1-B6): Resolved duplicate
install_forge, missing locks, undefinedrequired_java, and other stability issues. - Code Cleanup (C1-C4): Extracted
_resolve_java_bin, movedtoast.pytoui/, sharedconftest.py, and removedsys.path.appendfrom 7 test files.
Testing & Quality Assurance
- Test Suite Status: 375 tests passing on Windows, 373 on Linux (2 skipped).
- New Tests: Added 70 new tests (45 for
playit_manager, 9 forheartbeat, 16 forsingle_instance). - Backup Coverage: Added 18 new tests for
backup_managerandbackup_scheduler. - Automatic Cleanup:
pytest_sessionfinishnow removes.pytest_cacheand.zbb_cacheafter execution. - VersionManager Updates: Support for Mojang 26.x.x scheme, stale cache sync refresh (8s timeout), and expanded defaults.
⚠️ Recommendation
For best results, use the Python version rather than the packaged .exe or Linux binary. Folder management is not fully reliable in PyInstaller builds, while the Python release ensures smoother directory handling and expected application functionality. See the README.md for usage instructions.