code: func (b *MiloBuildLegacy) Fix(c context.Context) {
  	if b.StepDisplayPref != StepDisplayExpanded && b.StepDisplayPref != StepDisplayNonGreen {
  		b.StepDisplayPref = StepDisplayDefault
  	}
  
  	for _, comp := range b.Components {
  		fixComponent(
  			comp, b.Summary.ExecutionTime.Finished, "",
  			b.StepDisplayPref == StepDisplayDefault)
  		// Run duration fixing after component fixing to make sure all of the
  		// end times are set correctly.
  		fixComponentDuration(c, comp)
  	}
  }
docs: // Fix fixes various inconsistencies that users expect to see as part of the
  // Build, but didn't make sense as part of the individual components, including:
  // * If the build is complete, all open steps should be closed.
  // * Parent steps containing failed steps should also be marked as failed.
  // * Components' Collapsed field is set based on StepDisplayPref field.
  // * Parent step name prefix is trimmed from the nested substeps.
  // * Enforce correct values for StepDisplayPref (set to Default if incorrect).
  // * Set parent step durations to be the combination of all children.