Files
LanMountainDesktop/.trae/specs/launcher-oobe-elevation-hardening/tasks.md
lincube 9224c9a33a Harden OOBE, launch-source and elevation flow
Introduce a per-user OOBE state model and hardened launch/elevation handling. Adds OobeStateFile/OobeLaunchDecision models, OobeStateService (persisting %LOCALAPPDATA%/.launcher/state/oobe-state.json), and LauncherExecutionContext to capture elevation and user SID. CommandContext now normalizes/infers launch-source values (normal, postinstall, apply-update, plugin-install, debug-preview) and exposes maintenance checks. LauncherFlowCoordinator propagates richer launcher context details for diagnostics and suppresses OOBE for elevated/maintenance contexts. PluginInstallerService avoids requesting elevation for user-scoped installs and returns a clear error when installation target is outside the current user's LocalAppData. LauncherClient maps and surfaces result codes, UpdateWorkflow and installer invocation now pass explicit --launch-source values, and WelcomeOobeStep persists OOBE completion via the new service. Adds unit tests (CommandContext, OobeStateService, PluginInstallerService), docs/specs/checklists for the contract, and makes internals visible to tests.
2026-04-22 09:25:22 +08:00

532 B

Launcher OOBE and Elevation Hardening Tasks

  • Move OOBE state to a single per-user JSON source.
  • Treat first_run_completed as legacy migration-only state.
  • Add explicit launchSource handling for startup and maintenance flows.
  • Suppress auto-OOBE for maintenance and elevated launch contexts.
  • Remove default elevation from plugin installation into the user data scope.
  • Add structured diagnostics for OOBE decisions and elevation reasons.
  • Update launcher docs and troubleshooting guidance.