Learn accepted aligned packet outcomes upstream

This commit is contained in:
axiomlogicnexus 2026-04-30 00:38:43 +02:00
parent 1e73b5591c
commit b17003d012
5 changed files with 303 additions and 8 deletions

View file

@ -338,14 +338,17 @@ namespace HyperTwistCoachDashboardWidgetInternal
bool IsAlignedTightFollowUpPacketSourceLabel(const FString& SourceLabel)
{
return SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
return SourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
|| SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-"));
}
bool IsAlignedBroadRecommendedPacketSourceLabel(const FString& SourceLabel)
{
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
|| SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-"));
}
@ -405,6 +408,11 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted aligned tight follow-up-packet handoff history");
}
if (SourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome"))
{
return TEXT("accepted aligned tight follow-up-packet outcome history");
}
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
? TEXT("aligned tight retained follow-up-packet structure history")
@ -416,6 +424,11 @@ namespace HyperTwistCoachDashboardWidgetInternal
{
return TEXT("accepted aligned broad recommended-packet handoff history");
}
if (SourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome"))
{
return TEXT("accepted aligned broad recommended-packet outcome history");
}
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
? TEXT("aligned broad retained recommended-packet structure history")
@ -11306,6 +11319,24 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
: TEXT(""))
);
}
if (CachedCoachPanelState.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount > 0
|| CachedCoachPanelState.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount > 0)
{
GuidancePreferenceDetailLine += FString::Printf(
TEXT(" | Accepted aligned packet outcomes: tight follow-up-first %d (avg %.2f) | broad recommended-first %d (avg %.2f)%s"),
CachedCoachPanelState.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount,
CachedCoachPanelState.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore,
CachedCoachPanelState.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount,
CachedCoachPanelState.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore,
CachedCoachPanelState.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
? TEXT(" | Follow-up is currently being reinforced by accepted aligned tight packet outcomes.")
: (CachedCoachPanelState.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
? TEXT(" | Recommended is currently being reinforced by accepted aligned broad packet outcomes.")
: TEXT(""))
);
}
const bool bQueueRecoveryMemorySource =
HyperTwistCoachDashboardWidgetInternal::IsQueueRecoveryMemorySource(
CachedCoachPanelState.PreferredGuidanceSourceLabel);

View file

@ -333,6 +333,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
bool IsAlignedTightFollowUpGuidanceSourceLabel(const FString& SourceLabel)
{
return SourceLabel == TEXT("recommendation-history-aligned-tight-follow-up-outcome")
|| SourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
|| SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-"))
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-tight-queued")
@ -343,6 +345,8 @@ namespace HyperTwistTrainingCoachLibraryInternal
bool IsAlignedBroadRecommendedGuidanceSourceLabel(const FString& SourceLabel)
{
return SourceLabel == TEXT("recommendation-history-aligned-broad-recommended-outcome")
|| SourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
|| SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-"))
@ -410,6 +414,11 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("accepted aligned tight follow-up-packet handoff history");
}
if (SourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome"))
{
return TEXT("accepted aligned tight follow-up-packet outcome history");
}
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
? TEXT("aligned tight retained follow-up-packet structure history")
@ -424,6 +433,11 @@ namespace HyperTwistTrainingCoachLibraryInternal
{
return TEXT("accepted aligned broad recommended-packet handoff history");
}
if (SourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome"))
{
return TEXT("accepted aligned broad recommended-packet outcome history");
}
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
? TEXT("aligned broad retained recommended-packet structure history")

View file

@ -439,15 +439,33 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
bool IsAlignedTightFollowUpPacketStructureCoachMemorySource(const FString& SourceLabel)
{
return SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-"));
return SourceLabel == TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up");
}
bool IsAlignedBroadRecommendedPacketStructureCoachMemorySource(const FString& SourceLabel)
{
return SourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-"));
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended");
}
bool IsAcceptedAlignedTightFollowUpPacketOutcomeSource(const FString& SourceLabel)
{
return SourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-tight-"))
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-tight-queued")
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-tight-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-tight-recommended");
}
bool IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(const FString& SourceLabel)
{
return SourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
|| SourceLabel.StartsWith(TEXT("coach-memory-dashboard-aligned-follow-up-packet-broad-"))
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-broad-queued")
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-broad-follow-up")
|| SourceLabel == TEXT("dashboard-handoff-aligned-follow-up-packet-broad-recommended");
}
FString ResolveMethodDrillFollowUpPacketStructureRecoverySourceLabel(
@ -2294,10 +2312,14 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
const bool bAlignedTightFollowUpGuidanceOutcomeSource =
CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-aligned-tight-follow-up-outcome")
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("recommendation-history-aligned-tight-follow-up-outcome")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-tight-follow-up")
|| (CoachMemorySnapshot.PreferredGuidanceLane
@ -2312,10 +2334,14 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
const bool bAlignedBroadRecommendedGuidanceOutcomeSource =
CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-aligned-broad-recommended-outcome")
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("recommendation-history-aligned-broad-recommended-outcome")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome")
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
== TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended")
|| (CoachMemorySnapshot.PreferredGuidanceLane
@ -7753,6 +7779,14 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
RecommendationHistory.AlignedTightFollowUpPacketStructureOutcomeAverageScore;
Snapshot.AlignedBroadRecommendedPacketStructureOutcomeAverageScore =
RecommendationHistory.AlignedBroadRecommendedPacketStructureOutcomeAverageScore;
Snapshot.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount =
RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount;
Snapshot.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount =
RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount;
Snapshot.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore =
RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore;
Snapshot.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore =
RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore;
Snapshot.bHasRepeatRecommendationPressure = RecommendationHistory.bHasRepeatRecommendationPressure;
const int32 DeferredTightenedLaunchBias = FMath::Clamp(
RecommendationHistory.DeferredTightenedLaunchPlanCount,
@ -8058,7 +8092,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane = EHyperTwistTrainingCoachGuidanceLane::FollowUp;
@ -8072,6 +8110,10 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
@ -8088,7 +8130,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane = EHyperTwistTrainingCoachGuidanceLane::Recommended;
@ -8102,6 +8148,10 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredCoachHandoffKind =
@ -8110,6 +8160,106 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
TEXT("coach-memory-aligned-follow-up-packet-structure-broad-recommended");
}
}
const int32 AcceptedAlignedTightPacketOutcomeBias =
(RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount >= 2
&& RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore
>= 60.0f)
? FMath::Clamp(
RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount
- RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount
+ (RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore
>= 80.0f
? 1
: 0),
1,
4)
: 0;
const int32 AcceptedAlignedBroadPacketOutcomeBias =
(RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount >= 2
&& RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore
>= 58.0f)
? FMath::Clamp(
RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount
- RecommendationHistory.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount
+ (RecommendationHistory.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore
>= 78.0f
? 1
: 0),
1,
4)
: 0;
if (AcceptedAlignedTightPacketOutcomeBias > AcceptedAlignedBroadPacketOutcomeBias)
{
Snapshot.FollowUpGuidanceContinueBias += AcceptedAlignedTightPacketOutcomeBias;
Snapshot.SuppressedPrimaryQueuePressureCount += FMath::Max(
1,
AcceptedAlignedTightPacketOutcomeBias - 1
);
if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None
|| Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::Recommended
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane = EHyperTwistTrainingCoachGuidanceLane::FollowUp;
Snapshot.PreferredGuidanceSourceLabel =
TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome");
}
if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None
|| Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended
|| Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty()
|| Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
Snapshot.PreferredCoachHandoffSourceLabel =
TEXT("recommendation-history-accepted-aligned-tight-follow-up-packet-outcome");
}
}
else if (AcceptedAlignedBroadPacketOutcomeBias > AcceptedAlignedTightPacketOutcomeBias)
{
Snapshot.RecommendedGuidanceContinueBias += AcceptedAlignedBroadPacketOutcomeBias;
Snapshot.SuppressedFollowUpQueuePressureCount += AcceptedAlignedBroadPacketOutcomeBias;
if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None
|| Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane = EHyperTwistTrainingCoachGuidanceLane::Recommended;
Snapshot.PreferredGuidanceSourceLabel =
TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome");
}
if (Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::None
|| Snapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp
|| Snapshot.PreferredCoachHandoffSourceLabel.IsEmpty()
|| Snapshot.PreferredCoachHandoffSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredCoachHandoffSourceLabel))
{
Snapshot.PreferredCoachHandoffKind =
EHyperTwistTrainingCoachHandoffKind::Recommended;
Snapshot.PreferredCoachHandoffSourceLabel =
TEXT("recommendation-history-accepted-aligned-broad-recommended-packet-outcome");
}
}
if (!RecommendationHistory.FocusDeckId.IsEmpty()
&& (Snapshot.FocusDeckId.IsEmpty()
@ -9375,7 +9525,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane =
@ -9402,7 +9556,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedTightFollowUpPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAlignedBroadRecommendedPacketStructureCoachMemorySource(
Snapshot.PreferredGuidanceSourceLabel)
|| HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
Snapshot.PreferredGuidanceSourceLabel))
{
Snapshot.PreferredGuidanceLane =
@ -13471,6 +13629,8 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito
float ReliableAlignedTrustedBroadRecommendedLaneOutcomeAccumulator = 0.0f;
float AlignedTightFollowUpPacketStructureOutcomeAccumulator = 0.0f;
float AlignedBroadRecommendedPacketStructureOutcomeAccumulator = 0.0f;
float AcceptedAlignedTightFollowUpPacketOutcomeAccumulator = 0.0f;
float AcceptedAlignedBroadRecommendedPacketOutcomeAccumulator = 0.0f;
FString LatestPlanSortUtc;
for (const FHyperTwistTrainingCoachActionPlan& Plan : UserPlans)
@ -13693,6 +13853,18 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito
Summary.AlignedBroadRecommendedPacketStructureOutcomeHistoryCount += 1;
AlignedBroadRecommendedPacketStructureOutcomeAccumulator += OutcomeSummary.OutcomeScore;
}
if (HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedTightFollowUpPacketOutcomeSource(
OutcomeSummary.PreferredCoachHandoffSourceLabel))
{
Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount += 1;
AcceptedAlignedTightFollowUpPacketOutcomeAccumulator += OutcomeSummary.OutcomeScore;
}
if (HyperTwistTrainingRepositoryLibraryInternal::IsAcceptedAlignedBroadRecommendedPacketOutcomeSource(
OutcomeSummary.PreferredCoachHandoffSourceLabel))
{
Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount += 1;
AcceptedAlignedBroadRecommendedPacketOutcomeAccumulator += OutcomeSummary.OutcomeScore;
}
if (OutcomeSummary.PlannedLaunchCaseCount > 0)
{
PlannedLaunchCaseCountAccumulator +=
@ -13878,6 +14050,18 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito
AlignedBroadRecommendedPacketStructureOutcomeAccumulator
/ static_cast<float>(Summary.AlignedBroadRecommendedPacketStructureOutcomeHistoryCount);
}
if (Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount > 0)
{
Summary.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore =
AcceptedAlignedTightFollowUpPacketOutcomeAccumulator
/ static_cast<float>(Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount);
}
if (Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount > 0)
{
Summary.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore =
AcceptedAlignedBroadRecommendedPacketOutcomeAccumulator
/ static_cast<float>(Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount);
}
Summary.bHasRepeatRecommendationPressure =
Summary.RepeatRecommendationSequenceCount > 0
&& (Summary.RecurringCaseCount > 0
@ -13950,14 +14134,36 @@ FHyperTwistTrainingCoachRecommendationHistorySummary UHyperTwistTrainingReposito
1,
4)
: 0;
const int32 AcceptedAlignedTightPacketOutcomeLaneSignal =
(Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount >= 2
&& Summary.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore >= 60.0f)
? FMath::Clamp(
Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount
- Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount
+ (Summary.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore >= 80.0f ? 1 : 0),
1,
4)
: 0;
const int32 AcceptedAlignedBroadPacketOutcomeLaneSignal =
(Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount >= 2
&& Summary.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore >= 58.0f)
? FMath::Clamp(
Summary.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount
- Summary.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount
+ (Summary.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore >= 78.0f ? 1 : 0),
1,
4)
: 0;
Summary.PreferredGuidanceLane =
bHasFollowUpLaneSignal
&& (FollowUpLaneScore
+ static_cast<float>(ReliableAlignedTrustedTightFollowUpLaneSignal) * 1.5f
+ static_cast<float>(AlignedTightPacketStructureOutcomeLaneSignal) * 1.25f)
+ static_cast<float>(AlignedTightPacketStructureOutcomeLaneSignal) * 1.25f
+ static_cast<float>(AcceptedAlignedTightPacketOutcomeLaneSignal) * 1.5f)
> (RecommendedLaneScore
+ static_cast<float>(ReliableAlignedTrustedBroadRecommendedLaneSignal) * 1.5f
+ static_cast<float>(AlignedBroadPacketStructureOutcomeLaneSignal) * 1.25f)
+ static_cast<float>(AlignedBroadPacketStructureOutcomeLaneSignal) * 1.25f
+ static_cast<float>(AcceptedAlignedBroadPacketOutcomeLaneSignal) * 1.5f)
? EHyperTwistTrainingCoachGuidanceLane::FollowUp
: EHyperTwistTrainingCoachGuidanceLane::Recommended;

View file

@ -872,6 +872,14 @@ FHyperTwistTrainingCoachPanelState UHyperTwistTrainingSubsystem::GetActiveCoachP
ActiveCoachMemorySnapshot.AlignedTightFollowUpPacketStructureOutcomeAverageScore;
PanelState.AlignedBroadRecommendedPacketStructureOutcomeAverageScore =
ActiveCoachMemorySnapshot.AlignedBroadRecommendedPacketStructureOutcomeAverageScore;
PanelState.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount =
ActiveCoachMemorySnapshot.AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount;
PanelState.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount =
ActiveCoachMemorySnapshot.AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount;
PanelState.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore =
ActiveCoachMemorySnapshot.AcceptedAlignedTightFollowUpPacketOutcomeAverageScore;
PanelState.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore =
ActiveCoachMemorySnapshot.AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore;
PanelState.bRepositoryVerificationPassed = ActiveRepositoryRoundTripVerification.bDidRoundTripPass;
PanelState.bRepositoryVerificationNeedsAttention = ActiveRepositoryRoundTripVerification.ResolvedPath.IsEmpty()
|| !ActiveRepositoryRoundTripVerification.bDidRoundTripPass;

View file

@ -2043,6 +2043,18 @@ struct FHyperTwistTrainingCoachMemorySnapshot
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AlignedBroadRecommendedPacketStructureOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedTightFollowUpPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
bool bNeedsCoachIntervention = false;
@ -4585,6 +4597,18 @@ struct FHyperTwistTrainingCoachRecommendationHistorySummary
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AlignedBroadRecommendedPacketStructureOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedTightFollowUpPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
TArray<FString> RecurringCaseIds;
@ -5260,6 +5284,18 @@ struct FHyperTwistTrainingCoachPanelState
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AlignedBroadRecommendedPacketStructureOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedTightFollowUpPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 AcceptedAlignedBroadRecommendedPacketOutcomeHistoryCount = 0;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedTightFollowUpPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
float AcceptedAlignedBroadRecommendedPacketOutcomeAverageScore = 0.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
int32 SignalCount = 0;