Persist drill recovery packet sources upstream
This commit is contained in:
parent
29da2611ea
commit
957f7d06e5
4 changed files with 501 additions and 58 deletions
|
|
@ -242,6 +242,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued handoff history");
|
||||
|
|
@ -250,6 +254,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up handoff history");
|
||||
|
|
@ -258,6 +266,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended handoff history");
|
||||
|
|
@ -266,6 +278,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued handoff history");
|
||||
|
|
@ -274,6 +290,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up handoff history");
|
||||
|
|
@ -282,6 +302,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended handoff history");
|
||||
|
|
@ -346,6 +370,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued dashboard handoff");
|
||||
|
|
@ -354,6 +382,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory 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");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture follow-up dashboard handoff");
|
||||
|
|
@ -362,6 +394,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture recommended dashboard handoff");
|
||||
|
|
@ -370,6 +406,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued dashboard handoff");
|
||||
|
|
@ -378,6 +418,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory 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");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture follow-up dashboard handoff");
|
||||
|
|
@ -386,6 +430,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended dashboard handoff");
|
||||
|
|
@ -450,6 +498,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("successful retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-posture history");
|
||||
|
|
@ -458,6 +510,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("weak retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-posture history");
|
||||
|
|
@ -486,21 +542,34 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
const bool bMethodDrillDriven = false,
|
||||
const EMethodDrillRecoveryMemoryBias MethodDrillRecoveryMemoryBias =
|
||||
EMethodDrillRecoveryMemoryBias::None,
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven = false)
|
||||
const bool bRetainedMethodDrillRecoveryPostureDriven = false,
|
||||
const bool bMethodDrillRecoveryPacketDriven = false)
|
||||
{
|
||||
if (MethodDrillRecoveryMemoryBias == EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-recommended");
|
||||
|
|
@ -513,14 +582,26 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
if (bMethodDrillRecoveryPacketDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended");
|
||||
}
|
||||
return bRetainedMethodDrillRecoveryPostureDriven
|
||||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-recommended");
|
||||
|
|
@ -1459,6 +1540,21 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
MethodDrillRecoveryMemoryHistoryEntries,
|
||||
true
|
||||
);
|
||||
const HyperTwistCoachDashboardWidgetInternal::FMethodDrillRecoveryPacketDashboardBias
|
||||
MethodDrillRecoveryPacketQueueBias =
|
||||
HyperTwistCoachDashboardWidgetInternal::DeriveMethodDrillRecoveryPacketDashboardBias(
|
||||
MethodDrillRecoveryMemoryHistoryEntries
|
||||
);
|
||||
const HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryPacketLaunchBias =
|
||||
MethodDrillRecoveryPacketQueueBias.bHasStrongContinuationSignal
|
||||
&& (!MethodDrillRecoveryPacketQueueBias.bHasWeakRedirectSignal
|
||||
|| MethodDrillRecoveryPacketQueueBias.LaunchRecoveryBias
|
||||
>= MethodDrillRecoveryPacketQueueBias.PromoteRecoveryBias)
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: (MethodDrillRecoveryPacketQueueBias.bHasWeakRedirectSignal
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
const bool bUseStrongRetainedMethodDrillRecoveryPosture =
|
||||
!bHasDeferredFirstSuppressionSignal
|
||||
&& QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchCount > 0
|
||||
|
|
@ -1478,6 +1574,11 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
&& (QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteReducedCount > 0
|
||||
|| QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteCount
|
||||
>= QueueRecoveryWeighting.StrongRetainedMethodDrillLaunchCount);
|
||||
const bool bUseMethodDrillRecoveryPacketSignal =
|
||||
!bHasDeferredFirstSuppressionSignal
|
||||
&& MethodDrillRecoveryPacketQueueBias.bHasSignal
|
||||
&& MethodDrillRecoveryPacketLaunchBias
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None;
|
||||
|
||||
auto StartRunAndRefresh = [this](const FHyperTwistTrainingRunState& RunState)
|
||||
{
|
||||
|
|
@ -1532,7 +1633,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
bHasDeferredFirstSuppressionSignal,
|
||||
bUseMethodDrillRecoverySignal,
|
||||
RetainedMethodDrillRecoveryMemoryBias,
|
||||
bUseStrongRetainedMethodDrillRecoveryPosture
|
||||
MethodDrillRecoveryPacketLaunchBias,
|
||||
bUseStrongRetainedMethodDrillRecoveryPosture,
|
||||
bUseMethodDrillRecoveryPacketSignal
|
||||
](
|
||||
const EHyperTwistTrainingCoachHandoffKind HandoffKind)
|
||||
{
|
||||
|
|
@ -1550,17 +1653,37 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
false,
|
||||
false,
|
||||
HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong,
|
||||
true,
|
||||
bUseMethodDrillRecoveryPacketSignal
|
||||
);
|
||||
}
|
||||
if (bUseMethodDrillRecoveryPacketSignal)
|
||||
{
|
||||
return HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
HandoffKind,
|
||||
false,
|
||||
false,
|
||||
MethodDrillRecoveryPacketLaunchBias,
|
||||
false,
|
||||
true
|
||||
);
|
||||
}
|
||||
if (bUseMethodDrillRecoverySignal)
|
||||
{
|
||||
const HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias
|
||||
EffectiveRecoverySourceBias =
|
||||
RetainedMethodDrillRecoveryMemoryBias
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None
|
||||
? RetainedMethodDrillRecoveryMemoryBias
|
||||
: MethodDrillRecoveryPacketLaunchBias;
|
||||
return HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
HandoffKind,
|
||||
false,
|
||||
RetainedMethodDrillRecoveryMemoryBias
|
||||
EffectiveRecoverySourceBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None,
|
||||
RetainedMethodDrillRecoveryMemoryBias
|
||||
EffectiveRecoverySourceBias,
|
||||
false,
|
||||
bUseMethodDrillRecoveryPacketSignal
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -6526,11 +6649,13 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
bUsedMethodDrillRecoveryMemoryForHandoff;
|
||||
auto SourceUsesStrongRetainedMethodDrillRecoveryPosture = [](const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.Contains(TEXT("method-drill-recovery-posture-strong"));
|
||||
return SourceLabel.Contains(TEXT("method-drill-recovery-posture-strong"))
|
||||
|| SourceLabel.Contains(TEXT("method-drill-recovery-packet-strong"));
|
||||
};
|
||||
auto SourceUsesWeakRetainedMethodDrillRecoveryPosture = [](const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel.Contains(TEXT("method-drill-recovery-posture-weak"));
|
||||
return SourceLabel.Contains(TEXT("method-drill-recovery-posture-weak"))
|
||||
|| SourceLabel.Contains(TEXT("method-drill-recovery-packet-weak"));
|
||||
};
|
||||
auto SourceUsesGenericMethodDrillRecoveryMemory = [](const FString& SourceLabel)
|
||||
{
|
||||
|
|
@ -7302,6 +7427,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
bool bHandoffRecommendationUsedDeferredFirstSuppressionSignal = false;
|
||||
bool bHandoffRecommendationUsedMethodDrillWeighting = false;
|
||||
bool bHandoffRecommendationUsedMethodDrillRecoveryMemory = false;
|
||||
bool bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = false;
|
||||
bool bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture = false;
|
||||
bool bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture = false;
|
||||
const HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias
|
||||
|
|
@ -7391,6 +7517,13 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
MethodDrillRecoveryPacketHandoffBias.PreferredHandoffKind
|
||||
== HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended
|
||||
&& bRecommendedReadyForHandoff;
|
||||
const HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias
|
||||
MethodDrillRecoveryPacketHandoffSourceBias =
|
||||
(bPacketPrefersQueueContinuation || bPacketPrefersFollowUpContinuation)
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: ((bPacketPrefersQueueRedirect || bPacketPrefersRecommendedRedirect)
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
if (!bCanUseCoachHandoff)
|
||||
{
|
||||
CoachHandoffRecommendationStatusLine =
|
||||
|
|
@ -7452,12 +7585,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue;
|
||||
bHandoffRecommendationUsedMethodDrillWeighting = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (bPacketPrefersFollowUpContinuation)
|
||||
{
|
||||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::FollowUp;
|
||||
bHandoffRecommendationUsedMethodDrillWeighting = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (HandoffHistoryBias.PreferredKind
|
||||
== HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue
|
||||
|
|
@ -7500,12 +7635,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (bPacketPrefersFollowUpContinuation)
|
||||
{
|
||||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::FollowUp;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (HandoffHistoryBias.PreferredKind
|
||||
== HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue
|
||||
|
|
@ -7559,12 +7696,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended;
|
||||
bHandoffRecommendationUsedMethodDrillWeighting = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (bPacketPrefersQueueRedirect)
|
||||
{
|
||||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue;
|
||||
bHandoffRecommendationUsedMethodDrillWeighting = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (HandoffHistoryBias.PreferredKind
|
||||
== HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue
|
||||
|
|
@ -7607,12 +7746,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (bPacketPrefersQueueRedirect)
|
||||
{
|
||||
HandoffRecommendationKind =
|
||||
HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Queue;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryMemory = true;
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory = true;
|
||||
}
|
||||
else if (HandoffHistoryBias.PreferredKind
|
||||
== HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::Recommended
|
||||
|
|
@ -7877,7 +8018,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak,
|
||||
true
|
||||
true,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|
|
@ -7889,12 +8031,28 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
DisplayedCoachHandoffRecommendationKind,
|
||||
false,
|
||||
false,
|
||||
EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
EffectiveMethodDrillRecoveryMemoryHandoffBias,
|
||||
false,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
&& MethodDrillRecoveryPacketHandoffSourceBias
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::None)
|
||||
{
|
||||
DisplayedCoachHandoffMethodDrillRecoveryMemoryStartActionSourceLabel =
|
||||
HyperTwistCoachDashboardWidgetInternal::DashboardHandoffSourceLabel(
|
||||
DisplayedCoachHandoffRecommendationKind,
|
||||
false,
|
||||
false,
|
||||
MethodDrillRecoveryPacketHandoffSourceBias,
|
||||
false,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
CoachHandoffRecommendationDetailLine = FString::Printf(
|
||||
TEXT("Closure continuation bias %d | Closure suppression bias %d | Queue ready: %s | Follow-up ready: %s | Recommended ready: %s | Preferred lane: %s | Memory source: %s%s%s%s%s%s%s | Launch bias: %s from %s | broadened/tightened history %d/%d | deferred tightened launches %d | deferred launch cases %d%s | Handoff history preferred: %s | accepted q/f/r %d/%d/%d | deferred-overflow accepted q/f/r %d/%d/%d | deferred-first recommendation q/f/r %d/%d/%d | recommended q/f/r %d/%d/%d"),
|
||||
TEXT("Closure continuation bias %d | Closure suppression bias %d | Queue ready: %s | Follow-up ready: %s | Recommended ready: %s | Preferred lane: %s | Memory source: %s%s%s%s%s%s%s%s | Launch bias: %s from %s | broadened/tightened history %d/%d | deferred tightened launches %d | deferred launch cases %d%s | Handoff history preferred: %s"),
|
||||
HandoffClosureBias.ContinuationBias,
|
||||
HandoffClosureBias.SuppressionBias,
|
||||
bQueueReadyForHandoff ? TEXT("yes") : TEXT("no"),
|
||||
|
|
@ -7922,6 +8080,9 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
? TEXT(" | Upstream strong drill-driven recovery memory directly tipped this handoff toward narrow continuation.")
|
||||
: TEXT(" | Upstream weak drill-driven recovery memory directly tipped this handoff back toward broader coach guidance."))
|
||||
: TEXT(""),
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
? TEXT(" | Retained drill-recovery packet history directly tipped this handoff branch.")
|
||||
: TEXT(""),
|
||||
bHandoffRecommendationUsedDeferredFirstSuppressionSignal
|
||||
? (bDeferredFirstSuppressionSignalPromoted
|
||||
? TEXT(" | Deferred-first queue suppression is promoted and keeping narrowed follow-up continuation ahead.")
|
||||
|
|
@ -7940,7 +8101,10 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
? TEXT(" | Deferred overflow memory is directly reinforcing this handoff.")
|
||||
: TEXT(""),
|
||||
*HyperTwistCoachDashboardWidgetInternal::DescribeHandoffRecommendationKind(
|
||||
HandoffHistoryBias.PreferredKind),
|
||||
HandoffHistoryBias.PreferredKind)
|
||||
);
|
||||
CoachHandoffRecommendationDetailLine += FString::Printf(
|
||||
TEXT(" | accepted q/f/r %d/%d/%d | deferred-overflow accepted q/f/r %d/%d/%d | deferred-first recommendation q/f/r %d/%d/%d | recommended q/f/r %d/%d/%d"),
|
||||
HandoffHistoryBias.QueueAcceptedDeltaCount,
|
||||
HandoffHistoryBias.FollowUpAcceptedDeltaCount,
|
||||
HandoffHistoryBias.RecommendedAcceptedDeltaCount,
|
||||
|
|
|
|||
|
|
@ -45,9 +45,15 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended")
|
||||
|| 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-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")
|
||||
|
|
@ -61,6 +67,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
return IsMethodDrillDashboardHandoffSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|
||||
|
|
@ -70,14 +78,19 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
bool IsStrongMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
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 == 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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")
|
||||
|| 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");
|
||||
}
|
||||
|
|
@ -85,14 +98,19 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
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 == 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-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")
|
||||
|| 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");
|
||||
}
|
||||
|
|
@ -186,14 +204,26 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued handoff history");
|
||||
|
|
@ -210,14 +240,26 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued handoff history");
|
||||
|
|
@ -278,14 +320,26 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory 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");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong retained drill-recovery-posture queued dashboard handoff");
|
||||
|
|
@ -302,14 +356,26 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted weak drill-recovery-memory queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory 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");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-memory recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture queued dashboard handoff");
|
||||
|
|
@ -382,10 +448,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("successful retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-memory history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-posture history");
|
||||
|
|
|
|||
|
|
@ -79,12 +79,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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")
|
||||
|| 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-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")
|
||||
|
|
@ -96,21 +102,41 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
return 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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");
|
||||
}
|
||||
|
||||
bool IsStrongMethodDrillRecoveryPacketDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return 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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-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");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryPacketDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
const FString& SourceLabel)
|
||||
{
|
||||
|
|
@ -131,12 +157,34 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
{
|
||||
return SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak");
|
||||
}
|
||||
|
||||
bool IsStrongMethodDrillRecoveryPacketCoachMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel
|
||||
== TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel
|
||||
== TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryPacketCoachMemorySource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel
|
||||
== TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel
|
||||
== TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
|
||||
EHyperTwistTrainingCoachHandoffKind DashboardHandoffKindFromSourceLabel(const FString& SourceLabel)
|
||||
{
|
||||
if (SourceLabel == TEXT("dashboard-handoff-queued")
|
||||
|
|
@ -144,7 +192,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued"))
|
||||
{
|
||||
|
|
@ -155,7 +205,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up"))
|
||||
{
|
||||
|
|
@ -166,7 +218,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-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")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended"))
|
||||
{
|
||||
|
|
@ -176,6 +230,32 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
return EHyperTwistTrainingCoachHandoffKind::None;
|
||||
}
|
||||
|
||||
FString CoachMemoryDashboardSourceLabelFromDashboardStartSource(const FString& SourceLabel)
|
||||
{
|
||||
if (SourceLabel.StartsWith(TEXT("coach-memory-dashboard-")))
|
||||
{
|
||||
return SourceLabel;
|
||||
}
|
||||
if (SourceLabel.StartsWith(TEXT("dashboard-handoff-")))
|
||||
{
|
||||
return FString(TEXT("coach-memory-dashboard-"))
|
||||
+ SourceLabel.RightChop(FString(TEXT("dashboard-handoff-")).Len());
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-queued"))
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-deferred-overflow-queued");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-follow-up"))
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-deferred-overflow-follow-up");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-recommended"))
|
||||
{
|
||||
return TEXT("coach-memory-dashboard-deferred-overflow-recommended");
|
||||
}
|
||||
return FString();
|
||||
}
|
||||
|
||||
enum class EMethodDrillRecoveryMemoryBias : uint8
|
||||
{
|
||||
None,
|
||||
|
|
@ -759,6 +839,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
if (ExplicitQueuedHandoffSignal > 0
|
||||
|| ExplicitFollowUpHandoffSignal > 0
|
||||
|| ExplicitRecommendedHandoffSignal > 0)
|
||||
|
|
@ -778,14 +870,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Queue,
|
||||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued")
|
||||
: (bWeakMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Queue,
|
||||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
else if (ExplicitFollowUpHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
|
|
@ -801,14 +897,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::FollowUp,
|
||||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up")
|
||||
: (bWeakMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::FollowUp,
|
||||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -824,14 +924,18 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
: EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Recommended,
|
||||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended")
|
||||
: (bWeakMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Recommended,
|
||||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
}
|
||||
const int32 WeightedFollowUpRecoverySignal =
|
||||
|
|
@ -918,6 +1022,21 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
}
|
||||
}
|
||||
if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryPacketCoachMemorySource(
|
||||
Snapshot.PreferredCoachHandoffSourceLabel))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-strong");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryPacketCoachMemorySource(
|
||||
Snapshot.PreferredCoachHandoffSourceLabel))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|
|
@ -6999,6 +7118,18 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
if (ExplicitQueuedHandoffSignal > 0
|
||||
|| ExplicitFollowUpHandoffSignal > 0
|
||||
|| ExplicitRecommendedHandoffSignal > 0)
|
||||
|
|
@ -7019,14 +7150,18 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Queue,
|
||||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued")
|
||||
: (bWeakMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Queue,
|
||||
ExplicitDeferredOverflowQueuedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstQueuedHandoffSignal > 0,
|
||||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
else if (ExplicitFollowUpHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
|
|
@ -7043,14 +7178,18 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::FollowUp,
|
||||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up")
|
||||
: (bWeakMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::FollowUp,
|
||||
ExplicitDeferredOverflowFollowUpHandoffSignal > 0,
|
||||
ExplicitDeferredFirstFollowUpHandoffSignal > 0,
|
||||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -7067,14 +7206,18 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Recommended,
|
||||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
);
|
||||
bStrongMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended")
|
||||
: (bWeakMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended")
|
||||
: HyperTwistTrainingRepositoryLibraryInternal::CoachMemoryDashboardSourceLabel(
|
||||
EHyperTwistTrainingCoachHandoffKind::Recommended,
|
||||
ExplicitDeferredOverflowRecommendedHandoffSignal > 0,
|
||||
ExplicitDeferredFirstRecommendedHandoffSignal > 0,
|
||||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
}
|
||||
}
|
||||
const int32 WeightedFollowUpRecoverySignal =
|
||||
|
|
@ -7161,6 +7304,20 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
}
|
||||
}
|
||||
if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryPacketCoachMemorySource(
|
||||
Snapshot.PreferredCoachHandoffSourceLabel))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-strong");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryPacketCoachMemorySource(
|
||||
Snapshot.PreferredCoachHandoffSourceLabel))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& RetainedMethodDrillRecoveryPostureLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|
|
@ -9052,9 +9209,15 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bStrongMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongMethodDrillRecoveryPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -9076,6 +9239,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillQueuedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp)
|
||||
{
|
||||
|
|
@ -9092,6 +9263,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended)
|
||||
{
|
||||
|
|
@ -9108,6 +9287,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryDashboardHandoff)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3669,6 +3669,24 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedMethodDrillRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedMethodDrillQueuedHandoffEventCount = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue