Learn trusted drill recovery plan reliability upstream

This commit is contained in:
axiomlogicnexus 2026-04-29 19:00:05 +02:00
parent 95f60229ee
commit 5f40aec955
4 changed files with 358 additions and 4 deletions

View file

@ -702,6 +702,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable"))
{
return TEXT("reliable trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
{
return TEXT("successful retained drill-recovery-packet history");
@ -734,6 +738,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("trusted broad drill-recovery-plan redirect history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable"))
{
return TEXT("reliable 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

@ -91,8 +91,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| 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-tight-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
}
@ -165,7 +167,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| 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-trusted");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
}
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
@ -196,7 +199,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
|| 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-trusted");
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
}
FString DescribeRetainedMethodDrillRecoveryStanceLabel(const FString& SourceLabel)
@ -702,6 +706,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable"))
{
return TEXT("reliable trusted tight drill-recovery-plan history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
{
return TEXT("successful retained drill-recovery-packet history");
@ -730,6 +738,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("trusted broad drill-recovery-plan redirect history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable"))
{
return TEXT("reliable 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

@ -326,8 +326,10 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| 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-tight-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-tight-"))
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-method-drill-recovery-structure-plan-broad-"));
}
@ -1015,6 +1017,28 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
BroadMethodDrillRecoveryStructurePlanStartedCount
- BroadMethodDrillRecoveryStructurePlanCompletedCount
);
const int32 TrustedTightMethodDrillRecoveryStructurePlanStartedCount =
QueueExecutionSummary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanPromotedCount =
QueueExecutionSummary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanCompletedCount =
QueueExecutionSummary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
0,
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
- TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
);
const int32 TrustedBroadMethodDrillRecoveryStructurePlanStartedCount =
QueueExecutionSummary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount =
QueueExecutionSummary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount =
QueueExecutionSummary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
0,
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
);
if (MethodDrillRecoveryStartedCount > 0)
{
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
@ -1024,6 +1048,40 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
(static_cast<float>(MethodDrillRecoveryCompletedCount) * 100.0f)
/ static_cast<float>(MethodDrillRecoveryStartedCount);
}
if ((TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 TrustedTightMethodDrillRecoveryStructurePlanEventCount =
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
TrustedTightMethodDrillRecoveryStructurePlanEventCount;
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
* 100.0f)
/ static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanEventCount);
}
if ((TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 TrustedBroadMethodDrillRecoveryStructurePlanEventCount =
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = FMath::Max(
0,
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
);
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount +=
TrustedBroadMethodDrillRecoveryStructurePlanEventCount;
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
* 100.0f)
/ static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
}
const bool bStrongMethodDrillRecoveryHistory =
MethodDrillRecoveryStartedCount >= 2
&& MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount
@ -1129,6 +1187,48 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
1,
3)
: 0;
const bool bTrustedTightMethodDrillRecoveryStructurePlanHistory =
(TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
>= 2
&& TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
>= TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
&& Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
const bool bTrustedBroadMethodDrillRecoveryStructurePlanHistory =
(TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
>= 2
&& (TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount)
>= TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
&& Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
const int32 TrustedTightMethodDrillRecoveryStructurePlanLaunchBias =
bTrustedTightMethodDrillRecoveryStructurePlanHistory
? FMath::Clamp(
(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount * 2)
- TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedTightMethodDrillRecoveryStructurePlanPromotedCount
+ (Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore
>= 80.0f
? 1
: 0),
1,
3)
: 0;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias =
bTrustedBroadMethodDrillRecoveryStructurePlanHistory
? FMath::Clamp(
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
+ (Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
>= 80.0f
? 1
: 0)
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
1,
3)
: 0;
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
@ -1347,6 +1447,30 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-packet-weak");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& TrustedTightMethodDrillRecoveryStructurePlanLaunchBias > 0
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
&& TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias > 0
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& HyperTwistTrainingRepositoryLibraryInternal::
@ -1596,7 +1720,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted");
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
const bool bBroadMethodDrillRecoveryStructureHandoffSource =
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
@ -1610,7 +1736,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted");
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted")
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
const bool bStrongMethodDrillRecoveryMemoryHandoffSource =
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
@ -7613,6 +7741,28 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
BroadMethodDrillRecoveryStructurePlanStartedCount
- BroadMethodDrillRecoveryStructurePlanCompletedCount
);
const int32 TrustedTightMethodDrillRecoveryStructurePlanStartedCount =
QueueExecutionSummary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanPromotedCount =
QueueExecutionSummary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanCompletedCount =
QueueExecutionSummary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
0,
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
- TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
);
const int32 TrustedBroadMethodDrillRecoveryStructurePlanStartedCount =
QueueExecutionSummary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount =
QueueExecutionSummary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount =
QueueExecutionSummary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
0,
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
);
if (MethodDrillRecoveryStartedCount > 0)
{
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
@ -7622,6 +7772,40 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
(static_cast<float>(MethodDrillRecoveryCompletedCount) * 100.0f)
/ static_cast<float>(MethodDrillRecoveryStartedCount);
}
if ((TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 TrustedTightMethodDrillRecoveryStructurePlanEventCount =
TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount;
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount +=
TrustedTightMethodDrillRecoveryStructurePlanEventCount;
Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount)
* 100.0f)
/ static_cast<float>(TrustedTightMethodDrillRecoveryStructurePlanEventCount);
}
if ((TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
> 0)
{
const int32 TrustedBroadMethodDrillRecoveryStructurePlanEventCount =
TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount = FMath::Max(
0,
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
);
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount +=
TrustedBroadMethodDrillRecoveryStructurePlanEventCount;
Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
(static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanRedirectCount)
* 100.0f)
/ static_cast<float>(TrustedBroadMethodDrillRecoveryStructurePlanEventCount);
}
const bool bStrongMethodDrillRecoveryHistory =
MethodDrillRecoveryStartedCount >= 2
&& MethodDrillRecoveryCompletedCount >= MethodDrillRecoveryOutstandingCount
@ -7727,6 +7911,48 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
1,
3)
: 0;
const bool bTrustedTightMethodDrillRecoveryStructurePlanHistory =
(TrustedTightMethodDrillRecoveryStructurePlanStartedCount
+ TrustedTightMethodDrillRecoveryStructurePlanPromotedCount)
>= 2
&& TrustedTightMethodDrillRecoveryStructurePlanCompletedCount
>= TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
&& Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
const bool bTrustedBroadMethodDrillRecoveryStructurePlanHistory =
(TrustedBroadMethodDrillRecoveryStructurePlanStartedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount)
>= 2
&& (TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount)
>= TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
&& Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore >= 60.0f;
const int32 TrustedTightMethodDrillRecoveryStructurePlanLaunchBias =
bTrustedTightMethodDrillRecoveryStructurePlanHistory
? FMath::Clamp(
(TrustedTightMethodDrillRecoveryStructurePlanCompletedCount * 2)
- TrustedTightMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedTightMethodDrillRecoveryStructurePlanPromotedCount
+ (Snapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore
>= 80.0f
? 1
: 0),
1,
3)
: 0;
const int32 TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias =
bTrustedBroadMethodDrillRecoveryStructurePlanHistory
? FMath::Clamp(
TrustedBroadMethodDrillRecoveryStructurePlanPromotedCount
+ TrustedBroadMethodDrillRecoveryStructurePlanOutstandingCount
- TrustedBroadMethodDrillRecoveryStructurePlanCompletedCount
+ (Snapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
>= 80.0f
? 1
: 0)
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
1,
3)
: 0;
const int32 StrongMethodDrillFollowUpPacketStartedCount =
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount
+ QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount
@ -8030,6 +8256,30 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-packet-weak");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& TrustedTightMethodDrillRecoveryStructurePlanLaunchBias > 0
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
&& TrustedBroadMethodDrillRecoveryStructurePlanPromoteBias > 0
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
{
Snapshot.PreferredQueueRecoveryActionSourceLabel =
TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable");
}
else if (Snapshot.PreferredQueueRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
&& HyperTwistTrainingRepositoryLibraryInternal::
@ -10012,6 +10262,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bWeakMethodDrillRecoveryDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
@ -10027,6 +10280,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
@ -10068,6 +10324,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
{
Summary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
@ -10080,6 +10340,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
}
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp)
{
@ -10116,6 +10380,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
{
Summary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
@ -10128,6 +10396,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
}
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended)
{
@ -10164,6 +10436,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
{
Summary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
@ -10176,6 +10452,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
}
if (bStrongMethodDrillRecoveryDashboardHandoff)
{
@ -10239,6 +10519,11 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel))
{
Summary.PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel))
{
@ -10249,6 +10534,11 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel))
{
Summary.PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
break;
case EHyperTwistTrainingCoachSessionQueueEventKind::Completed:
Summary.CompletedEventCount += 1;
@ -10272,6 +10562,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bWeakMethodDrillRecoveryDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
@ -10281,6 +10574,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
HistoryEntry.StartActionSourceLabel);
@ -10314,6 +10610,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedTightMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bWeakMethodDrillRecoveryDashboardHandoff)
{
Summary.CompletedWeakMethodDrillRecoveryMemoryHandoffEventCount += 1;
@ -10326,6 +10626,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
{
Summary.CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bTrustedBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
{
Summary.CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
}
if (bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff)
{
Summary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;

View file

@ -1959,6 +1959,18 @@ struct FHyperTwistTrainingCoachMemorySnapshot
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float MethodDrillRecoveryAverageOutcomeScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 TrustedTightMethodDrillRecoveryStructurePlanHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
bool bNeedsCoachIntervention = false;
@ -3744,6 +3756,15 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 StartedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 PromotedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 CompletedTrustedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
@ -3753,6 +3774,15 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 StartedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 PromotedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 CompletedTrustedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 CompletedMethodDrillQueuedHandoffEventCount = 0;