Surface aligned drill handoff outcomes on dashboard

This commit is contained in:
axiomlogicnexus 2026-04-29 21:39:14 +02:00
parent 338c31a32a
commit c116a70e56
4 changed files with 463 additions and 46 deletions

View file

@ -79,6 +79,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
int32 ReliableTrustedBroadQueueRecommendationCount = 0;
int32 ReliableTrustedBroadFollowUpRecommendationCount = 0;
int32 ReliableTrustedBroadRecommendedRecommendationCount = 0;
int32 ReliableAlignedTrustedTightQueueAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedTightFollowUpAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedTightRecommendedAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedBroadQueueAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedBroadFollowUpAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedBroadRecommendedAcceptedDeltaCount = 0;
int32 ReliableAlignedTrustedTightQueueRecommendationCount = 0;
int32 ReliableAlignedTrustedTightFollowUpRecommendationCount = 0;
int32 ReliableAlignedTrustedTightRecommendedRecommendationCount = 0;
int32 ReliableAlignedTrustedBroadQueueRecommendationCount = 0;
int32 ReliableAlignedTrustedBroadFollowUpRecommendationCount = 0;
int32 ReliableAlignedTrustedBroadRecommendedRecommendationCount = 0;
int32 QueueScore = 0;
int32 FollowUpScore = 0;
int32 RecommendedScore = 0;
@ -94,6 +106,8 @@ namespace HyperTwistCoachDashboardWidgetInternal
bool bHasWeakRetainedMethodDrillPostureSignal = false;
bool bHasReliableTrustedTightPlanHistorySignal = false;
bool bHasReliableTrustedBroadPlanHistorySignal = false;
bool bHasReliableAlignedTrustedTightPlanOutcomeSignal = false;
bool bHasReliableAlignedTrustedBroadPlanOutcomeSignal = false;
bool bHasSignal = false;
};
@ -760,6 +774,11 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("aligned reliable trusted tight drill-recovery-plan history");
}
if (SourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable-aligned-outcome"))
{
return TEXT("successful aligned reliable trusted tight drill-recovery-plan handoff outcome history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
{
return TEXT("successful retained drill-recovery-packet history");
@ -800,6 +819,11 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("aligned reliable trusted broad drill-recovery-plan redirect history");
}
if (SourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable-aligned-outcome"))
{
return TEXT("successful aligned reliable trusted broad drill-recovery-plan redirect outcome history");
}
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
{
return TEXT("weak retained drill-recovery-packet history");
@ -1411,6 +1435,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
++Bias.QueueScore;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedTightQueueAcceptedDeltaCount += QueuedDelta;
Bias.QueueScore += QueuedDelta * 3;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedBroadQueueAcceptedDeltaCount += QueuedDelta;
++Bias.QueueScore;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
}
if (FollowUpDelta > 0)
{
@ -1429,6 +1465,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
++Bias.FollowUpScore;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedTightFollowUpAcceptedDeltaCount += FollowUpDelta;
Bias.FollowUpScore += FollowUpDelta * 3;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedBroadFollowUpAcceptedDeltaCount += FollowUpDelta;
++Bias.FollowUpScore;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
}
if (RecommendedDelta > 0)
{
@ -1447,6 +1495,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
Bias.RecommendedScore += RecommendedDelta * 2;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedTightRecommendedAcceptedDeltaCount += RecommendedDelta;
++Bias.RecommendedScore;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
Bias.ReliableAlignedTrustedBroadRecommendedAcceptedDeltaCount += RecommendedDelta;
Bias.RecommendedScore += RecommendedDelta * 3;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
}
if (DeferredOverflowQueuedDelta > 0)
{
@ -1546,6 +1606,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
++Bias.QueueScore;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedTightQueueRecommendationCount;
Bias.QueueScore += 3;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedBroadQueueRecommendationCount;
++Bias.QueueScore;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
if (Entry.bUsedMethodDrillWeighting)
{
++Bias.MethodDrillQueueRecommendationCount;
@ -1588,6 +1660,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
++Bias.FollowUpScore;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedTightFollowUpRecommendationCount;
Bias.FollowUpScore += 3;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedBroadFollowUpRecommendationCount;
++Bias.FollowUpScore;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
if (Entry.bUsedMethodDrillWeighting)
{
++Bias.MethodDrillFollowUpRecommendationCount;
@ -1630,6 +1714,18 @@ namespace HyperTwistCoachDashboardWidgetInternal
Bias.RecommendedScore += 2;
Bias.bHasReliableTrustedBroadPlanHistorySignal = true;
}
if (Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedTightRecommendedRecommendationCount;
++Bias.RecommendedScore;
Bias.bHasReliableAlignedTrustedTightPlanOutcomeSignal = true;
}
if (Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
++Bias.ReliableAlignedTrustedBroadRecommendedRecommendationCount;
Bias.RecommendedScore += 3;
Bias.bHasReliableAlignedTrustedBroadPlanOutcomeSignal = true;
}
if (Entry.bUsedMethodDrillWeighting)
{
++Bias.MethodDrillRecommendedRecommendationCount;
@ -6976,6 +7072,18 @@ FHyperTwistCoachDashboardQueueRecoveryWeighting UHyperTwistCoachDashboardWidget:
Weighting.ReliableAlignedTrustedBroadPlanAverageOutcomeScore =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore;
Weighting.ReliableAlignedTrustedTightPlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Weighting.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Weighting.ReliableAlignedTrustedTightPlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore;
Weighting.ReliableAlignedTrustedBroadPlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore;
const bool bStrongMethodDrillRecoveryMemory =
Weighting.MethodDrillUpstreamHistoryCount >= 2
&& Weighting.MethodDrillUpstreamStrongCount >= Weighting.MethodDrillUpstreamWeakCount
@ -7003,6 +7111,38 @@ FHyperTwistCoachDashboardQueueRecoveryWeighting UHyperTwistCoachDashboardWidget:
);
Weighting.bHasMethodDrillMemorySignal = true;
}
const bool bReliableAlignedTrustedTightPlanOutcomeSourceActive =
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable-aligned-outcome")
|| CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable-aligned-outcome");
const bool bReliableAlignedTrustedBroadPlanOutcomeSourceActive =
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable-aligned-outcome")
|| CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable-aligned-outcome");
const int32 ReliableAlignedTrustedTightPlanOutcomeSignalScore =
(bReliableAlignedTrustedTightPlanOutcomeSourceActive
|| (Weighting.ReliableAlignedTrustedTightPlanOutcomeHistoryCount >= 2
&& Weighting.ReliableAlignedTrustedTightPlanOutcomeAverageScore >= 60.0f))
? FMath::Clamp(
Weighting.ReliableAlignedTrustedTightPlanOutcomeHistoryCount
- Weighting.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount
+ (Weighting.ReliableAlignedTrustedTightPlanOutcomeAverageScore >= 80.0f ? 1 : 0),
1,
5)
: 0;
const int32 ReliableAlignedTrustedBroadPlanOutcomeSignalScore =
(bReliableAlignedTrustedBroadPlanOutcomeSourceActive
|| (Weighting.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount >= 2
&& Weighting.ReliableAlignedTrustedBroadPlanOutcomeAverageScore >= 58.0f))
? FMath::Clamp(
Weighting.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount
- Weighting.ReliableAlignedTrustedTightPlanOutcomeHistoryCount
+ (Weighting.ReliableAlignedTrustedBroadPlanOutcomeAverageScore >= 78.0f ? 1 : 0),
1,
5)
: 0;
const int32 ReliableAlignedTrustedTightPlanSignalScore =
(HyperTwistCoachDashboardWidgetInternal::IsReliableAlignedTrustedTightMethodDrillRecoveryPlanSourceLabel(
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel)
@ -7051,7 +7191,23 @@ FHyperTwistCoachDashboardQueueRecoveryWeighting UHyperTwistCoachDashboardWidget:
1,
3)
: 0;
if (ReliableAlignedTrustedTightPlanSignalScore > ReliableAlignedTrustedBroadPlanSignalScore)
if (ReliableAlignedTrustedTightPlanOutcomeSignalScore
> ReliableAlignedTrustedBroadPlanOutcomeSignalScore)
{
Weighting.ReliableAlignedTrustedTightPlanOutcomeBiasCount =
ReliableAlignedTrustedTightPlanOutcomeSignalScore;
Weighting.MethodDrillLaunchBiasCount += ReliableAlignedTrustedTightPlanOutcomeSignalScore;
Weighting.bHasReliableAlignedTrustedPlanHandoffOutcomeSignal = true;
}
else if (ReliableAlignedTrustedBroadPlanOutcomeSignalScore
> ReliableAlignedTrustedTightPlanOutcomeSignalScore)
{
Weighting.ReliableAlignedTrustedBroadPlanOutcomeBiasCount =
ReliableAlignedTrustedBroadPlanOutcomeSignalScore;
Weighting.MethodDrillPromoteBiasCount += ReliableAlignedTrustedBroadPlanOutcomeSignalScore;
Weighting.bHasReliableAlignedTrustedPlanHandoffOutcomeSignal = true;
}
else if (ReliableAlignedTrustedTightPlanSignalScore > ReliableAlignedTrustedBroadPlanSignalScore)
{
Weighting.ReliableAlignedTrustedTightPlanBiasCount =
ReliableAlignedTrustedTightPlanSignalScore;
@ -7673,7 +7829,9 @@ void UHyperTwistCoachDashboardWidget::RecordCoachHandoffHistorySnapshot(
const bool bUsedReliableTrustedTightStructurePlanHistory,
const bool bUsedReliableTrustedBroadStructurePlanHistory,
const bool bUsedReliableAlignedTrustedTightStructurePlanHistory,
const bool bUsedReliableAlignedTrustedBroadStructurePlanHistory)
const bool bUsedReliableAlignedTrustedBroadStructurePlanHistory,
const bool bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory,
const bool bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
FHyperTwistCoachDashboardHandoffHistoryEntry Entry;
Entry.RecordedAtUtc = FDateTime::UtcNow().ToIso8601();
@ -7705,6 +7863,18 @@ void UHyperTwistCoachDashboardWidget::RecordCoachHandoffHistorySnapshot(
CachedCoachQueueExecutionSummary.StartedMethodDrillFollowUpHandoffEventCount;
Entry.AcceptedMethodDrillRecommendedHandoffCount =
CachedCoachQueueExecutionSummary.StartedMethodDrillRecommendedHandoffEventCount;
Entry.ReliableAlignedTrustedTightPlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.ReliableAlignedTrustedTightPlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore;
Entry.ReliableAlignedTrustedBroadPlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore;
Entry.ClosureContinuationBias = ClosureContinuationBias;
Entry.ClosureSuppressionBias = ClosureSuppressionBias;
Entry.bQueueReady = bQueueReady;
@ -7724,6 +7894,10 @@ void UHyperTwistCoachDashboardWidget::RecordCoachHandoffHistorySnapshot(
bUsedReliableAlignedTrustedTightStructurePlanHistory;
Entry.bUsedReliableAlignedTrustedBroadStructurePlanHistory =
bUsedReliableAlignedTrustedBroadStructurePlanHistory;
Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory =
bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory;
Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory =
bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory;
if (!Entry.IsStructurallyValid())
{
return;
@ -7762,6 +7936,16 @@ void UHyperTwistCoachDashboardWidget::RecordCoachHandoffHistorySnapshot(
== Entry.AcceptedMethodDrillFollowUpHandoffCount
&& HandoffHistoryEntries.Last().AcceptedMethodDrillRecommendedHandoffCount
== Entry.AcceptedMethodDrillRecommendedHandoffCount
&& HandoffHistoryEntries.Last().ReliableAlignedTrustedTightPlanOutcomeHistoryCount
== Entry.ReliableAlignedTrustedTightPlanOutcomeHistoryCount
&& HandoffHistoryEntries.Last().ReliableAlignedTrustedBroadPlanOutcomeHistoryCount
== Entry.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount
&& FMath::IsNearlyEqual(
HandoffHistoryEntries.Last().ReliableAlignedTrustedTightPlanOutcomeAverageScore,
Entry.ReliableAlignedTrustedTightPlanOutcomeAverageScore)
&& FMath::IsNearlyEqual(
HandoffHistoryEntries.Last().ReliableAlignedTrustedBroadPlanOutcomeAverageScore,
Entry.ReliableAlignedTrustedBroadPlanOutcomeAverageScore)
&& HandoffHistoryEntries.Last().ClosureContinuationBias
== Entry.ClosureContinuationBias
&& HandoffHistoryEntries.Last().ClosureSuppressionBias
@ -7784,7 +7968,11 @@ void UHyperTwistCoachDashboardWidget::RecordCoachHandoffHistorySnapshot(
&& HandoffHistoryEntries.Last().bUsedReliableAlignedTrustedTightStructurePlanHistory
== Entry.bUsedReliableAlignedTrustedTightStructurePlanHistory
&& HandoffHistoryEntries.Last().bUsedReliableAlignedTrustedBroadStructurePlanHistory
== Entry.bUsedReliableAlignedTrustedBroadStructurePlanHistory;
== Entry.bUsedReliableAlignedTrustedBroadStructurePlanHistory
&& HandoffHistoryEntries.Last().bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory
== Entry.bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory
&& HandoffHistoryEntries.Last().bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory
== Entry.bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory;
if (bMatchesLastEntry)
{
return;
@ -8104,6 +8292,18 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore;
Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore;
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore =
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore;
Entry.bStrongPressureDominant =
Entry.MethodDrillRecoveryHistoryCount >= 2
&& Entry.StrongMethodDrillRecoveryHistoryCount
@ -8148,6 +8348,18 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
>= 60.0f
&& Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount
>= Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount;
Entry.bReliableAlignedTrustedTightStructurePlanOutcomeDominant =
Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount >= 2
&& Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore
>= 60.0f
&& Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount
>= Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.bReliableAlignedTrustedBroadStructurePlanOutcomeDominant =
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount >= 2
&& Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore
>= 58.0f
&& Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount
>= Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
Entry.bUsedMethodDrillRecoveryMemoryForRecovery =
QueueRecoveryWeighting.bHasMethodDrillMemorySignal;
Entry.bUsedMethodDrillRecoveryMemoryForHandoff =
@ -8408,6 +8620,10 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
== Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount
&& MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount
== Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount
&& MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount
== Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount
&& MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount
== Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount
&& FMath::IsNearlyEqual(
MethodDrillRecoveryMemoryHistoryEntries.Last().MethodDrillRecoveryAverageOutcomeScore,
Entry.MethodDrillRecoveryAverageOutcomeScore)
@ -8429,6 +8645,12 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
&& FMath::IsNearlyEqual(
MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore,
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore)
&& FMath::IsNearlyEqual(
MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore,
Entry.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore)
&& FMath::IsNearlyEqual(
MethodDrillRecoveryMemoryHistoryEntries.Last().ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore,
Entry.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore)
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bStrongPressureDominant
== Entry.bStrongPressureDominant
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bWeakPressureDominant
@ -8445,6 +8667,10 @@ void UHyperTwistCoachDashboardWidget::RecordMethodDrillRecoveryMemoryHistorySnap
== Entry.bReliableAlignedTrustedTightStructurePlanDominant
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bReliableAlignedTrustedBroadStructurePlanDominant
== Entry.bReliableAlignedTrustedBroadStructurePlanDominant
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bReliableAlignedTrustedTightStructurePlanOutcomeDominant
== Entry.bReliableAlignedTrustedTightStructurePlanOutcomeDominant
&& MethodDrillRecoveryMemoryHistoryEntries.Last().bReliableAlignedTrustedBroadStructurePlanOutcomeDominant
== Entry.bReliableAlignedTrustedBroadStructurePlanOutcomeDominant
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedGuidancePacketKindLabel
== Entry.GeneratedGuidancePacketKindLabel
&& MethodDrillRecoveryMemoryHistoryEntries.Last().GeneratedGuidancePacketSourceLabel
@ -10117,6 +10343,17 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
CachedCoachPanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore,
CachedCoachPanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
);
CoachHandoffRecommendationDetailLine += FString::Printf(
TEXT(" | aligned reliable handoff outcomes tight/broad %d/%d avg %.1f/%.1f"),
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount,
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount,
CachedCoachPanelState
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore,
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore
);
CoachHandoffRecommendationDetailLine += FString::Printf(
TEXT(" | aligned reliable plan history tight/broad %d/%d avg %.1f/%.1f"),
CachedCoachPanelState.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount,
@ -10126,6 +10363,36 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
CachedCoachPanelState
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore
);
if (CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable-aligned-outcome"))
{
CoachHandoffRecommendationDetailLine +=
TEXT(" | Successful aligned reliable tight launched-plan outcomes directly tipped this handoff toward tighter continuation.");
}
else if (CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable-aligned-outcome"))
{
CoachHandoffRecommendationDetailLine +=
TEXT(" | Successful aligned reliable broad launched-plan outcomes directly tipped this handoff back toward broader redirect.");
}
CoachHandoffRecommendationDetailLine += FString::Printf(
TEXT(" | aligned reliable tight accepted q/f/r %d/%d/%d, broad accepted q/f/r %d/%d/%d"),
HandoffHistoryBias.ReliableAlignedTrustedTightQueueAcceptedDeltaCount,
HandoffHistoryBias.ReliableAlignedTrustedTightFollowUpAcceptedDeltaCount,
HandoffHistoryBias.ReliableAlignedTrustedTightRecommendedAcceptedDeltaCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadQueueAcceptedDeltaCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadFollowUpAcceptedDeltaCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadRecommendedAcceptedDeltaCount
);
CoachHandoffRecommendationDetailLine += FString::Printf(
TEXT(" | aligned reliable tight recommendation q/f/r %d/%d/%d, broad recommendation q/f/r %d/%d/%d"),
HandoffHistoryBias.ReliableAlignedTrustedTightQueueRecommendationCount,
HandoffHistoryBias.ReliableAlignedTrustedTightFollowUpRecommendationCount,
HandoffHistoryBias.ReliableAlignedTrustedTightRecommendedRecommendationCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadQueueRecommendationCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadFollowUpRecommendationCount,
HandoffHistoryBias.ReliableAlignedTrustedBroadRecommendedRecommendationCount
);
CoachHandoffRecommendationDetailLine += FString::Printf(
TEXT(" | reliable trusted tight accepted q/f/r %d/%d/%d, broad accepted q/f/r %d/%d/%d"),
HandoffHistoryBias.ReliableTrustedTightQueueAcceptedDeltaCount,
@ -10201,6 +10468,12 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
bHandoffRecommendationUsedPlanComparisonHistory
&& bPlanComparisonPrefersBroadRedirect
&& MethodDrillRecoveryPlanComparisonSummary.ReliableAlignedTrustedBroadPlanSourceCount > 0;
const bool bHandoffRecommendationUsedReliableAlignedTrustedTightPlanOutcomeHistory =
CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight-trusted-reliable-aligned-outcome");
const bool bHandoffRecommendationUsedReliableAlignedTrustedBroadPlanOutcomeHistory =
CachedCoachPanelState.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad-trusted-reliable-aligned-outcome");
RecordCoachHandoffHistorySnapshot(
HyperTwistCoachDashboardWidgetInternal::DescribeHandoffRecommendationKind(
HandoffRecommendationKind),
@ -10219,7 +10492,9 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
bHandoffRecommendationUsedReliableTrustedTightPlanHistory,
bHandoffRecommendationUsedReliableTrustedBroadPlanHistory,
bHandoffRecommendationUsedReliableAlignedTrustedTightPlanHistory,
bHandoffRecommendationUsedReliableAlignedTrustedBroadPlanHistory
bHandoffRecommendationUsedReliableAlignedTrustedBroadPlanHistory,
bHandoffRecommendationUsedReliableAlignedTrustedTightPlanOutcomeHistory,
bHandoffRecommendationUsedReliableAlignedTrustedBroadPlanOutcomeHistory
);
FString QueuedRunLabel = CachedCoachPanelState.NextQueueSourceLabel.IsEmpty()
? TEXT("Start Queue")
@ -10249,6 +10524,71 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
&& SelectedHandoffHistoryIndex < HandoffHistoryEntries.Num()
? &HandoffHistoryEntries[SelectedHandoffHistoryIndex]
: nullptr;
const FString SelectedHandoffRetainedPostureLine =
SelectedHandoffHistoryEntry == nullptr
? TEXT("none")
: HyperTwistCoachDashboardWidgetInternal::DescribeRetainedMethodDrillRecoveryPosture(
SelectedHandoffHistoryEntry->bUsedStrongRetainedMethodDrillRecoveryPosture,
SelectedHandoffHistoryEntry->bUsedWeakRetainedMethodDrillRecoveryPosture);
const FString SelectedHandoffReliablePlanLine = [&]() -> FString
{
if (SelectedHandoffHistoryEntry == nullptr)
{
return TEXT("none");
}
if (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory)
{
return TEXT("aligned trusted tight launched-plan continuation");
}
if (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory)
{
return TEXT("aligned trusted broad launched-plan redirect");
}
if (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedTightStructurePlanHistory)
{
return TEXT("aligned trusted tight continuation");
}
if (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedBroadStructurePlanHistory)
{
return TEXT("aligned trusted broad redirect");
}
if (SelectedHandoffHistoryEntry->bUsedReliableTrustedTightStructurePlanHistory)
{
return TEXT("trusted tight continuation");
}
if (SelectedHandoffHistoryEntry->bUsedReliableTrustedBroadStructurePlanHistory)
{
return TEXT("trusted broad redirect");
}
return TEXT("none");
}();
const FString SelectedHandoffQueueSourceLine =
SelectedHandoffHistoryEntry == nullptr || SelectedHandoffHistoryEntry->QueueSourceLabel.IsEmpty()
? TEXT("n/a")
: SelectedHandoffHistoryEntry->QueueSourceLabel;
const FString SelectedHandoffPreferredLaneLine =
SelectedHandoffHistoryEntry == nullptr
? TEXT("none")
: HyperTwistCoachDashboardWidgetInternal::DescribeGuidanceLane(
SelectedHandoffHistoryEntry->PreferredGuidanceLane);
const FString SelectedHandoffMemorySourceLine =
SelectedHandoffHistoryEntry == nullptr
? TEXT("n/a")
: HyperTwistCoachDashboardWidgetInternal::DescribeCoachMemorySourceLabel(
SelectedHandoffHistoryEntry->PreferredGuidanceSourceLabel);
const FString SelectedHandoffRecoveryActionLine =
SelectedHandoffHistoryEntry == nullptr
? TEXT("none")
: (SelectedHandoffHistoryEntry->PreferredRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::None
? TEXT("none")
: HyperTwistCoachDashboardWidgetInternal::EnumDisplayName(
SelectedHandoffHistoryEntry->PreferredRecoveryAction));
const FString SelectedHandoffRecoverySourceLine =
SelectedHandoffHistoryEntry == nullptr
? TEXT("n/a")
: HyperTwistCoachDashboardWidgetInternal::DescribeCoachMemorySourceLabel(
SelectedHandoffHistoryEntry->PreferredRecoveryActionSourceLabel);
const FString HandoffHistoryStatusLine =
SelectedHandoffHistoryEntry != nullptr
? FString::Printf(
@ -10259,25 +10599,15 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
SelectedHandoffHistoryEntry->RecommendedHandoffKindLabel.IsEmpty()
? TEXT("none")
: *SelectedHandoffHistoryEntry->RecommendedHandoffKindLabel,
*HyperTwistCoachDashboardWidgetInternal::DescribeRetainedMethodDrillRecoveryPosture(
SelectedHandoffHistoryEntry->bUsedStrongRetainedMethodDrillRecoveryPosture,
SelectedHandoffHistoryEntry->bUsedWeakRetainedMethodDrillRecoveryPosture),
SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedTightStructurePlanHistory
? TEXT("aligned trusted tight continuation")
: (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedBroadStructurePlanHistory
? TEXT("aligned trusted broad redirect")
: (SelectedHandoffHistoryEntry->bUsedReliableTrustedTightStructurePlanHistory
? TEXT("trusted tight continuation")
: (SelectedHandoffHistoryEntry->bUsedReliableTrustedBroadStructurePlanHistory
? TEXT("trusted broad redirect")
: TEXT("none")))),
*SelectedHandoffRetainedPostureLine,
*SelectedHandoffReliablePlanLine,
*SelectedHandoffHistoryEntry->RecordedAtUtc
)
: TEXT("Handoff history: no retained handoff-pattern shifts recorded yet.");
const FString HandoffHistoryDetailLine =
SelectedHandoffHistoryEntry != nullptr
? FString::Printf(
TEXT("Accepted queued/follow-up/recommended: %d/%d/%d | deferred-overflow queued/follow-up/recommended: %d/%d/%d | drill-driven queued/follow-up/recommended: %d/%d/%d | deferred-first suppression recommendation used: %s | drill weighting used: %s | retained posture: %s | reliable trusted plan: %s | queue source: %s | preferred lane: %s | memory source: %s | recovery action: %s | recovery source: %s | closure continuation bias %d | closure suppression bias %d | readiness queue/follow-up/recommended: %s/%s/%s || %s"),
TEXT("Accepted queued/follow-up/recommended: %d/%d/%d | deferred-overflow queued/follow-up/recommended: %d/%d/%d | drill-driven queued/follow-up/recommended: %d/%d/%d | aligned reliable handoff outcomes tight/broad %d/%d avg %.1f/%.1f | deferred-first suppression recommendation used: %s | drill weighting used: %s | reliable trusted plan: %s | retained posture: %s | queue source: %s | preferred lane: %s | memory source: %s | recovery action: %s | recovery source: %s | closure continuation bias %d | closure suppression bias %d | readiness queue/follow-up/recommended: %s/%s/%s || %s"),
SelectedHandoffHistoryEntry->AcceptedQueuedHandoffCount,
SelectedHandoffHistoryEntry->AcceptedFollowUpHandoffCount,
SelectedHandoffHistoryEntry->AcceptedRecommendedHandoffCount,
@ -10287,34 +10617,19 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
SelectedHandoffHistoryEntry->AcceptedMethodDrillQueuedHandoffCount,
SelectedHandoffHistoryEntry->AcceptedMethodDrillFollowUpHandoffCount,
SelectedHandoffHistoryEntry->AcceptedMethodDrillRecommendedHandoffCount,
SelectedHandoffHistoryEntry->ReliableAlignedTrustedTightPlanOutcomeHistoryCount,
SelectedHandoffHistoryEntry->ReliableAlignedTrustedBroadPlanOutcomeHistoryCount,
SelectedHandoffHistoryEntry->ReliableAlignedTrustedTightPlanOutcomeAverageScore,
SelectedHandoffHistoryEntry->ReliableAlignedTrustedBroadPlanOutcomeAverageScore,
SelectedHandoffHistoryEntry->bUsedDeferredFirstSuppressionSignal ? TEXT("yes") : TEXT("no"),
SelectedHandoffHistoryEntry->bUsedMethodDrillWeighting ? TEXT("yes") : TEXT("no"),
*HyperTwistCoachDashboardWidgetInternal::DescribeRetainedMethodDrillRecoveryPosture(
SelectedHandoffHistoryEntry->bUsedStrongRetainedMethodDrillRecoveryPosture,
SelectedHandoffHistoryEntry->bUsedWeakRetainedMethodDrillRecoveryPosture),
SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedTightStructurePlanHistory
? TEXT("aligned trusted tight continuation")
: (SelectedHandoffHistoryEntry->bUsedReliableAlignedTrustedBroadStructurePlanHistory
? TEXT("aligned trusted broad redirect")
: (SelectedHandoffHistoryEntry->bUsedReliableTrustedTightStructurePlanHistory
? TEXT("trusted tight continuation")
: (SelectedHandoffHistoryEntry->bUsedReliableTrustedBroadStructurePlanHistory
? TEXT("trusted broad redirect")
: TEXT("none")))),
SelectedHandoffHistoryEntry->QueueSourceLabel.IsEmpty()
? TEXT("n/a")
: *SelectedHandoffHistoryEntry->QueueSourceLabel,
*HyperTwistCoachDashboardWidgetInternal::DescribeGuidanceLane(
SelectedHandoffHistoryEntry->PreferredGuidanceLane),
*HyperTwistCoachDashboardWidgetInternal::DescribeCoachMemorySourceLabel(
SelectedHandoffHistoryEntry->PreferredGuidanceSourceLabel),
SelectedHandoffHistoryEntry->PreferredRecoveryAction
== EHyperTwistTrainingQueueRecoveryAction::None
? TEXT("none")
: *HyperTwistCoachDashboardWidgetInternal::EnumDisplayName(
SelectedHandoffHistoryEntry->PreferredRecoveryAction),
*HyperTwistCoachDashboardWidgetInternal::DescribeCoachMemorySourceLabel(
SelectedHandoffHistoryEntry->PreferredRecoveryActionSourceLabel),
*SelectedHandoffReliablePlanLine,
*SelectedHandoffRetainedPostureLine,
*SelectedHandoffQueueSourceLine,
*SelectedHandoffPreferredLaneLine,
*SelectedHandoffMemorySourceLine,
*SelectedHandoffRecoveryActionLine,
*SelectedHandoffRecoverySourceLine,
SelectedHandoffHistoryEntry->ClosureContinuationBias,
SelectedHandoffHistoryEntry->ClosureSuppressionBias,
SelectedHandoffHistoryEntry->bQueueReady ? TEXT("yes") : TEXT("no"),
@ -10536,6 +10851,13 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
? TEXT(" | Retained drill-recovery packet history is reinforcing launch recovery.")
: TEXT(" | Retained drill-recovery packet history is reinforcing promote-deferred recovery.");
}
if (QueueRecoveryWeighting.bHasReliableAlignedTrustedPlanHandoffOutcomeSignal)
{
return QueueRecoveryWeighting.PreferredActionKind
== FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::LaunchRecovery
? TEXT(" | Aligned reliable trusted tight launched-plan outcomes are reinforcing launch recovery.")
: TEXT(" | Aligned reliable trusted broad launched-plan outcomes are reinforcing promote-deferred recovery.");
}
if (QueueRecoveryWeighting.bHasReliableAlignedTrustedPlanOutcomeSignal)
{
return QueueRecoveryWeighting.PreferredActionKind
@ -10652,7 +10974,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
: *QueueDeferredFirstSuppressionSignal->Detail)
: TEXT("");
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 | aligned reliable outcome promote/launch reduced %d/%d over %d/%d | reliable trusted 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 | aligned reliable plan bias promote/launch %d/%d | reliable trusted plan bias promote/launch %d/%d | packet history queue/follow-up/recommended %d/%d/%d | packet-plan posture tight/broad %d/%d | plan-source tight aligned/diverged %d/%d | broad aligned/diverged %d/%d | aligned reliable tight aligned/diverged %d/%d | aligned reliable broad aligned/diverged %d/%d | reliable trusted tight aligned/diverged %d/%d | reliable trusted broad aligned/diverged %d/%d | plan preferred: %s | packet bias promote/launch %d/%d | upstream drill recovery strong/weak/history %d/%d/%d avg %.1f | aligned reliable plan history tight/broad %d/%d avg %.1f/%.1f | reliable trusted plan history tight/broad %d/%d avg %.1f/%.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 | aligned reliable outcome promote/launch reduced %d/%d over %d/%d | reliable trusted 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 | aligned reliable handoff-outcome bias promote/launch %d/%d | aligned reliable plan bias promote/launch %d/%d | reliable trusted plan bias promote/launch %d/%d | packet history queue/follow-up/recommended %d/%d/%d | packet-plan posture tight/broad %d/%d | plan-source tight aligned/diverged %d/%d | broad aligned/diverged %d/%d | aligned reliable tight aligned/diverged %d/%d | aligned reliable broad aligned/diverged %d/%d | reliable trusted tight aligned/diverged %d/%d | reliable trusted broad aligned/diverged %d/%d | plan preferred: %s | packet bias promote/launch %d/%d | upstream drill recovery strong/weak/history %d/%d/%d avg %.1f | aligned reliable outcome history tight/broad %d/%d avg %.1f/%.1f | aligned reliable plan history tight/broad %d/%d avg %.1f/%.1f | reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f | retained drill-recovery stance: %s"),
CachedCoachQueueExecutionSummary.DeferredEventCount,
CachedCoachQueueExecutionSummary.PromotedEventCount,
CachedCoachQueueExecutionSummary.ManualRescheduleEventCount,
@ -10695,6 +11017,8 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
QueueRecoveryWeighting.WeakRetainedMethodDrillPromoteCount,
QueueRecoveryWeighting.MethodDrillPromoteBiasCount,
QueueRecoveryWeighting.MethodDrillLaunchBiasCount,
QueueRecoveryWeighting.ReliableAlignedTrustedBroadPlanOutcomeBiasCount,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanOutcomeBiasCount,
QueueRecoveryWeighting.ReliableAlignedTrustedBroadPlanBiasCount,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanBiasCount,
QueueRecoveryWeighting.ReliableTrustedBroadPlanBiasCount,
@ -10724,6 +11048,10 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
QueueRecoveryWeighting.MethodDrillUpstreamWeakCount,
QueueRecoveryWeighting.MethodDrillUpstreamHistoryCount,
QueueRecoveryWeighting.MethodDrillUpstreamAverageOutcomeScore,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanOutcomeHistoryCount,
QueueRecoveryWeighting.ReliableAlignedTrustedBroadPlanOutcomeHistoryCount,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanOutcomeAverageScore,
QueueRecoveryWeighting.ReliableAlignedTrustedBroadPlanOutcomeAverageScore,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanHistoryCount,
QueueRecoveryWeighting.ReliableAlignedTrustedBroadPlanHistoryCount,
QueueRecoveryWeighting.ReliableAlignedTrustedTightPlanAverageOutcomeScore,
@ -11064,6 +11392,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
{
return TEXT("n/a");
}
if (SelectedMethodDrillRecoveryMemoryHistoryEntry->bReliableAlignedTrustedTightStructurePlanOutcomeDominant)
{
return TEXT("aligned reliable trusted tight launched-plan continuation");
}
if (SelectedMethodDrillRecoveryMemoryHistoryEntry->bReliableAlignedTrustedBroadStructurePlanOutcomeDominant)
{
return TEXT("aligned reliable trusted broad launched-plan redirect");
}
if (SelectedMethodDrillRecoveryMemoryHistoryEntry->bReliableAlignedTrustedTightStructurePlanDominant)
{
return TEXT("aligned reliable trusted tight continuation");
@ -11105,7 +11441,7 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
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 | Trusted plan history tight/broad %d/%d avg %.1f/%.1f | Aligned reliable plan history tight/broad %d/%d avg %.1f/%.1f | Reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f | Dominant pressure: %s | Structure bias: %s | Reliable stance: %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 | Plan source: %s | Plan alignment: %s | Plan comparison tight aligned/diverged %d/%d broad aligned/diverged %d/%d aligned reliable tight aligned/diverged %d/%d aligned reliable broad aligned/diverged %d/%d reliable tight aligned/diverged %d/%d reliable broad aligned/diverged %d/%d | Plan preferred: %s | Tight/broad structure plan: %s/%s | 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 | Trusted plan history tight/broad %d/%d avg %.1f/%.1f | Aligned reliable plan outcome history tight/broad %d/%d avg %.1f/%.1f | Aligned reliable plan history tight/broad %d/%d avg %.1f/%.1f | Reliable trusted plan history tight/broad %d/%d avg %.1f/%.1f | Dominant pressure: %s | Structure bias: %s | Reliable stance: %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 | Plan source: %s | Plan alignment: %s | Plan comparison tight aligned/diverged %d/%d broad aligned/diverged %d/%d aligned reliable tight aligned/diverged %d/%d aligned reliable broad aligned/diverged %d/%d reliable tight aligned/diverged %d/%d reliable broad aligned/diverged %d/%d | Plan preferred: %s | Tight/broad structure plan: %s/%s | Packet stance: %s | Recovery posture: %s | Handoff posture: %s"),
*MethodDrillRecoveryMemorySourceLine,
SelectedMethodDrillRecoveryMemoryHistoryEntry->StrongMethodDrillRecoveryHistoryCount,
SelectedMethodDrillRecoveryMemoryHistoryEntry->WeakMethodDrillRecoveryHistoryCount,
@ -11127,6 +11463,14 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
->TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore,
SelectedMethodDrillRecoveryMemoryHistoryEntry
->ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount,
SelectedMethodDrillRecoveryMemoryHistoryEntry

View file

@ -775,6 +775,46 @@ FHyperTwistTrainingCoachPanelState UHyperTwistTrainingSubsystem::GetActiveCoachP
ActiveCoachMemorySnapshot.WeakMethodDrillRecoveryHistoryCount;
PanelState.MethodDrillRecoveryAverageOutcomeScore =
ActiveCoachMemorySnapshot.MethodDrillRecoveryAverageOutcomeScore;
PanelState.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot.TrustedTightMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot.TrustedBroadMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot.TrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot.TrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot.ReliableTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot.ReliableTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount;
PanelState.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore;
PanelState.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
PanelState.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount;
PanelState.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore;
PanelState.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore =
ActiveCoachMemorySnapshot
.ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore;
PanelState.bRepositoryVerificationPassed = ActiveRepositoryRoundTripVerification.bDidRoundTripPass;
PanelState.bRepositoryVerificationNeedsAttention = ActiveRepositoryRoundTripVerification.ResolvedPath.IsEmpty()
|| !ActiveRepositoryRoundTripVerification.bDidRoundTripPass;

View file

@ -211,6 +211,10 @@ struct FHyperTwistCoachDashboardQueueRecoveryWeighting
int32 ReliableAlignedTrustedBroadPlanPromoteReducedCount = 0;
int32 ReliableAlignedTrustedTightPlanBiasCount = 0;
int32 ReliableAlignedTrustedBroadPlanBiasCount = 0;
int32 ReliableAlignedTrustedTightPlanOutcomeHistoryCount = 0;
int32 ReliableAlignedTrustedBroadPlanOutcomeHistoryCount = 0;
int32 ReliableAlignedTrustedTightPlanOutcomeBiasCount = 0;
int32 ReliableAlignedTrustedBroadPlanOutcomeBiasCount = 0;
float PromoteAveragePressureDelta = 0.0f;
float LaunchAveragePressureDelta = 0.0f;
float MethodDrillUpstreamAverageOutcomeScore = 0.0f;
@ -218,6 +222,8 @@ struct FHyperTwistCoachDashboardQueueRecoveryWeighting
float ReliableTrustedBroadPlanAverageOutcomeScore = 0.0f;
float ReliableAlignedTrustedTightPlanAverageOutcomeScore = 0.0f;
float ReliableAlignedTrustedBroadPlanAverageOutcomeScore = 0.0f;
float ReliableAlignedTrustedTightPlanOutcomeAverageScore = 0.0f;
float ReliableAlignedTrustedBroadPlanOutcomeAverageScore = 0.0f;
FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind PreferredActionKind =
FHyperTwistCoachDashboardQueueRecoveryOutcome::EActionKind::None;
bool bHasSignal = false;
@ -229,6 +235,7 @@ struct FHyperTwistCoachDashboardQueueRecoveryWeighting
bool bHasReliableTrustedPlanOutcomeSignal = false;
bool bHasReliableAlignedTrustedPlanSignal = false;
bool bHasReliableAlignedTrustedPlanOutcomeSignal = false;
bool bHasReliableAlignedTrustedPlanHandoffOutcomeSignal = false;
bool IsStructurallyValid() const
{
@ -311,6 +318,10 @@ struct FHyperTwistCoachDashboardHandoffHistoryEntry
int32 AcceptedMethodDrillQueuedHandoffCount = 0;
int32 AcceptedMethodDrillFollowUpHandoffCount = 0;
int32 AcceptedMethodDrillRecommendedHandoffCount = 0;
int32 ReliableAlignedTrustedTightPlanOutcomeHistoryCount = 0;
int32 ReliableAlignedTrustedBroadPlanOutcomeHistoryCount = 0;
float ReliableAlignedTrustedTightPlanOutcomeAverageScore = 0.0f;
float ReliableAlignedTrustedBroadPlanOutcomeAverageScore = 0.0f;
int32 ClosureContinuationBias = 0;
int32 ClosureSuppressionBias = 0;
bool bQueueReady = false;
@ -324,6 +335,8 @@ struct FHyperTwistCoachDashboardHandoffHistoryEntry
bool bUsedReliableTrustedBroadStructurePlanHistory = false;
bool bUsedReliableAlignedTrustedTightStructurePlanHistory = false;
bool bUsedReliableAlignedTrustedBroadStructurePlanHistory = false;
bool bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory = false;
bool bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory = false;
bool IsStructurallyValid() const
{
@ -409,6 +422,10 @@ struct FHyperTwistCoachDashboardMethodDrillRecoveryMemoryHistoryEntry
int32 ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanHistoryCount = 0;
float ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
float ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
int32 ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount = 0;
int32 ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount = 0;
float ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore = 0.0f;
float ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore = 0.0f;
float MethodDrillRecoveryAverageOutcomeScore = 0.0f;
bool bStrongPressureDominant = false;
bool bWeakPressureDominant = false;
@ -418,6 +435,8 @@ struct FHyperTwistCoachDashboardMethodDrillRecoveryMemoryHistoryEntry
bool bReliableTrustedBroadStructurePlanDominant = false;
bool bReliableAlignedTrustedTightStructurePlanDominant = false;
bool bReliableAlignedTrustedBroadStructurePlanDominant = false;
bool bReliableAlignedTrustedTightStructurePlanOutcomeDominant = false;
bool bReliableAlignedTrustedBroadStructurePlanOutcomeDominant = false;
bool bGeneratedPacketUsedStrongRetainedMethodDrillRecoveryPosture = false;
bool bGeneratedPacketUsedWeakRetainedMethodDrillRecoveryPosture = false;
bool bGeneratedPacketUsedGenericMethodDrillRecoveryMemory = false;
@ -1491,7 +1510,9 @@ private:
bool bUsedReliableTrustedTightStructurePlanHistory,
bool bUsedReliableTrustedBroadStructurePlanHistory,
bool bUsedReliableAlignedTrustedTightStructurePlanHistory,
bool bUsedReliableAlignedTrustedBroadStructurePlanHistory
bool bUsedReliableAlignedTrustedBroadStructurePlanHistory,
bool bUsedReliableAlignedTrustedTightStructurePlanOutcomeHistory,
bool bUsedReliableAlignedTrustedBroadStructurePlanOutcomeHistory
);
void RecordQueueSuppressionSnapshot();
void RecordClosureRecoverySnapshot();

View file

@ -5134,6 +5134,18 @@ struct FHyperTwistTrainingCoachPanelState
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanAverageOutcomeScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float ReliableAlignedTrustedTightMethodDrillRecoveryStructurePlanOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float ReliableAlignedTrustedBroadMethodDrillRecoveryStructurePlanOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 SignalCount = 0;