Skip to content

v1.4

Latest

Choose a tag to compare

@github-actions github-actions released this 17 May 07:39

Version 1.4.0 — Compact Dashboard & Structural Foundation

Latest Release
Cross‑Platform

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_server logic from core.py for better maintainability.
  • Centralized Metadata: All server metadata is now managed via metadata.json.
  • Thread Safety: Implemented threading.Lock in StateManager and SettingsManager to prevent race conditions.
  • Type Hinting: Added complete type hints to 6 core services.
  • Cross-Platform Helpers: Parametrized test helpers for sys.platform, platform.system(), and platform.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_COMPLETED and BACKUP_FAILED events 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.py now skips ctypes.windll tests on Linux using @pytest.mark.skipif.
  • Auto-Release Workflow: Added permissions: contents: write to build.yml to allow softprops/action-gh-release to create releases automatically.
  • Critical Bug Fixes (B1-B6): Resolved duplicate install_forge, missing locks, undefined required_java, and other stability issues.
  • Code Cleanup (C1-C4): Extracted _resolve_java_bin, moved toast.py to ui/, shared conftest.py, and removed sys.path.append from 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 for heartbeat, 16 for single_instance).
  • Backup Coverage: Added 18 new tests for backup_manager and backup_scheduler.
  • Automatic Cleanup: pytest_sessionfinish now removes .pytest_cache and .zbb_cache after 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.