Drain recognition shell header validators
This commit is contained in:
parent
7350650204
commit
71c7393350
3 changed files with 188 additions and 298 deletions
|
|
@ -30,6 +30,149 @@ namespace HyperTwistRecognitionTypesInternal
|
|||
}
|
||||
}
|
||||
|
||||
bool FHyperTwistVisionBrowserShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !BrowserShellProfileId.IsEmpty()
|
||||
&& !TransportKind.IsEmpty()
|
||||
&& !TransportEndpoint.IsEmpty()
|
||||
&& CaptureIntervalMs > 0
|
||||
&& !BrowserAssetReviewProfileId.IsEmpty()
|
||||
&& BrowserAssetReviewProfileDefinition.IsStructurallyValid()
|
||||
&& !DefaultBrowserAssetReviewDescriptorId.IsEmpty()
|
||||
&& SupportedBrowserAssetReviews.Num() > 0
|
||||
&& OrderedStageIds.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllStringsPopulated(OrderedStageIds)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(SupportedBrowserAssetReviews)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechMicrophoneShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !MicrophoneShellProfileId.IsEmpty()
|
||||
&& !ShellKind.IsEmpty()
|
||||
&& !CaptureMode.IsEmpty()
|
||||
&& StepWindowMs > 0
|
||||
&& CaptureWindowMs >= StepWindowMs
|
||||
&& KeepWindowMs >= 0
|
||||
&& KeepWindowMs <= CaptureWindowMs
|
||||
&& AudioContextTokens >= 0
|
||||
&& VadThreshold > 0.0f
|
||||
&& HighPassFrequencyHz >= 0.0f
|
||||
&& !PermissionContractId.IsEmpty()
|
||||
&& !CaptureRouteContractId.IsEmpty()
|
||||
&& !PermissionRequestActionId.IsEmpty()
|
||||
&& !CaptureRouteRetryActionId.IsEmpty()
|
||||
&& Panels.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(Panels)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechProviderProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !ProviderProfileId.IsEmpty()
|
||||
&& !DisplayLabel.IsEmpty()
|
||||
&& !ProviderClass.IsEmpty()
|
||||
&& !EndpointClass.IsEmpty()
|
||||
&& !EndpointReferenceId.IsEmpty()
|
||||
&& !AuthMaterialSource.IsEmpty()
|
||||
&& !ModelSelectionMode.IsEmpty()
|
||||
&& SupportedModelIds.Num() > 0
|
||||
&& CapabilityFlags.Num() > 0
|
||||
&& (AuthMaterialSource.Equals(TEXT("not-required"), ESearchCase::CaseSensitive)
|
||||
|| !AuthReferenceId.IsEmpty())
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllStringsPopulated(SupportedModelIds)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllStringsPopulated(CapabilityFlags);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechUsageCostAccountingProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !UsageCostAccountingProfileId.IsEmpty()
|
||||
&& !AccountingKind.IsEmpty()
|
||||
&& !UsageAggregationMode.IsEmpty()
|
||||
&& !CostAggregationMode.IsEmpty()
|
||||
&& !QuotaVisibilityMode.IsEmpty()
|
||||
&& !EscalationMode.IsEmpty()
|
||||
&& !UserOverridePosture.IsEmpty()
|
||||
&& NormalizedMeterKinds.Num() > 0
|
||||
&& NormalizedCurrencyCodes.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllStringsPopulated(NormalizedMeterKinds)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllStringsPopulated(NormalizedCurrencyCodes);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechUsageCostHistoryExportShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !HistoryExportShellProfileId.IsEmpty()
|
||||
&& !ShellKind.IsEmpty()
|
||||
&& !HistorySurfaceMode.IsEmpty()
|
||||
&& !ExportSurfaceMode.IsEmpty()
|
||||
&& !RefreshActionId.IsEmpty()
|
||||
&& !ExportPreviewActionId.IsEmpty()
|
||||
&& !CopySummaryActionId.IsEmpty()
|
||||
&& !RouteInspectActionId.IsEmpty()
|
||||
&& !BudgetInspectActionId.IsEmpty()
|
||||
&& RetainedHistoryEntryLimit > 0
|
||||
&& Panels.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(Panels)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechProviderReceiptReviewShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !ReceiptReviewShellProfileId.IsEmpty()
|
||||
&& !ShellKind.IsEmpty()
|
||||
&& !ReceiptSurfaceMode.IsEmpty()
|
||||
&& !VarianceSurfaceMode.IsEmpty()
|
||||
&& !RefreshActionId.IsEmpty()
|
||||
&& !PostedChargeInspectActionId.IsEmpty()
|
||||
&& !VarianceReviewActionId.IsEmpty()
|
||||
&& !RouteInspectActionId.IsEmpty()
|
||||
&& !BudgetInspectActionId.IsEmpty()
|
||||
&& RetainedReceiptEntryLimit > 0
|
||||
&& Panels.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(Panels)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechProviderBillingSettlementShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !BillingSettlementShellProfileId.IsEmpty()
|
||||
&& !ShellKind.IsEmpty()
|
||||
&& !SettlementSurfaceMode.IsEmpty()
|
||||
&& !InvoiceReconciliationMode.IsEmpty()
|
||||
&& !RefreshActionId.IsEmpty()
|
||||
&& !InvoiceReconciliationActionId.IsEmpty()
|
||||
&& !SettlementReadinessActionId.IsEmpty()
|
||||
&& !RouteInspectActionId.IsEmpty()
|
||||
&& !BudgetInspectActionId.IsEmpty()
|
||||
&& RetainedSettlementEntryLimit > 0
|
||||
&& Panels.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(Panels)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechProviderSettlementExceptionShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !SettlementExceptionShellProfileId.IsEmpty()
|
||||
&& !ShellKind.IsEmpty()
|
||||
&& !ExceptionSurfaceMode.IsEmpty()
|
||||
&& !ExternalPortalHandoffMode.IsEmpty()
|
||||
&& !RefreshActionId.IsEmpty()
|
||||
&& !ExceptionInspectActionId.IsEmpty()
|
||||
&& !ExternalPortalHandoffActionId.IsEmpty()
|
||||
&& !RouteInspectActionId.IsEmpty()
|
||||
&& !BudgetInspectActionId.IsEmpty()
|
||||
&& RetainedExceptionEntryLimit > 0
|
||||
&& Panels.Num() > 0
|
||||
&& ActionBindings.Num() > 0
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(Panels)
|
||||
&& HyperTwistRecognitionTypesInternal::AreAllItemsStructurallyValid(ActionBindings);
|
||||
}
|
||||
|
||||
bool FHyperTwistSpeechNativeCaptureRouteShellProfile::IsStructurallyValid() const
|
||||
{
|
||||
return !NativeCaptureRouteShellProfileId.IsEmpty()
|
||||
|
|
|
|||
|
|
@ -819,48 +819,7 @@ struct FHyperTwistVisionBrowserShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistVisionShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (BrowserShellProfileId.IsEmpty()
|
||||
|| TransportKind.IsEmpty()
|
||||
|| TransportEndpoint.IsEmpty()
|
||||
|| CaptureIntervalMs <= 0
|
||||
|| BrowserAssetReviewProfileId.IsEmpty()
|
||||
|| !BrowserAssetReviewProfileDefinition.IsStructurallyValid()
|
||||
|| DefaultBrowserAssetReviewDescriptorId.IsEmpty()
|
||||
|| SupportedBrowserAssetReviews.Num() <= 0
|
||||
|| OrderedStageIds.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FString& StageId : OrderedStageIds)
|
||||
{
|
||||
if (StageId.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistVisionBrowserAssetReviewDescriptor& AssetReview : SupportedBrowserAssetReviews)
|
||||
{
|
||||
if (!AssetReview.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistVisionShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -1837,46 +1796,7 @@ struct FHyperTwistSpeechMicrophoneShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistSpeechShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (MicrophoneShellProfileId.IsEmpty()
|
||||
|| ShellKind.IsEmpty()
|
||||
|| CaptureMode.IsEmpty()
|
||||
|| StepWindowMs <= 0
|
||||
|| CaptureWindowMs < StepWindowMs
|
||||
|| KeepWindowMs < 0
|
||||
|| KeepWindowMs > CaptureWindowMs
|
||||
|| AudioContextTokens < 0
|
||||
|| VadThreshold <= 0.0f
|
||||
|| HighPassFrequencyHz < 0.0f
|
||||
|| PermissionContractId.IsEmpty()
|
||||
|| CaptureRouteContractId.IsEmpty()
|
||||
|| PermissionRequestActionId.IsEmpty()
|
||||
|| CaptureRouteRetryActionId.IsEmpty()
|
||||
|| Panels.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellPanelLayout& Panel : Panels)
|
||||
{
|
||||
if (!Panel.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -2612,45 +2532,7 @@ struct FHyperTwistSpeechProviderProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bPreservesFirstPartyCustody = true;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (ProviderProfileId.IsEmpty()
|
||||
|| DisplayLabel.IsEmpty()
|
||||
|| ProviderClass.IsEmpty()
|
||||
|| EndpointClass.IsEmpty()
|
||||
|| EndpointReferenceId.IsEmpty()
|
||||
|| AuthMaterialSource.IsEmpty()
|
||||
|| ModelSelectionMode.IsEmpty()
|
||||
|| SupportedModelIds.Num() <= 0
|
||||
|| CapabilityFlags.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!AuthMaterialSource.Equals(TEXT("not-required"), ESearchCase::CaseSensitive)
|
||||
&& AuthReferenceId.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FString& ModelId : SupportedModelIds)
|
||||
{
|
||||
if (ModelId.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FString& CapabilityFlag : CapabilityFlags)
|
||||
{
|
||||
if (CapabilityFlag.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -2943,39 +2825,7 @@ struct FHyperTwistSpeechUsageCostAccountingProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bAllowsDonorOwnedCostGovernance = false;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (UsageCostAccountingProfileId.IsEmpty()
|
||||
|| AccountingKind.IsEmpty()
|
||||
|| UsageAggregationMode.IsEmpty()
|
||||
|| CostAggregationMode.IsEmpty()
|
||||
|| QuotaVisibilityMode.IsEmpty()
|
||||
|| EscalationMode.IsEmpty()
|
||||
|| UserOverridePosture.IsEmpty()
|
||||
|| NormalizedMeterKinds.Num() <= 0
|
||||
|| NormalizedCurrencyCodes.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FString& MeterKind : NormalizedMeterKinds)
|
||||
{
|
||||
if (MeterKind.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FString& CurrencyCode : NormalizedCurrencyCodes)
|
||||
{
|
||||
if (CurrencyCode.IsEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -3573,42 +3423,7 @@ struct FHyperTwistSpeechUsageCostHistoryExportShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistSpeechShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (HistoryExportShellProfileId.IsEmpty()
|
||||
|| ShellKind.IsEmpty()
|
||||
|| HistorySurfaceMode.IsEmpty()
|
||||
|| ExportSurfaceMode.IsEmpty()
|
||||
|| RefreshActionId.IsEmpty()
|
||||
|| ExportPreviewActionId.IsEmpty()
|
||||
|| CopySummaryActionId.IsEmpty()
|
||||
|| RouteInspectActionId.IsEmpty()
|
||||
|| BudgetInspectActionId.IsEmpty()
|
||||
|| RetainedHistoryEntryLimit <= 0
|
||||
|| Panels.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellPanelLayout& Panel : Panels)
|
||||
{
|
||||
if (!Panel.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -3886,42 +3701,7 @@ struct FHyperTwistSpeechProviderReceiptReviewShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistSpeechShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (ReceiptReviewShellProfileId.IsEmpty()
|
||||
|| ShellKind.IsEmpty()
|
||||
|| ReceiptSurfaceMode.IsEmpty()
|
||||
|| VarianceSurfaceMode.IsEmpty()
|
||||
|| RefreshActionId.IsEmpty()
|
||||
|| PostedChargeInspectActionId.IsEmpty()
|
||||
|| VarianceReviewActionId.IsEmpty()
|
||||
|| RouteInspectActionId.IsEmpty()
|
||||
|| BudgetInspectActionId.IsEmpty()
|
||||
|| RetainedReceiptEntryLimit <= 0
|
||||
|| Panels.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellPanelLayout& Panel : Panels)
|
||||
{
|
||||
if (!Panel.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -4189,42 +3969,7 @@ struct FHyperTwistSpeechProviderBillingSettlementShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistSpeechShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (BillingSettlementShellProfileId.IsEmpty()
|
||||
|| ShellKind.IsEmpty()
|
||||
|| SettlementSurfaceMode.IsEmpty()
|
||||
|| InvoiceReconciliationMode.IsEmpty()
|
||||
|| RefreshActionId.IsEmpty()
|
||||
|| InvoiceReconciliationActionId.IsEmpty()
|
||||
|| SettlementReadinessActionId.IsEmpty()
|
||||
|| RouteInspectActionId.IsEmpty()
|
||||
|| BudgetInspectActionId.IsEmpty()
|
||||
|| RetainedSettlementEntryLimit <= 0
|
||||
|| Panels.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellPanelLayout& Panel : Panels)
|
||||
{
|
||||
if (!Panel.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
@ -4507,42 +4252,7 @@ struct FHyperTwistSpeechProviderSettlementExceptionShellProfile
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FHyperTwistSpeechShellActionBinding> ActionBindings;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
if (SettlementExceptionShellProfileId.IsEmpty()
|
||||
|| ShellKind.IsEmpty()
|
||||
|| ExceptionSurfaceMode.IsEmpty()
|
||||
|| ExternalPortalHandoffMode.IsEmpty()
|
||||
|| RefreshActionId.IsEmpty()
|
||||
|| ExceptionInspectActionId.IsEmpty()
|
||||
|| ExternalPortalHandoffActionId.IsEmpty()
|
||||
|| RouteInspectActionId.IsEmpty()
|
||||
|| BudgetInspectActionId.IsEmpty()
|
||||
|| RetainedExceptionEntryLimit <= 0
|
||||
|| Panels.Num() <= 0
|
||||
|| ActionBindings.Num() <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellPanelLayout& Panel : Panels)
|
||||
{
|
||||
if (!Panel.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const FHyperTwistSpeechShellActionBinding& ActionBinding : ActionBindings)
|
||||
{
|
||||
if (!ActionBinding.IsStructurallyValid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
bool IsStructurallyValid() const;
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
|
|
|
|||
|
|
@ -466,6 +466,43 @@ Latest same-day simulation projection header cleanup follow-up still on
|
|||
- if we continue the same structural hardening lane, the next honest family
|
||||
is recognition/core ownership rather than more simulation projection cleanup
|
||||
|
||||
Latest same-day recognition header cleanup follow-up still on `2026-06-25`:
|
||||
|
||||
- the next bounded recognition-family packet then moved the larger shell/profile
|
||||
validators out of
|
||||
`Public/HyperTwistRecognition/HyperTwistRecognitionTypes.h` and into
|
||||
`Private/HyperTwistRecognition/HyperTwistRecognitionTypes.cpp`
|
||||
- the moved family covered:
|
||||
- `FHyperTwistVisionBrowserShellProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechMicrophoneShellProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechProviderProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechUsageCostAccountingProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechUsageCostHistoryExportShellProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechProviderReceiptReviewShellProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechProviderBillingSettlementShellProfile::IsStructurallyValid()`
|
||||
- `FHyperTwistSpeechProviderSettlementExceptionShellProfile::IsStructurallyValid()`
|
||||
- the private recognition owner now reuses its existing
|
||||
`AreAllStringsPopulated(...)` and `AreAllItemsStructurallyValid(...)` helpers
|
||||
for these checks, so the moved implementations read like the rest of the
|
||||
recognition type family instead of repeating hand-written loops in the public
|
||||
header
|
||||
- `scripts/run-hypertwist-sentrux-source-only.sh` then improved again to:
|
||||
- `Quality: 6188`
|
||||
- all `7` rules passing
|
||||
- the overall public-header inline-validator hotspots now shift again toward
|
||||
core/viewer/training plus smaller residual recognition and memory seams:
|
||||
- `42` lines for `FHyperTwistMelinda2x2x2x2ScramblePacket`
|
||||
- `36` lines for the current `HyperTwistViewerTypes.h` lead seam
|
||||
- `35` lines for `FHyperTwistTrainingClassicCubeMediaExportPlan`
|
||||
- `30` lines for `FHyperTwistVisionCommittedFaceState`
|
||||
- `30` lines for `FHyperTwistMemoryCognitiveFact`
|
||||
- current truthful “vanilla refactor” reading tightens again:
|
||||
- the recognition type header is no longer a meaningful large inline-validator
|
||||
hotspot
|
||||
- if we continue this exact structural hardening lane, the next honest family
|
||||
is now core/viewer/training or a return to the remaining smaller memory
|
||||
seams rather than more recognition shell-profile cleanup
|
||||
|
||||
Latest same-day browser/distribution continuity follow-up still on `2026-06-24`:
|
||||
|
||||
- auth-entry, protected-route loading, dashboard auth health, and release-authority fallback states now share a more deliberate operator-facing recovery shape instead of scattering single-line warnings across public and protected surfaces
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue