Retain drill recovery plan posture history
This commit is contained in:
parent
4420dba93e
commit
ba04128d39
2 changed files with 173 additions and 22 deletions
|
|
@ -91,6 +91,8 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
int32 StrongQueueEntryCount = 0;
|
||||
int32 StrongFollowUpPacketCount = 0;
|
||||
int32 WeakRecommendedBriefCount = 0;
|
||||
int32 TightContinuationPlanCount = 0;
|
||||
int32 BroadRedirectPlanCount = 0;
|
||||
int32 LaunchRecoveryBias = 0;
|
||||
int32 PromoteRecoveryBias = 0;
|
||||
int32 QueueHandoffBias = 0;
|
||||
|
|
@ -113,6 +115,47 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
return TEXT("Unknown");
|
||||
}
|
||||
|
||||
bool IsTightCoachPlanPosture(
|
||||
const EHyperTwistTrainingDeliveryMode SuggestedMode,
|
||||
const EHyperTwistTrainingSelectionPolicy SuggestedSelectionPolicy)
|
||||
{
|
||||
return SuggestedSelectionPolicy == EHyperTwistTrainingSelectionPolicy::Scripted
|
||||
&& (SuggestedMode == EHyperTwistTrainingDeliveryMode::CoachReviewed
|
||||
|| SuggestedMode == EHyperTwistTrainingDeliveryMode::RecognitionAssisted);
|
||||
}
|
||||
|
||||
bool IsBroadCoachPlanPosture(
|
||||
const EHyperTwistTrainingDeliveryMode SuggestedMode,
|
||||
const EHyperTwistTrainingSelectionPolicy SuggestedSelectionPolicy)
|
||||
{
|
||||
return SuggestedSelectionPolicy != EHyperTwistTrainingSelectionPolicy::Scripted
|
||||
&& SuggestedMode != EHyperTwistTrainingDeliveryMode::CoachReviewed;
|
||||
}
|
||||
|
||||
FString DescribeCoachPlanPosture(
|
||||
const EHyperTwistTrainingDeliveryMode SuggestedMode,
|
||||
const EHyperTwistTrainingSelectionPolicy SuggestedSelectionPolicy)
|
||||
{
|
||||
if (IsTightCoachPlanPosture(SuggestedMode, SuggestedSelectionPolicy))
|
||||
{
|
||||
return TEXT("tight reviewed/scripted continuation");
|
||||
}
|
||||
if (IsBroadCoachPlanPosture(SuggestedMode, SuggestedSelectionPolicy))
|
||||
{
|
||||
return TEXT("broad redirect default");
|
||||
}
|
||||
if (SuggestedSelectionPolicy == EHyperTwistTrainingSelectionPolicy::Scripted)
|
||||
{
|
||||
return TEXT("scripted mixed posture");
|
||||
}
|
||||
if (SuggestedMode == EHyperTwistTrainingDeliveryMode::CoachReviewed)
|
||||
{
|
||||
return TEXT("reviewed mixed posture");
|
||||
}
|
||||
|
||||
return TEXT("neutral default posture");
|
||||
}
|
||||
|
||||
FString DescribeGuidanceLane(const EHyperTwistTrainingCoachGuidanceLane Lane)
|
||||
{
|
||||
switch (Lane)
|
||||
|
|
@ -1402,14 +1445,20 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bNarrowStructureRecovery)
|
||||
else if (bNarrowStructureRecovery)
|
||||
{
|
||||
Bias.StrongQueueEntryCount += HistoryWeight;
|
||||
Bias.QueueHandoffBias += HistoryWeight * 2;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight * 2;
|
||||
if (Entry.bGeneratedPlanUsedTightStructureContinuationPosture)
|
||||
{
|
||||
Bias.StrongQueueEntryCount += HistoryWeight;
|
||||
Bias.QueueHandoffBias += HistoryWeight * 2;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight * 2;
|
||||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
Bias.TightContinuationPlanCount += HistoryWeight;
|
||||
Bias.QueueHandoffBias += HistoryWeight;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight;
|
||||
}
|
||||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bGenericPacket)
|
||||
{
|
||||
Bias.QueueHandoffBias += HistoryWeight;
|
||||
|
|
@ -1431,14 +1480,20 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bNarrowStructureRecovery)
|
||||
else if (bNarrowStructureRecovery)
|
||||
{
|
||||
Bias.StrongFollowUpPacketCount += HistoryWeight;
|
||||
Bias.FollowUpHandoffBias += HistoryWeight * 3;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight * 2;
|
||||
if (Entry.bGeneratedPlanUsedTightStructureContinuationPosture)
|
||||
{
|
||||
Bias.StrongFollowUpPacketCount += HistoryWeight;
|
||||
Bias.FollowUpHandoffBias += HistoryWeight * 3;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight * 2;
|
||||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
Bias.TightContinuationPlanCount += HistoryWeight;
|
||||
Bias.FollowUpHandoffBias += HistoryWeight;
|
||||
Bias.LaunchRecoveryBias += HistoryWeight;
|
||||
}
|
||||
Bias.bHasStrongContinuationSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bGenericPacket)
|
||||
{
|
||||
Bias.FollowUpHandoffBias += HistoryWeight;
|
||||
|
|
@ -1460,14 +1515,20 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
Bias.bHasWeakRedirectSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bBroadStructureRecovery)
|
||||
else if (bBroadStructureRecovery)
|
||||
{
|
||||
Bias.WeakRecommendedBriefCount += HistoryWeight;
|
||||
Bias.RecommendedHandoffBias += HistoryWeight * 3;
|
||||
Bias.PromoteRecoveryBias += HistoryWeight * 2;
|
||||
if (Entry.bGeneratedPlanUsedBroadStructureRedirectPosture)
|
||||
{
|
||||
Bias.WeakRecommendedBriefCount += HistoryWeight;
|
||||
Bias.RecommendedHandoffBias += HistoryWeight * 3;
|
||||
Bias.PromoteRecoveryBias += HistoryWeight * 2;
|
||||
Bias.bHasWeakRedirectSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
Bias.BroadRedirectPlanCount += HistoryWeight;
|
||||
Bias.RecommendedHandoffBias += HistoryWeight;
|
||||
Bias.PromoteRecoveryBias += HistoryWeight;
|
||||
}
|
||||
Bias.bHasWeakRedirectSignal = true;
|
||||
Bias.bHasSignal = true;
|
||||
}
|
||||
else if (bGenericPacket)
|
||||
{
|
||||
Bias.RecommendedHandoffBias += HistoryWeight;
|
||||
|
|
@ -7097,6 +7158,28 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
|| SourceLabel.Contains(TEXT("method-drill-recovery-memory-weak"));
|
||||
};
|
||||
const FString GuidanceSourceLabel = CachedCoachPanelState.PreferredGuidanceSourceLabel;
|
||||
const auto ApplyGeneratedPlanSnapshot =
|
||||
[&Entry](
|
||||
const EHyperTwistTrainingDeliveryMode SuggestedMode,
|
||||
const EHyperTwistTrainingSelectionPolicy SuggestedSelectionPolicy)
|
||||
{
|
||||
Entry.GeneratedPlanSuggestedMode = SuggestedMode;
|
||||
Entry.GeneratedPlanSuggestedSelectionPolicy = SuggestedSelectionPolicy;
|
||||
Entry.GeneratedPlanPostureLabel =
|
||||
HyperTwistCoachDashboardWidgetInternal::DescribeCoachPlanPosture(
|
||||
SuggestedMode,
|
||||
SuggestedSelectionPolicy);
|
||||
Entry.bGeneratedPlanUsedTightStructureContinuationPosture =
|
||||
Entry.bNarrowPacketStructureRecoveryDominant
|
||||
&& HyperTwistCoachDashboardWidgetInternal::IsTightCoachPlanPosture(
|
||||
SuggestedMode,
|
||||
SuggestedSelectionPolicy);
|
||||
Entry.bGeneratedPlanUsedBroadStructureRedirectPosture =
|
||||
Entry.bBroadPacketStructureRecoveryDominant
|
||||
&& HyperTwistCoachDashboardWidgetInternal::IsBroadCoachPlanPosture(
|
||||
SuggestedMode,
|
||||
SuggestedSelectionPolicy);
|
||||
};
|
||||
const bool bStrongPacketPosture =
|
||||
SourceUsesStrongRetainedMethodDrillRecoveryPosture(GuidanceSourceLabel)
|
||||
|| SourceUsesStrongRetainedMethodDrillRecoveryPosture(
|
||||
|
|
@ -7132,6 +7215,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
? SelectedQueueEntry->SourceLabel
|
||||
: SelectedQueueEntry->Headline;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = SelectedQueueEntry->FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
SelectedQueueEntry->SuggestedMode,
|
||||
SelectedQueueEntry->SuggestedSelectionPolicy);
|
||||
}
|
||||
}
|
||||
else if (Entry.RecommendedHandoffKindLabel.Equals(TEXT("follow-up"), ESearchCase::IgnoreCase))
|
||||
|
|
@ -7141,6 +7227,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
Entry.GeneratedGuidancePacketHeadline = CachedCoachFollowUpBrief.Headline;
|
||||
Entry.GeneratedGuidancePacketActionLabel = CachedCoachFollowUpBrief.PrimaryActionLabel;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = CachedCoachFollowUpBrief.FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
CachedCoachFollowUpBrief.SuggestedMode,
|
||||
CachedCoachFollowUpBrief.SuggestedSelectionPolicy);
|
||||
}
|
||||
else if (Entry.RecommendedHandoffKindLabel.Equals(TEXT("recommended"), ESearchCase::IgnoreCase))
|
||||
{
|
||||
|
|
@ -7149,6 +7238,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
Entry.GeneratedGuidancePacketHeadline = CachedCoachBrief.Headline;
|
||||
Entry.GeneratedGuidancePacketActionLabel = CachedCoachBrief.PrimaryActionLabel;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = CachedCoachBrief.FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
CachedCoachBrief.SuggestedMode,
|
||||
CachedCoachBrief.SuggestedSelectionPolicy);
|
||||
}
|
||||
if (Entry.GeneratedGuidancePacketKindLabel.IsEmpty())
|
||||
{
|
||||
|
|
@ -7161,6 +7253,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
Entry.GeneratedGuidancePacketHeadline = CachedCoachFollowUpBrief.Headline;
|
||||
Entry.GeneratedGuidancePacketActionLabel = CachedCoachFollowUpBrief.PrimaryActionLabel;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = CachedCoachFollowUpBrief.FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
CachedCoachFollowUpBrief.SuggestedMode,
|
||||
CachedCoachFollowUpBrief.SuggestedSelectionPolicy);
|
||||
}
|
||||
else if (const FHyperTwistTrainingCoachSessionQueueStateEntry* SelectedQueueEntry =
|
||||
FindSelectedQueueEntry())
|
||||
|
|
@ -7173,6 +7268,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
? SelectedQueueEntry->SourceLabel
|
||||
: SelectedQueueEntry->Headline;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = SelectedQueueEntry->FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
SelectedQueueEntry->SuggestedMode,
|
||||
SelectedQueueEntry->SuggestedSelectionPolicy);
|
||||
}
|
||||
else if (!CachedCoachBrief.Headline.IsEmpty()
|
||||
|| !CachedCoachBrief.PrimaryActionLabel.IsEmpty()
|
||||
|
|
@ -7183,6 +7281,9 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
Entry.GeneratedGuidancePacketHeadline = CachedCoachBrief.Headline;
|
||||
Entry.GeneratedGuidancePacketActionLabel = CachedCoachBrief.PrimaryActionLabel;
|
||||
Entry.GeneratedGuidancePacketFocusCaseCount = CachedCoachBrief.FocusCaseIds.Num();
|
||||
ApplyGeneratedPlanSnapshot(
|
||||
CachedCoachBrief.SuggestedMode,
|
||||
CachedCoachBrief.SuggestedSelectionPolicy);
|
||||
}
|
||||
}
|
||||
if (!Entry.IsStructurallyValid())
|
||||
|
|
@ -7236,12 +7337,22 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
|
|||
== Entry.GeneratedGuidancePacketActionLabel
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedGuidancePacketFocusCaseCount
|
||||
== Entry.GeneratedGuidancePacketFocusCaseCount
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedPlanSuggestedMode
|
||||
== Entry.GeneratedPlanSuggestedMode
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedPlanSuggestedSelectionPolicy
|
||||
== Entry.GeneratedPlanSuggestedSelectionPolicy
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedPlanPostureLabel
|
||||
== Entry.GeneratedPlanPostureLabel
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bGeneratedPacketUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
== Entry.bGeneratedPacketUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bGeneratedPacketUsedWeakRetainedMethodDrillRecoveryPosture
|
||||
== Entry.bGeneratedPacketUsedWeakRetainedMethodDrillRecoveryPosture
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bGeneratedPacketUsedGenericMethodDrillRecoveryMemory
|
||||
== Entry.bGeneratedPacketUsedGenericMethodDrillRecoveryMemory
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bGeneratedPlanUsedTightStructureContinuationPosture
|
||||
== Entry.bGeneratedPlanUsedTightStructureContinuationPosture
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bGeneratedPlanUsedBroadStructureRedirectPosture
|
||||
== Entry.bGeneratedPlanUsedBroadStructureRedirectPosture
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bUsedMethodDrillRecoveryMemoryForRecovery
|
||||
== Entry.bUsedMethodDrillRecoveryMemoryForRecovery
|
||||
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bUsedMethodDrillRecoveryMemoryForHandoff
|
||||
|
|
@ -8625,13 +8736,15 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
EffectiveMethodDrillRecoveryMemoryHandoffBias)
|
||||
);
|
||||
CoachHandoffRecommendationDetailLine += FString::Printf(
|
||||
TEXT(" | packet history queue/follow-up/recommended %d/%d/%d | strong packet queue/follow-up %d/%d | weak packet recommended %d | packet preferred: %s"),
|
||||
TEXT(" | packet history queue/follow-up/recommended %d/%d/%d | strong packet queue/follow-up %d/%d | weak packet recommended %d | tight/broad plan posture %d/%d | packet preferred: %s"),
|
||||
MethodDrillRecoveryPacketHandoffBias.QueueEntryHistoryCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.FollowUpPacketHistoryCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.RecommendedBriefHistoryCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.StrongQueueEntryCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.StrongFollowUpPacketCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.WeakRecommendedBriefCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.TightContinuationPlanCount,
|
||||
MethodDrillRecoveryPacketHandoffBias.BroadRedirectPlanCount,
|
||||
*HyperTwistCoachDashboardWidgetInternal::DescribeHandoffRecommendationKind(
|
||||
MethodDrillRecoveryPacketHandoffBias.PreferredHandoffKind)
|
||||
);
|
||||
|
|
@ -9053,7 +9166,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
: *QueueDeferredFirstSuppressionSignal->Detail)
|
||||
: TEXT("");
|
||||
const FString QueueRecoveryDetailLine = FString::Printf(
|
||||
TEXT("Deferred events %d | Promoted %d | Manual %d | Pressure %.2f | Dominant reason: %s | Follow-up deferrals: %s | Archive-aware deferrals: %s | Completion gap: %s | Upstream action source: %s%s || Learned promote %d/%d reduced, %d failed, avg delta %.2f | launch %d/%d reduced, %d failed, avg delta %.2f | deferred-first promote/launch reduced %d/%d over %d/%d | drill-driven outcome promote/launch reduced %d/%d over %d/%d | retained strong-launch %d/%d, weak-promote %d/%d | drill-driven bias promote/launch %d/%d | packet history queue/follow-up/recommended %d/%d/%d | packet bias promote/launch %d/%d | upstream drill recovery strong/weak/history %d/%d/%d avg %.1f | retained drill-recovery stance: %s"),
|
||||
TEXT("Deferred events %d | Promoted %d | Manual %d | Pressure %.2f | Dominant reason: %s | Follow-up deferrals: %s | Archive-aware deferrals: %s | Completion gap: %s | Upstream action source: %s%s || Learned promote %d/%d reduced, %d failed, avg delta %.2f | launch %d/%d reduced, %d failed, avg delta %.2f | deferred-first promote/launch reduced %d/%d over %d/%d | drill-driven outcome promote/launch reduced %d/%d over %d/%d | retained strong-launch %d/%d, weak-promote %d/%d | drill-driven bias promote/launch %d/%d | packet history queue/follow-up/recommended %d/%d/%d | packet-plan posture tight/broad %d/%d | packet bias promote/launch %d/%d | upstream drill recovery strong/weak/history %d/%d/%d avg %.1f | retained drill-recovery stance: %s"),
|
||||
CachedCoachQueueExecutionSummary.DeferredEventCount,
|
||||
CachedCoachQueueExecutionSummary.PromotedEventCount,
|
||||
CachedCoachQueueExecutionSummary.ManualRescheduleEventCount,
|
||||
|
|
@ -9091,6 +9204,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
MethodDrillRecoveryPacketQueueBias.QueueEntryHistoryCount,
|
||||
MethodDrillRecoveryPacketQueueBias.FollowUpPacketHistoryCount,
|
||||
MethodDrillRecoveryPacketQueueBias.RecommendedBriefHistoryCount,
|
||||
MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount,
|
||||
MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount,
|
||||
MethodDrillRecoveryPacketQueueBias.PromoteRecoveryBias,
|
||||
MethodDrillRecoveryPacketQueueBias.LaunchRecoveryBias,
|
||||
QueueRecoveryWeighting.MethodDrillUpstreamStrongCount,
|
||||
|
|
@ -9363,6 +9478,23 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
|| SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedGuidancePacketActionLabel.IsEmpty()
|
||||
? TEXT("n/a")
|
||||
: SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedGuidancePacketActionLabel;
|
||||
const FString MethodDrillRecoveryMemoryGeneratedPlanModeLine =
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry == nullptr
|
||||
|| SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedGuidancePacketKindLabel.IsEmpty()
|
||||
? TEXT("n/a")
|
||||
: HyperTwistCoachDashboardWidgetInternal::EnumDisplayName(
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedPlanSuggestedMode);
|
||||
const FString MethodDrillRecoveryMemoryGeneratedPlanSelectionLine =
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry == nullptr
|
||||
|| SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedGuidancePacketKindLabel.IsEmpty()
|
||||
? TEXT("n/a")
|
||||
: HyperTwistCoachDashboardWidgetInternal::EnumDisplayName(
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedPlanSuggestedSelectionPolicy);
|
||||
const FString MethodDrillRecoveryMemoryGeneratedPlanPostureLine =
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry == nullptr
|
||||
|| SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedPlanPostureLabel.IsEmpty()
|
||||
? TEXT("n/a")
|
||||
: SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedPlanPostureLabel;
|
||||
const FString MethodDrillRecoveryMemoryGeneratedPacketStanceLine =
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry == nullptr
|
||||
? TEXT("n/a")
|
||||
|
|
@ -9377,7 +9509,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
SelectedMethodDrillRecoveryMemoryHistoryEntry != nullptr
|
||||
&& SelectedMethodDrillRecoveryMemoryHistoryEntry->IsStructurallyValid()
|
||||
? FString::Printf(
|
||||
TEXT("Drill recovery memory history: %d entries | selected %d/%d | %s | %s | Packet: %s | Stance: %s | Recorded: %s"),
|
||||
TEXT("Drill recovery memory history: %d entries | selected %d/%d | %s | %s | Packet: %s | Stance: %s | Plan: %s | Recorded: %s"),
|
||||
MethodDrillRecoveryMemoryHistoryEntries.Num(),
|
||||
SelectedMethodDrillRecoveryMemoryHistoryIndex + 1,
|
||||
MethodDrillRecoveryMemoryHistoryEntries.Num(),
|
||||
|
|
@ -9386,13 +9518,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
*MethodDrillRecoveryMemoryGeneratedPacketKindLine,
|
||||
*HyperTwistCoachDashboardWidgetInternal::DescribeMethodDrillRecoveryMemoryBias(
|
||||
SelectedMethodDrillRecoveryMemoryHistoryBias),
|
||||
*MethodDrillRecoveryMemoryGeneratedPlanPostureLine,
|
||||
*SelectedMethodDrillRecoveryMemoryHistoryEntry->RecordedAtUtc)
|
||||
: TEXT("Drill recovery memory history: no retained upstream drill-recovery memory shifts recorded yet.");
|
||||
const FString MethodDrillRecoveryMemoryHistoryDetailLine =
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry != nullptr
|
||||
&& SelectedMethodDrillRecoveryMemoryHistoryEntry->IsStructurallyValid()
|
||||
? FString::Printf(
|
||||
TEXT("Source: %s | Strong/weak/history %d/%d/%d avg %.1f | Structure recovery narrow %d/%d broad %d/%d | Dominant pressure: %s | Structure bias: %s | Stance: %s | Recovery memory tipped: %s | Handoff memory tipped: %s | Packet kind: %s | Packet source: %s | Packet headline: %s | Packet action: %s | Packet focus %d | Packet stance: %s | Recovery posture: %s | Handoff posture: %s"),
|
||||
TEXT("Source: %s | Strong/weak/history %d/%d/%d avg %.1f | Structure recovery narrow %d/%d broad %d/%d | Dominant pressure: %s | Structure bias: %s | Stance: %s | Recovery memory tipped: %s | Handoff memory tipped: %s | Packet kind: %s | Packet source: %s | Packet headline: %s | Packet action: %s | Packet focus %d | Plan mode: %s | Plan selection: %s | Plan posture: %s | Tight/broad structure plan: %s/%s | Packet stance: %s | Recovery posture: %s | Handoff posture: %s"),
|
||||
*MethodDrillRecoveryMemorySourceLine,
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry->StrongMethodDrillRecoveryHistoryCount,
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry->WeakMethodDrillRecoveryHistoryCount,
|
||||
|
|
@ -9426,6 +9559,17 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
*MethodDrillRecoveryMemoryGeneratedPacketHeadlineLine,
|
||||
*MethodDrillRecoveryMemoryGeneratedPacketActionLine,
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry->GeneratedGuidancePacketFocusCaseCount,
|
||||
*MethodDrillRecoveryMemoryGeneratedPlanModeLine,
|
||||
*MethodDrillRecoveryMemoryGeneratedPlanSelectionLine,
|
||||
*MethodDrillRecoveryMemoryGeneratedPlanPostureLine,
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry
|
||||
->bGeneratedPlanUsedTightStructureContinuationPosture
|
||||
? TEXT("yes")
|
||||
: TEXT("no"),
|
||||
SelectedMethodDrillRecoveryMemoryHistoryEntry
|
||||
->bGeneratedPlanUsedBroadStructureRedirectPosture
|
||||
? TEXT("yes")
|
||||
: TEXT("no"),
|
||||
*MethodDrillRecoveryMemoryGeneratedPacketStanceLine,
|
||||
*SelectedMethodDrillRecoveryMemoryHistoryEntry->QueueRecoveryStatusLine,
|
||||
*SelectedMethodDrillRecoveryMemoryHistoryEntry->HandoffRecommendationStatusLine)
|
||||
|
|
|
|||
|
|
@ -353,6 +353,11 @@ struct FHyperTwistCoachDashboardMethodDrillRecoveryMemoryHistoryEntry
|
|||
FString GeneratedGuidancePacketHeadline;
|
||||
FString GeneratedGuidancePacketActionLabel;
|
||||
int32 GeneratedGuidancePacketFocusCaseCount = 0;
|
||||
EHyperTwistTrainingDeliveryMode GeneratedPlanSuggestedMode =
|
||||
EHyperTwistTrainingDeliveryMode::Timer;
|
||||
EHyperTwistTrainingSelectionPolicy GeneratedPlanSuggestedSelectionPolicy =
|
||||
EHyperTwistTrainingSelectionPolicy::Weighted;
|
||||
FString GeneratedPlanPostureLabel;
|
||||
int32 MethodDrillRecoveryHistoryCount = 0;
|
||||
int32 StrongMethodDrillRecoveryHistoryCount = 0;
|
||||
int32 WeakMethodDrillRecoveryHistoryCount = 0;
|
||||
|
|
@ -368,6 +373,8 @@ struct FHyperTwistCoachDashboardMethodDrillRecoveryMemoryHistoryEntry
|
|||
bool bGeneratedPacketUsedStrongRetainedMethodDrillRecoveryPosture = false;
|
||||
bool bGeneratedPacketUsedWeakRetainedMethodDrillRecoveryPosture = false;
|
||||
bool bGeneratedPacketUsedGenericMethodDrillRecoveryMemory = false;
|
||||
bool bGeneratedPlanUsedTightStructureContinuationPosture = false;
|
||||
bool bGeneratedPlanUsedBroadStructureRedirectPosture = false;
|
||||
bool bUsedMethodDrillRecoveryMemoryForRecovery = false;
|
||||
bool bUsedMethodDrillRecoveryMemoryForHandoff = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue