Files
LanMountainDesktop/LanMountainDesktop/plugins
lincube 0348324fa3 Add LauncherPathResolver and refactor data paths
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.
2026-05-01 11:31:40 +08:00
..
2026-04-13 08:02:47 +08:00
2026-03-14 22:45:09 +08:00
2026-03-12 09:22:03 +08:00
2026-03-10 00:04:33 +08:00
2026-03-10 00:04:33 +08:00
2026-03-13 00:33:00 +08:00
2026-03-25 11:27:30 +08:00
2026-03-25 11:27:30 +08:00
2026-03-25 11:27:30 +08:00
2026-03-24 23:15:32 +08:00
2026-04-29 12:14:29 +08:00
2026-03-13 09:10:00 +08:00
2026-03-13 00:33:00 +08:00
2026-03-20 22:37:37 +08:00

Host Plugin Runtime

This directory contains the host-side plugin runtime for LanMountainDesktop.

Responsibilities

  • Discover, install, replace, and stage .laapp plugin packages
  • Load plugin assemblies and shared contracts
  • Integrate plugin settings sections, desktop components, and market UI
  • Build plugin-scoped IServiceCollection / ServiceProvider for API 4.x plugins
  • Resolve shared contracts before activation and expose explicit plugin exports

Relationship with LanAirApp

  • LanAirApp is 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

  1. Host reads the official market index
  2. If both releaseTag and releaseAssetName are present, host resolves the exact GitHub Release asset first
  3. If release resolution fails, host falls back to repository-root .laapp
  4. Plugin detail text is read from plugin repository root README.md
  5. Installation is staged and becomes effective after restart