Skip to content

feat(os-recovery): add WinRE recovery deployment flow#236

Draft
mchave3 wants to merge 11 commits into
mainfrom
feat/os-recovery
Draft

feat(os-recovery): add WinRE recovery deployment flow#236
mchave3 wants to merge 11 commits into
mainfrom
feat/os-recovery

Conversation

@mchave3

@mchave3 mchave3 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds OS Recovery as a WinRE-based last-resort redeployment path for Foundry.

Reason

A remote user may need to redeploy Windows when normal ISO/USB deployment is not available and the existing Windows installation is unusable. OS Recovery lets a provisioned device start Foundry from WinRE through Troubleshoot > Advanced options > Foundry Recovery.

Main changes

  • Add an OS Recovery page in Foundry OSD with a single enablement toggle and explanatory placeholder image.
  • Persist OS Recovery settings in the Foundry configuration and deploy runtime configuration.
  • Provision WinRE with the recovery launcher, bootstrap, Foundry.Connect, 7-Zip, time zone data, and sanitized minimal configuration.
  • Keep Foundry.Deploy, Autopilot payloads, network roaming artifacts, certificates, OA3 tools, and media secrets out of the WinRE payload.
  • Add Recovery deployment mode handling so the bootstrap downloads Foundry.Deploy at recovery boot.
  • Preserve EFI, MSR, and Recovery partitions in Recovery mode and format only the Windows partition.
  • Mark provisioned recovery partitions and fail closed when the Recovery target disk is missing or ambiguous.
  • Add localized WinRE boot menu entries for supported languages and Recovery-specific launch confirmation text.
  • Add a manual WinRE validation script for the recovery payload.

Documentation

Docusaurus documentation was updated separately in foundry-osd/foundry-osd.github.io with commit e115a2a.

Testing

  • dotnet build .\src\Foundry.slnx -c Debug -p:Platform=x64
  • dotnet test .\src\Foundry.slnx -c Debug -p:Platform=x64 --no-build
  • dotnet test .\src\Foundry.Deploy.Tests\Foundry.Deploy.Tests.csproj --filter "ProvisionOsRecoveryStepTests|RecoveryTargetDiskResolverTests|DeploymentLaunchPreparationServiceTests"
  • dotnet test .\src\Foundry.Localization.Tests\Foundry.Localization.Tests.csproj
  • PowerShell parser check for scripts/Test-FoundryOsRecoveryWinRe.ps1
  • npm run build in foundry-osd.github.io

@github-actions github-actions Bot added dependencies Dependency version or package management change tests Test coverage or test infrastructure change ui User interface or XAML changes project: foundry Changes in the Foundry desktop application project: foundry-deploy Changes in the Foundry.Deploy deployment application project: foundry-core Changes in the Foundry.Core shared business logic library labels Jun 15, 2026
@mchave3 mchave3 changed the title chore(os-recovery): open planning branch feat(os-recovery): add WinRE recovery deployment flow Jun 15, 2026
@mchave3 mchave3 self-assigned this Jun 15, 2026
@mchave3 mchave3 moved this from New to In Progress in Foundry OSD Development Jun 15, 2026
@mchave3

mchave3 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator Author

Obsolete-code audit completed before WinRE testing. Cleanup commit ac4e1e8 removes stale recovery launcher fallbacks, removes an old deploy-config exclusion name, and wires the OS Recovery page to the published documentation URL. Verified with full solution build, full solution tests (800 passed), PowerShell parser check, and stale-symbol search.

@github-actions github-actions Bot added the project: foundry-connect Changes in the Foundry.Connect WinPE network bootstrap application label Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency version or package management change project: foundry Changes in the Foundry desktop application project: foundry-connect Changes in the Foundry.Connect WinPE network bootstrap application project: foundry-core Changes in the Foundry.Core shared business logic library project: foundry-deploy Changes in the Foundry.Deploy deployment application tests Test coverage or test infrastructure change ui User interface or XAML changes

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant