mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
Introduce LauncherPathResolver to centralize resolving the launcher executable and .Launcher data directory (with write-permission fallback). Refactor DataLocationResolver to use a fixed ".Launcher" launcher data folder, expose explicit ResolveLauncherDataPath/ResolveDesktopDataPath/ResolveConfigPath/ResolveLauncherLogsPath/ResolveLauncherStatePath methods, and fix config load/save and directory creation to avoid dependency cycles. Update LauncherClient, UpdateWorkflowService and PluginMarketInstallService to use the new resolver (remove duplicated ResolveLauncherPath logic) and improve error messages when the launcher is missing.
Host Plugin Runtime
This directory contains the host-side plugin runtime for LanMountainDesktop.
Responsibilities
- Discover, install, replace, and stage
.laappplugin packages - Load plugin assemblies and shared contracts
- Integrate plugin settings sections, desktop components, and market UI
- Build plugin-scoped
IServiceCollection/ServiceProviderfor API4.xplugins - Resolve shared contracts before activation and expose explicit plugin exports
Relationship with LanAirApp
LanAirAppis a standalone repository and owns market metadata plus developer ecosystem materials- This host runtime only consumes market metadata and plugin packages
- The host no longer maintains an embedded
LanAirApp/mirror inside this repository - Workspace debugging resolves market files from sibling path
..\\LanAirApp\\...
Market Install Flow
- Host reads the official market index
- If both
releaseTagandreleaseAssetNameare present, host resolves the exact GitHub Release asset first - If release resolution fails, host falls back to repository-root
.laapp - Plugin detail text is read from plugin repository root
README.md - Installation is staged and becomes effective after restart