package controlplane

type RepairOptions struct {
	SkipPolymorphicDiscriminatorBackfill bool
	deferredSourceBackedLegacyBackfills  map[string]struct{}

	// DeferConnectorWorkItemCutover keeps the destructive Event-to-WorkItem
	// handoff out of ApplyAll's early repair phase. ApplyAll runs it only after
	// runtime packs have been applied and source-backed declarations converged,
	// when the deployment's ingress fence is present.
	DeferConnectorWorkItemCutover bool

	// FailClosedOnConvergenceRepairs makes RunRepair fail (return an error) when
	// ANY best-effort repair step recorded a failure, except an explicit
	// janitorial allowlist. ApplyAll sets this so that a swallowed best-effort
	// repair failure cannot flow through to the control_plane_apply_all=completed
	// marker: the marker must not claim a converged control plane while a
	// repair restart depends on (permission SSoT / setup-object OP/FP backfills,
	// field-capability clamping, legacy plural-label canonicalization, object-id
	// normalization, physical-table/object discovery, …) silently failed —
	// pod-readiness verify does not cover all of those surfaces. It is a single
	// end-of-repair gate rather than per-step fatality so the whole class is
	// covered, not one step at a time. Standalone `setup repair` leaves it false
	// (best-effort: heal what it can, never abort).
	FailClosedOnConvergenceRepairs bool
}
