Persist drill recovery plan trust upstream

This commit is contained in:
axiomlogicnexus 2026-04-29 18:47:51 +02:00
parent 021c1212eb
commit 95f60229ee
3 changed files with 305 additions and 41 deletions

View file

@ -490,6 +490,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted tight drill-recovery-plan queued dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued"))
{
return TEXT("accepted trusted tight drill-recovery-plan queued dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued"))
{
return TEXT("accepted strong drill-recovery-packet queued dashboard handoff");
@ -510,6 +514,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted tight drill-recovery-plan follow-up dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up"))
{
return TEXT("accepted trusted tight drill-recovery-plan follow-up dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up"))
{
return TEXT("accepted strong drill-recovery-packet follow-up dashboard handoff");
@ -530,6 +538,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted tight drill-recovery-plan recommended dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended"))
{
return TEXT("accepted trusted tight drill-recovery-plan recommended dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended"))
{
return TEXT("accepted strong drill-recovery-packet recommended dashboard handoff");
@ -550,6 +562,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted broad drill-recovery-plan queued dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued"))
{
return TEXT("accepted trusted broad drill-recovery-plan queued dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued"))
{
return TEXT("accepted weak drill-recovery-packet queued dashboard handoff");
@ -570,6 +586,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted broad drill-recovery-plan follow-up dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up"))
{
return TEXT("accepted trusted broad drill-recovery-plan follow-up dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up"))
{
return TEXT("accepted weak drill-recovery-packet follow-up dashboard handoff");
@ -590,6 +610,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted broad drill-recovery-plan recommended dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended"))
{
return TEXT("accepted trusted broad drill-recovery-plan recommended dashboard handoff");
}
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended"))
{
return TEXT("accepted weak drill-recovery-packet recommended dashboard handoff");
@ -666,6 +690,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("successful tight drill-recovery-plan history");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-trusted-")))
{
return TEXT("accepted trusted tight drill-recovery-plan dashboard handoff");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-")))
{
return TEXT("accepted tight drill-recovery-plan dashboard handoff");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted"))
{
return TEXT("trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
{
return TEXT("successful retained drill-recovery-packet history");
@ -686,6 +722,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("successful broad drill-recovery-plan redirect history");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-trusted-")))
{
return TEXT("accepted trusted broad drill-recovery-plan dashboard handoff");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-")))
{
return TEXT("accepted broad drill-recovery-plan dashboard handoff");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted"))
{
return TEXT("trusted broad drill-recovery-plan redirect history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
{
return TEXT("weak retained drill-recovery-packet history");
@ -717,13 +765,31 @@ namespace HyperTwistCoachDashboardWidgetInternal
return SourceLabel.Contains(TEXT("structure-plan-tight"));
}
bool IsTrustedTightMethodDrillRecoveryPlanSourceLabel(const FString& SourceLabel)
{
return SourceLabel.Contains(TEXT("structure-plan-tight-trusted"));
}
bool IsBroadMethodDrillRecoveryPlanSourceLabel(const FString& SourceLabel)
{
return SourceLabel.Contains(TEXT("structure-plan-broad"));
}
bool IsTrustedBroadMethodDrillRecoveryPlanSourceLabel(const FString& SourceLabel)
{
return SourceLabel.Contains(TEXT("structure-plan-broad-trusted"));
}
FString DescribeMethodDrillRecoveryPlanSourceLabel(const FString& SourceLabel)
{
if (IsTrustedTightMethodDrillRecoveryPlanSourceLabel(SourceLabel))
{
return TEXT("trusted tight retained drill-recovery plan");
}
if (IsTrustedBroadMethodDrillRecoveryPlanSourceLabel(SourceLabel))
{
return TEXT("trusted broad retained drill-recovery plan");
}
if (IsTightMethodDrillRecoveryPlanSourceLabel(SourceLabel))
{
return TEXT("tight retained drill-recovery plan");
@ -747,7 +813,8 @@ namespace HyperTwistCoachDashboardWidgetInternal
const bool bNarrowMethodDrillRecoveryStructureDriven = false,
const bool bBroadMethodDrillRecoveryStructureDriven = false,
const bool bTightMethodDrillRecoveryStructurePlanDriven = false,
const bool bBroadMethodDrillRecoveryStructurePlanDriven = false)
const bool bBroadMethodDrillRecoveryStructurePlanDriven = false,
const bool bTrustedMethodDrillRecoveryStructurePlanDriven = false)
{
if (MethodDrillRecoveryMemoryBias == EMethodDrillRecoveryMemoryBias::Strong)
{
@ -756,7 +823,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::Queue:
if (bTightMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued");
}
if (bNarrowMethodDrillRecoveryStructureDriven)
{
@ -772,7 +841,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
if (bTightMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up");
}
if (bNarrowMethodDrillRecoveryStructureDriven)
{
@ -788,7 +859,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::Recommended:
if (bTightMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended");
}
if (bNarrowMethodDrillRecoveryStructureDriven)
{
@ -812,7 +885,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::Queue:
if (bBroadMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued");
}
if (bBroadMethodDrillRecoveryStructureDriven)
{
@ -828,7 +903,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
if (bBroadMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up");
}
if (bBroadMethodDrillRecoveryStructureDriven)
{
@ -844,7 +921,9 @@ namespace HyperTwistCoachDashboardWidgetInternal
case EHyperTwistTrainingCoachHandoffKind::Recommended:
if (bBroadMethodDrillRecoveryStructurePlanDriven)
{
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended");
return bTrustedMethodDrillRecoveryStructurePlanDriven
? TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended")
: TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended");
}
if (bBroadMethodDrillRecoveryStructureDriven)
{
@ -2059,22 +2138,39 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
const bool bUseBroadMethodDrillPacketStructureRecovery =
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-follow-up-packet-structure-broad");
const bool bUseTightMethodDrillRecoveryStructurePlan =
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| (MethodDrillRecoveryPacketLaunchBias
const bool bUseTightMethodDrillRecoveryStructurePlan =
HyperTwistCoachDashboardWidgetInternal::IsTightMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel)
|| (MethodDrillRecoveryPacketLaunchBias
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
&& MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount > 0
&& MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount
>= MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount);
const bool bUseBroadMethodDrillRecoveryStructurePlan =
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| (MethodDrillRecoveryPacketLaunchBias
const bool bUseBroadMethodDrillRecoveryStructurePlan =
HyperTwistCoachDashboardWidgetInternal::IsBroadMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel)
|| (MethodDrillRecoveryPacketLaunchBias
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
&& MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount > 0
&& MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount
>= MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount);
&& MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount
>= MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount);
const HyperTwistCoachDashboardWidgetInternal::FMethodDrillRecoveryPlanComparisonSummary
MethodDrillRecoveryPlanComparisonSummary =
HyperTwistCoachDashboardWidgetInternal::DeriveMethodDrillRecoveryPlanComparisonSummary(
MethodDrillRecoveryMemoryHistoryEntries
);
const bool bUseTrustedTightMethodDrillRecoveryStructurePlan =
bUseTightMethodDrillRecoveryStructurePlan
&& (HyperTwistCoachDashboardWidgetInternal::IsTrustedTightMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel)
|| HyperTwistCoachDashboardWidgetInternal::PrefersMethodDrillRecoveryPlanTightContinuation(
MethodDrillRecoveryPlanComparisonSummary));
const bool bUseTrustedBroadMethodDrillRecoveryStructurePlan =
bUseBroadMethodDrillRecoveryStructurePlan
&& (HyperTwistCoachDashboardWidgetInternal::IsTrustedBroadMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel)
|| HyperTwistCoachDashboardWidgetInternal::PrefersMethodDrillRecoveryPlanBroadRedirect(
MethodDrillRecoveryPlanComparisonSummary));
auto StartRunAndRefresh = [this](const FHyperTwistTrainingRunState& RunState)
{
@ -2139,12 +2235,14 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
RetainedMethodDrillRecoveryMemoryBias,
MethodDrillRecoveryPacketLaunchBias,
bUseStrongRetainedMethodDrillRecoveryPosture,
bUseMethodDrillRecoveryPacketSignal,
bUseNarrowMethodDrillPacketStructureRecovery,
bUseBroadMethodDrillPacketStructureRecovery,
bUseTightMethodDrillRecoveryStructurePlan,
bUseBroadMethodDrillRecoveryStructurePlan
](
bUseMethodDrillRecoveryPacketSignal,
bUseNarrowMethodDrillPacketStructureRecovery,
bUseBroadMethodDrillPacketStructureRecovery,
bUseTightMethodDrillRecoveryStructurePlan,
bUseBroadMethodDrillRecoveryStructurePlan,
bUseTrustedTightMethodDrillRecoveryStructurePlan,
bUseTrustedBroadMethodDrillRecoveryStructurePlan
](
const EHyperTwistTrainingCoachHandoffKind HandoffKind)
{
if (bHasDeferredFirstSuppressionSignal)
@ -2166,7 +2264,8 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
bUseNarrowMethodDrillPacketStructureRecovery,
false,
bUseTightMethodDrillRecoveryStructurePlan,
false
false,
bUseTrustedTightMethodDrillRecoveryStructurePlan
);
}
if (bUseMethodDrillRecoveryPacketSignal)
@ -2181,7 +2280,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
bUseNarrowMethodDrillPacketStructureRecovery,
bUseBroadMethodDrillPacketStructureRecovery,
bUseTightMethodDrillRecoveryStructurePlan,
bUseBroadMethodDrillRecoveryStructurePlan
bUseBroadMethodDrillRecoveryStructurePlan,
bUseTrustedTightMethodDrillRecoveryStructurePlan
|| bUseTrustedBroadMethodDrillRecoveryStructurePlan
);
}
if (bUseMethodDrillRecoverySignal)
@ -2203,7 +2304,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
bUseNarrowMethodDrillPacketStructureRecovery,
bUseBroadMethodDrillPacketStructureRecovery,
bUseTightMethodDrillRecoveryStructurePlan,
bUseBroadMethodDrillRecoveryStructurePlan
bUseBroadMethodDrillRecoveryStructurePlan,
bUseTrustedTightMethodDrillRecoveryStructurePlan
|| bUseTrustedBroadMethodDrillRecoveryStructurePlan
);
}
@ -9023,8 +9126,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
&& (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|| bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|| bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory))
|| CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight"));
|| HyperTwistCoachDashboardWidgetInternal::IsTightMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel));
const bool bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan =
HandoffRecommendationKind
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
@ -9036,8 +9139,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
&& (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture
|| bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory))
|| CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad"));
|| HyperTwistCoachDashboardWidgetInternal::IsBroadMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel));
if (bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture)
{
@ -9054,7 +9157,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
false,
false,
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedPlanComparisonHistory
);
}
else if (bHandoffRecommendationUsedMethodDrillRecoveryMemory
@ -9072,7 +9176,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
false,
false,
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedPlanComparisonHistory
);
}
else if (bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
@ -9090,7 +9195,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
false,
false,
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan,
bHandoffRecommendationUsedPlanComparisonHistory
);
}
else if (bHandoffRecommendationUsedStrongMethodDrillFollowUpPacket

View file

@ -90,7 +90,11 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
}
bool IsMethodDrillRecoveryPacketSource(const FString& SourceLabel)
@ -138,6 +142,7 @@ namespace HyperTwistTrainingCoachLibraryInternal
return SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
@ -148,15 +153,19 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|| IsNarrowMethodDrillFollowUpPacketStructureSource(SourceLabel)
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
}
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
@ -164,6 +173,7 @@ namespace HyperTwistTrainingCoachLibraryInternal
return SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-weak-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"))
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
@ -174,15 +184,19 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak")
|| IsBroadMethodDrillFollowUpPacketStructureSource(SourceLabel)
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
}
FString DescribeRetainedMethodDrillRecoveryStanceLabel(const FString& SourceLabel)
@ -368,6 +382,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("accepted strong retained drill-recovery-posture recommended handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-trusted-queued"))
{
return TEXT("accepted trusted tight drill-recovery-plan queued handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-trusted-follow-up"))
{
return TEXT("accepted trusted tight drill-recovery-plan follow-up handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-trusted-recommended"))
{
return TEXT("accepted trusted tight drill-recovery-plan recommended handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-queued"))
{
return TEXT("accepted weak drill-recovery-memory queued handoff history");
@ -404,6 +430,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("accepted weak retained drill-recovery-posture recommended handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-trusted-queued"))
{
return TEXT("accepted trusted broad drill-recovery-plan queued handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-trusted-follow-up"))
{
return TEXT("accepted trusted broad drill-recovery-plan follow-up handoff history");
}
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-trusted-recommended"))
{
return TEXT("accepted trusted broad drill-recovery-plan recommended handoff history");
}
if (SourceLabel == TEXT("coach-memory-queue-follow-up"))
{
return TEXT("queue follow-up recovery memory");
@ -652,6 +690,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("successful tight drill-recovery-plan history");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-trusted-")))
{
return TEXT("accepted trusted tight drill-recovery-plan dashboard handoff");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-")))
{
return TEXT("accepted tight drill-recovery-plan dashboard handoff");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted"))
{
return TEXT("trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
{
return TEXT("successful retained drill-recovery-packet history");
@ -668,6 +718,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("successful broad drill-recovery-plan redirect history");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-trusted-")))
{
return TEXT("accepted trusted broad drill-recovery-plan dashboard handoff");
}
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-")))
{
return TEXT("accepted broad drill-recovery-plan dashboard handoff");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted"))
{
return TEXT("trusted broad drill-recovery-plan redirect history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
{
return TEXT("weak retained drill-recovery-packet history");

View file

@ -101,14 +101,20 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
@ -127,8 +133,11 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended");
@ -160,8 +169,11 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended");
@ -188,19 +200,53 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
bool IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(const FString& SourceLabel)
{
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended");
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended");
}
bool IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(const FString& SourceLabel)
{
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended");
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended");
}
bool IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
const FString& SourceLabel)
{
return SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended");
}
bool IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
const FString& SourceLabel)
{
return SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended");
}
bool IsWeakMethodDrillRecoveryPacketDashboardHandoffSource(const FString& SourceLabel)
@ -279,7 +325,11 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
}
bool IsStrongMethodDrillRecoveryPacketCoachMemorySource(const FString& SourceLabel)
@ -314,8 +364,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
@ -333,8 +385,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
@ -352,8 +406,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-trusted-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended")
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
@ -1291,6 +1347,24 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-packet-weak");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& HyperTwistTrainingRepositoryLibraryInternal::
IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
&& HyperTwistTrainingRepositoryLibraryInternal::
IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
}
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& TightMethodDrillRecoveryStructurePlanLaunchBias > 0
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
@ -1520,7 +1594,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
)
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
const bool bBroadMethodDrillRecoveryStructureHandoffSource =
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
@ -1532,7 +1608,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
)
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
const bool bStrongMethodDrillRecoveryMemoryHandoffSource =
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
@ -7952,6 +8030,24 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-packet-weak");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& HyperTwistTrainingRepositoryLibraryInternal::
IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
&& HyperTwistTrainingRepositoryLibraryInternal::
IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& TightMethodDrillRecoveryStructurePlanLaunchBias > 0