mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
Introduce a launcher coordinator to reserve startup ownership and prevent duplicate host launches. Adds a NamedPipe-based IPC server/client (LauncherCoordinatorIpcServer/Client), coordinator messages/models, and PublicShellStatus/activation types for richer shell reporting. Enhances StartupAttemptRecord and StartupAttemptRegistry to track coordinator pid/pipe, heartbeat, reserved-before-host-start, and public IPC status, plus new reservation/heartbeat APIs and takeover logic. Wire coordinator into App and LauncherFlowCoordinator to attach secondary launchers, publish coordinator status, probe existing hosts, and include more detailed launch result details. Also adds unit tests and docs describing coordinator and startup visuals behavior.
37 lines
918 B
C#
37 lines
918 B
C#
namespace LanMountainDesktop.Shared.IPC.Abstractions.Services;
|
|
|
|
public sealed record PublicShellStatus(
|
|
int ProcessId,
|
|
DateTimeOffset StartedAtUtc,
|
|
string LaunchSource,
|
|
string ShellState,
|
|
bool MainWindowCreated,
|
|
bool MainWindowVisible,
|
|
bool MainWindowOpened,
|
|
bool DesktopVisible,
|
|
bool PublicIpcReady,
|
|
PublicTrayStatus Tray,
|
|
PublicTaskbarStatus Taskbar);
|
|
|
|
public sealed record PublicTrayStatus(
|
|
string State,
|
|
bool IsReady,
|
|
bool HasIcon,
|
|
bool HasMenu,
|
|
bool IsVisible,
|
|
int ConsecutiveRecoveryFailures);
|
|
|
|
public sealed record PublicTaskbarStatus(
|
|
bool RequestedBySettings,
|
|
bool MainWindowExists,
|
|
bool MainWindowShowInTaskbar,
|
|
bool MainWindowVisible,
|
|
bool MainWindowMinimized,
|
|
bool IsUsable);
|
|
|
|
public sealed record PublicShellActivationResult(
|
|
bool Accepted,
|
|
string Code,
|
|
string Message,
|
|
PublicShellStatus Status);
|