2026-03-20 22:37:37 +08:00
# LanMountainDesktop
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
`LanMountainDesktop` is the authoritative host repository for the desktop app and the host-side Plugin SDK.
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
## Repository Ownership
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
This repository owns:
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
- `LanMountainDesktop/` : desktop host app and plugin runtime
- `LanMountainDesktop.PluginSdk/` : canonical plugin API baseline (`4.0.0` )
- `LanMountainDesktop.Shared.Contracts/` : shared host/plugin contract types
- `LanMountainDesktop.Appearance/` : host appearance and radius token generation
- `LanMountainDesktop.Settings.Core/` : host settings primitives
- `LanMountainDesktop.Tests/` : host and SDK tests
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
This repository does not own:
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
- plugin market metadata or developer portal content
- official sample plugin release source
- independent ecosystem documentation hub
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
## Ecosystem Boundaries
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
- Host and SDK source of truth: `LanMountainDesktop` (this repo)
- Plugin market and developer materials: standalone `LanAirApp` repo
- Official sample plugin source of truth: standalone `LanMountainDesktop.SamplePlugin` repo
- `ClassIsland` : reference-only project, not part of build or release flow
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
## Plugin SDK v4 Baseline
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
- API baseline: `4.0.0`
- Manifest file: `plugin.json`
- Package extension: `.laapp`
- Entry model: `Initialize(HostBuilderContext, IServiceCollection)`
- Appearance model: `IPluginAppearanceContext` , `PluginAppearanceSnapshot` , `PluginCornerRadiusTokens` , `PluginCornerRadiusPreset`
- Component registration model: `AddPluginDesktopComponent<TControl>(PluginDesktopComponentOptions options)`
2026-03-10 12:14:49 +08:00
2026-03-21 13:08:20 +08:00
## Plugin Package Surfaces
- `LanMountainDesktop.PluginSdk` : official plugin SDK package (includes `buildTransitive` default `.laapp` packaging targets)
- `LanMountainDesktop.Shared.Contracts` : shared contract package for host/plugin boundaries
- `LanMountainDesktop.PluginTemplate` : official `dotnet new` template package (`shortName` : `lmd-plugin` )
Use `scripts/Pack-PluginPackages.ps1` to generate local-feed packages for CI or workspace integration tests.
2026-03-20 22:37:37 +08:00
## Workspace Market Resolution
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
For local market debugging, the host resolves workspace files from the sibling repository path (`..\\LanAirApp` ) instead of reading the in-repo mirror folder.
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
See:
2026-03-10 12:14:49 +08:00
2026-03-20 22:37:37 +08:00
- `docs/ECOSYSTEM_BOUNDARIES.md`
- `docs/PLUGIN_SDK_V4_MIGRATION.md`