Module Entry

Module Entry 

Source
Expand description

Main application entry point and orchestration.

Contains the Fn() function which is the primary entry point for the Mountain

§Entry (Binary/Main)

§RESPONSIBILITIES

Main application entry point that orchestrates the complete application lifecycle. This function coordinates:

  • Tokio runtime creation and management
  • CLI argument parsing
  • Application state initialization
  • Tauri application builder setup
  • Service initialization (Vine, Cocoon, Configuration)
  • Graceful shutdown handling

§ARCHITECTURAL ROLE

The Entry module is the primary entry point in Mountain’s architecture:

main.rs ──► Binary::Main::Entry::Fn()
                                   │
                                   ▼
AppLifecycle ──► Service Initialization ──► Tauri App Run
                                          │
                                          ▼
                                  Graceful Shutdown

§KEY COMPONENTS

  • Fn(): Main entry point exported as Binary::Main::Fn()
  • Tokio runtime management
  • Application state initialization via StateBuild
  • Tauri builder configuration via TauriBuild
  • Service orchestration (Vine, Cocoon, Configuration)
  • Event-driven lifecycle management

§ERROR HANDLING

  • Panics on fatal errors (Tokio runtime failure, Tauri build failure)
  • Logs errors for service initialization failures
  • Graceful degradation for non-critical service failures

§LOGGING

Uses the TraceStep! macro for checkpoint logging at TRACE level. Additional logging at DEBUG, INFO, WARN, and ERROR levels throughout.

§PERFORMANCE CONSIDERATIONS

  • Tokio multi-threaded runtime for optimal performance
  • Asynchronous service initialization
  • Lazy initialization where possible

§TODO

  • Add crash recovery mechanism
  • Implement proper error dialog for startup failures
  • Add startup performance metrics

Macros§

TraceStep 🔒
Logs a checkpoint message at TRACE level.

Functions§

Fn
The main function that orchestrates the application lifecycle.