Skip to content

feat(deploy): add autopilot hardware hash UX#188

Open
mchave3 wants to merge 3 commits into
feature/autopilot-hash-upload-foundationfrom
feature/autopilot-hash-upload-deploy-ux
Open

feat(deploy): add autopilot hardware hash UX#188
mchave3 wants to merge 3 commits into
feature/autopilot-hash-upload-foundationfrom
feature/autopilot-hash-upload-deploy-ux

Conversation

@mchave3
Copy link
Copy Markdown
Collaborator

@mchave3 mchave3 commented May 21, 2026

Summary

  • Adds the Foundry Deploy Computer Target UX for Autopilot hardware hash upload mode.
  • Keeps JSON profile controls isolated to JSON profile mode and hides them in hardware hash mode.
  • Adds tenant/certificate readiness details, non-blocking expired-certificate messaging, default/custom group tag selection, and summary display for the effective group tag.
  • Updates the live runtime boundary so hardware hash upload is skipped, not failed, until the runtime upload phases are implemented.
  • Updates the implementation plan checklist for Phase 3.

Reason

Phase 3 focuses on Foundry Deploy UX after the OSD-side Autopilot hardware hash onboarding UX was completed in Phase 2. Deploy needs to clearly show the selected Autopilot mode, let the operator choose the group tag behavior for this deployment, and avoid blocking OS deployment before the upload runtime exists.

Main changes

  • Extended DeploymentPreparationViewModel with hardware hash readiness, certificate metadata, and effective group tag state.
  • Added a launch helper that carries the default/custom group tag into the deployment request.
  • Updated Target and Summary wizard views with localized hardware hash UX.
  • Adjusted launch preparation and Autopilot staging behavior so hash mode no longer requires a JSON profile and skips runtime upload for now.
  • Removed obsolete Deploy hardware hash status strings after switching to dedicated readiness fields.

Testing

  • dotnet test .\src\Foundry.Deploy.Tests\Foundry.Deploy.Tests.csproj --filter "DeploymentPreparationViewModelTests|DeploymentLaunchPreparationServiceTests|StageAutopilotConfigurationStepTests" passed: 25 tests, 0 failures.
  • dotnet test .\src\Foundry.Deploy.Tests\Foundry.Deploy.Tests.csproj passed: 154 tests, 0 failures.

Notes

  • Do not squash automatically; final squash/merge is handled manually.
  • Full solution tests were intentionally not run, following the current project instruction for this phase.

Copilot AI review requested due to automatic review settings May 21, 2026 20:41
@github-actions github-actions Bot added documentation Documentation updates tests Test coverage or test infrastructure change ui User interface or XAML changes project: foundry-deploy Changes in the Foundry.Deploy deployment application labels May 21, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Foundry Deploy wizard UX and view-model support for the Autopilot hardware hash upload provisioning mode, including tenant/certificate readiness details and per-deployment group tag selection, while updating the current runtime boundary to skip (not fail) hardware-hash execution until the runtime phases are implemented.

Changes:

  • Extended DeploymentPreparationViewModel and wizard views to surface hardware-hash readiness metadata and group tag selection/effective group tag summary.
  • Updated deployment launch request building to carry the effective group tag into the deployment context, and updated summary bindings accordingly.
  • Adjusted deployment execution boundary/guards so hardware-hash mode is non-blocking (skipped pre-runtime), with updated tests and localized strings.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/Foundry.Deploy/Views/Wizard/TargetStepView.xaml Adds tenant/certificate readiness display, warnings, and group tag selection controls for hardware-hash mode.
src/Foundry.Deploy/Views/Wizard/SummaryStepView.xaml Adds summary display for effective Autopilot group tag in hardware-hash mode.
src/Foundry.Deploy/ViewModels/MainWindowViewModel.cs Exposes SummaryAutopilotGroupTagText and passes launch-time hardware hash settings via helper.
src/Foundry.Deploy/ViewModels/DeploymentPreparationViewModel.cs Adds readiness/group tag state + launch helper for effective group tag handling.
src/Foundry.Deploy/Strings/en-US/Resources.resx Adds/updates localized strings for readiness, warnings, and group tag UX.
src/Foundry.Deploy/Strings/fr-FR/Resources.resx Adds/updates French localized strings for readiness, warnings, and group tag UX.
src/Foundry.Deploy/Services/Deployment/Steps/StageAutopilotConfigurationStep.cs Changes live hardware-hash behavior from failing to skipping (incl. expired-certificate skip messaging).
src/Foundry.Deploy/Services/Deployment/DeploymentLaunchPreparationService.cs Removes the pre-runtime “hardware hash not available” launch guard so deployment can proceed.
src/Foundry.Deploy/Services/Deployment/DeploymentContext.cs Updates XML docs to reflect provisioning-method semantics and group tag override carriage.
src/Foundry.Deploy.Tests/StageAutopilotConfigurationStepTests.cs Updates expectations to skipped behavior and adds expired-certificate coverage.
src/Foundry.Deploy.Tests/DeploymentPreparationViewModelTests.cs Adds coverage for readiness/group tag state + effective group tag launch settings behavior.
src/Foundry.Deploy.Tests/DeploymentLaunchPreparationServiceTests.cs Updates coverage so hardware-hash mode no longer fails launch preparation.
docs/implementation/autopilot-hash-upload/05-implementation-phases.md Marks Phase 3 checklist/test items as completed and updates notes.
Comments suppressed due to low confidence (1)

src/Foundry.Deploy/Views/Wizard/SummaryStepView.xaml:187

  • This value TextBlock also uses Grid.Row="8" even though the grid only defines rows through index 6. Set it to row 6 so it lines up with the label and stays within the defined row set.
                            <TextBlock
                                Grid.Row="8"
                                Grid.Column="2"
                                Text="{Binding SummaryAutopilotGroupTagText}"
                                TextWrapping="Wrap"
                                Visibility="{Binding Preparation.IsHardwareHashGroupTagControlsVisible, Converter={StaticResource BooleanToVisibilityConverter}}" />

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 41 to +45
<RowDefinition Height="Auto" />
<RowDefinition Height="8" />
<RowDefinition Height="Auto" />
<RowDefinition Height="8" />
<RowDefinition Height="Auto" />
Comment on lines +177 to +181
<TextBlock
Grid.Row="8"
Style="{StaticResource BodyStrongTextBlockStyle}"
Text="{Binding Strings[Summary.AutopilotGroupTag]}"
Visibility="{Binding Preparation.IsHardwareHashGroupTagControlsVisible, Converter={StaticResource BooleanToVisibilityConverter}}" />
Comment on lines +150 to +152
public string EffectiveHardwareHashGroupTagText => string.IsNullOrWhiteSpace(ResolveEffectiveHardwareHashGroupTag())
? GetString("Common.None")
: ResolveEffectiveHardwareHashGroupTag()!;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation updates project: foundry-deploy Changes in the Foundry.Deploy deployment application tests Test coverage or test infrastructure change ui User interface or XAML changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants