Module AppLifecycle

Module AppLifecycle 

Source
Expand description

Application lifecycle management.

Contains the AppLifecycleSetup() function which handles all initialization

§AppLifecycle (Binary/Main)

§RESPONSIBILITIES

Application lifecycle management for the Tauri application setup and initialization. This module handles the complete setup process during the Tauri setup hook, including tray initialization, command registration, IPC server setup, window creation, environment configuration, and async service initialization.

§ARCHITECTURAL ROLE

The AppLifecycle module is the initialization layer in Mountain’s architecture:

Tauri Builder Setup ──► AppLifecycle::AppLifecycleSetup()
                             │
                             ├─► Tray Initialization
                             ├─► Command Registration
                             ├─► IPC Server Setup
                             ├─► Window Building
                             ├─► Environment Setup
                             ├─► Runtime Setup
                             └─► Async Service Initialization

§KEY COMPONENTS

  • AppLifecycleSetup(): Main setup function orchestrating all initialization
  • Tray Initialization: System tray icon with Dark/Light mode support
  • Command Registration: Native command registration with application state
  • IPC Server: Mountain IPC server for frontend-backend communication
  • Window Building: Main application window configuration
  • MountainEnvironment: Environment context for application services
  • ApplicationRunTime: Runtime context with scheduler and environment
  • Status Reporter: IPC status reporting initialization
  • Advanced Features: Advanced IPC features initialization
  • Wind Sync: Wind advanced sync initialization
  • Async Initialization: Post-setup async service initialization

§ERROR HANDLING

Returns Result<(), Box<dyn std::error::Error>> for setup errors. Non-critical failures are logged but don’t prevent application startup. Critical failures are propagated to prevent incomplete startup.

§LOGGING

Comprehensive logging at INFO level for major setup steps, DEBUG level for detailed processing, and ERROR for failures. All logs are prefixed with [Lifecycle] [ComponentName].

§PERFORMANCE CONSIDERATIONS

  • Async initialization spawned after main setup to avoid blocking
  • Services initialized only when needed
  • Clone operations minimized for Arc-wrapped shared state

§TODO

  • Add setup progress tracking
  • Implement setup timeout handling
  • Add setup rollback mechanism on failure

Macros§

TraceStep 🔒
Logs a checkpoint message at TRACE level.

Functions§

AppLifecycleSetup
Sets up the application lifecycle during Tauri initialization.