namespace LanMountainDesktop.Launcher.Startup;
internal static class StartupTimeoutPolicy
{
public static readonly TimeSpan SoftTimeout = TimeSpan.FromSeconds(45);
public static readonly TimeSpan HardTimeout = TimeSpan.FromSeconds(180);
/// Initial Public IPC connect attempt (AOT cold start is significantly slower).
public static readonly TimeSpan InitialIpcConnectTimeout = TimeSpan.FromMilliseconds(3000);
/// Subsequent reconnect attempts use increasing per-try timeouts.
public static readonly TimeSpan[] IpcReconnectAttemptTimeouts =
[
TimeSpan.FromMilliseconds(1500),
TimeSpan.FromMilliseconds(3000),
TimeSpan.FromMilliseconds(5000),
TimeSpan.FromMilliseconds(8000),
TimeSpan.FromMilliseconds(10000)
];
public static readonly TimeSpan ExistingHostProbeTimeout = TimeSpan.FromMilliseconds(1500);
public static readonly TimeSpan ShellStatusPollInterval = TimeSpan.FromSeconds(1);
public static readonly TimeSpan IpcReconnectInterval = TimeSpan.FromSeconds(3);
/// Maximum time to wait for host process exit after it starts (for early-exit detection).
public static readonly TimeSpan HostEarlyExitWindow = TimeSpan.FromSeconds(5);
}