Harden HyperTwist control settings degraded-state truth

This commit is contained in:
axiomlogicnexus 2026-06-30 05:56:13 +00:00
parent da38018c17
commit 8870fa838e
6 changed files with 304 additions and 105 deletions

View file

@ -180,9 +180,12 @@ namespace HyperTwistTrainingControlSurfaceFormatting
const bool bCameraSettingsContinuityReady,
const bool bImmersivePresenceSettingsReady,
const bool bImmersiveSessionRecallReady,
const bool bMagic120CellOwnedSettingsReady,
const bool bMagicCube5DOwnedSettingsReady,
const bool bHigherDimensionalSelectorSettingsReady,
const bool bMagic120CellViewSettingsReady,
const bool bMagic120CellPersistenceSettingsReady,
const bool bMagicCube5DViewSettingsReady,
const bool bMagicCube5DPersistenceSettingsReady,
const bool bMagic120CellSelectorSettingsReady,
const bool bMagicCube5DSelectorSettingsReady,
const bool bRepositoryBackedSelectorRecallReady
)
{
@ -194,13 +197,110 @@ namespace HyperTwistTrainingControlSurfaceFormatting
*DescribeOwnedContinuityState(
bImmersivePresenceSettingsReady,
bImmersiveSessionRecallReady),
bMagic120CellOwnedSettingsReady ? TEXT("ready") : TEXT("partial"),
bMagicCube5DOwnedSettingsReady ? TEXT("ready") : TEXT("partial"),
bHigherDimensionalSelectorSettingsReady ? TEXT("ready") : TEXT("partial"),
*DescribeAggregateReadyState(
bMagic120CellViewSettingsReady,
bMagic120CellPersistenceSettingsReady),
*DescribeAggregateReadyState(
bMagicCube5DViewSettingsReady,
bMagicCube5DPersistenceSettingsReady),
*DescribeAggregateReadyState(
bMagic120CellSelectorSettingsReady,
bMagicCube5DSelectorSettingsReady),
bRepositoryBackedSelectorRecallReady ? TEXT("ready") : TEXT("unavailable")
);
}
inline FString BuildControlSettingsFamilyOwnedLine(
const TCHAR* FamilyLabel,
const bool bViewSettingsReady,
const bool bPersistenceSettingsReady,
const FString& ViewProfileContractId,
const FString& SessionSurfaceId,
const FString& SceneSurfaceId,
const FString& PersistenceBoundaryId,
const FString& StateSemanticsId,
const int32 SelectorCount,
const TCHAR* SecondMetricLabel,
const int32 ProjectionSurfaceTagCount,
const int32 SecondMetricCount,
const TCHAR* ThirdMetricLabel,
const int32 ThirdMetricCount,
const TCHAR* FourthMetricLabel,
const int32 FourthMetricCount
)
{
return FString::Printf(
TEXT("%s owned settings: %s | profile %s | session %s | scene %s | persistence %s | semantics %s | selectors %d | projection tags %d | %s %d | %s %d | %s %d."),
FamilyLabel,
*DescribeAggregateReadyState(
bViewSettingsReady,
bPersistenceSettingsReady),
*DescribeIdIfReady(
bViewSettingsReady,
ViewProfileContractId),
*DescribeIdIfReady(
bPersistenceSettingsReady,
SessionSurfaceId),
*DescribeIdIfReady(
bPersistenceSettingsReady,
SceneSurfaceId),
*DescribeIdIfReady(
bPersistenceSettingsReady,
PersistenceBoundaryId),
*DescribeIdIfReady(
bPersistenceSettingsReady,
StateSemanticsId),
DescribeCountIfReady(
bViewSettingsReady,
SelectorCount),
DescribeCountIfReady(
bViewSettingsReady,
ProjectionSurfaceTagCount),
SecondMetricLabel,
DescribeCountIfReady(
bViewSettingsReady,
SecondMetricCount),
ThirdMetricLabel,
DescribeCountIfReady(
bViewSettingsReady,
ThirdMetricCount),
FourthMetricLabel,
DescribeCountIfReady(
bViewSettingsReady,
FourthMetricCount)
);
}
inline FString BuildControlSettingsSelectorOwnershipLine(
const bool bMagic120CellSelectorSettingsReady,
const bool bMagicCube5DSelectorSettingsReady,
const bool bActiveHigherDimensionalSettingsVisible,
const FString& ActiveHigherDimensionalViewContextId,
const FString& ActiveHigherDimensionalSessionSurfaceId,
const FString& ActiveHigherDimensionalInteractiveSceneSurfaceId,
const int32 ActiveHigherDimensionalSelectorCount
)
{
return FString::Printf(
TEXT("Higher-dimensional selector ownership: %s | active context %s | active session %s | active scene %s | active selectors %d."),
*DescribeAggregateReadyState(
bMagic120CellSelectorSettingsReady,
bMagicCube5DSelectorSettingsReady),
*DescribeIdIfReady(
bActiveHigherDimensionalSettingsVisible,
ActiveHigherDimensionalViewContextId),
*DescribeIdIfReady(
bActiveHigherDimensionalSettingsVisible,
ActiveHigherDimensionalSessionSurfaceId),
*DescribeIdIfReady(
bActiveHigherDimensionalSettingsVisible,
ActiveHigherDimensionalInteractiveSceneSurfaceId),
DescribeCountIfReady(
bActiveHigherDimensionalSettingsVisible,
ActiveHigherDimensionalSelectorCount)
);
}
inline FString BuildControlProfilePreferencesContinuityLine(
const bool bCameraSettingsContinuityReady,
const FString& CameraSettingsExportArtifactId,

View file

@ -1627,64 +1627,12 @@ UHyperTwistTrainingPanelWidget::GetDisplayedControlSettingsOwnershipInspectSurfa
Surface.bRequiresWindowsPackagedControllerValidationForReopen =
XrBoundaryFacts.bRequiresWindowsPackagedControllerValidationForReopen;
const FString ActiveViewContextId =
!Surface.ActiveHigherDimensionalViewContextId.IsEmpty()
? Surface.ActiveHigherDimensionalViewContextId
: TEXT("none");
const FString ActiveSessionSurfaceId =
!Surface.ActiveHigherDimensionalSessionSurfaceId.IsEmpty()
? Surface.ActiveHigherDimensionalSessionSurfaceId
: TEXT("none");
const FString ActiveSceneSurfaceId =
!Surface.ActiveHigherDimensionalInteractiveSceneSurfaceId.IsEmpty()
? Surface.ActiveHigherDimensionalInteractiveSceneSurfaceId
: TEXT("none");
const FString Magic120CellProfileId =
!Surface.Magic120CellViewProfileContractId.IsEmpty()
? Surface.Magic120CellViewProfileContractId
: TEXT("n/a");
const FString Magic120CellSessionSurfaceId =
!Surface.Magic120CellSessionSurfaceId.IsEmpty()
? Surface.Magic120CellSessionSurfaceId
: TEXT("n/a");
const FString Magic120CellSceneSurfaceId =
!Surface.Magic120CellSceneSurfaceId.IsEmpty()
? Surface.Magic120CellSceneSurfaceId
: TEXT("n/a");
const FString Magic120CellPersistenceBoundaryId =
!Surface.Magic120CellPersistenceBoundaryId.IsEmpty()
? Surface.Magic120CellPersistenceBoundaryId
: TEXT("n/a");
const FString Magic120CellStateSemanticsId =
!Surface.Magic120CellStateSemanticsId.IsEmpty()
? Surface.Magic120CellStateSemanticsId
: TEXT("n/a");
const FString MagicCube5DProfileId =
!Surface.MagicCube5DViewProfileContractId.IsEmpty()
? Surface.MagicCube5DViewProfileContractId
: TEXT("n/a");
const FString MagicCube5DSessionSurfaceId =
!Surface.MagicCube5DSessionSurfaceId.IsEmpty()
? Surface.MagicCube5DSessionSurfaceId
: TEXT("n/a");
const FString MagicCube5DSceneSurfaceId =
!Surface.MagicCube5DSceneSurfaceId.IsEmpty()
? Surface.MagicCube5DSceneSurfaceId
: TEXT("n/a");
const FString MagicCube5DPersistenceBoundaryId =
!Surface.MagicCube5DPersistenceBoundaryId.IsEmpty()
? Surface.MagicCube5DPersistenceBoundaryId
: TEXT("n/a");
const FString MagicCube5DStateSemanticsId =
!Surface.MagicCube5DStateSemanticsId.IsEmpty()
? Surface.MagicCube5DStateSemanticsId
: TEXT("n/a");
const bool bMagic120CellOwnedSettingsReady =
const bool bMagic120CellSelectorSettingsReady =
Surface.bMagic120CellViewSettingsReady
&& Surface.bMagic120CellPersistenceSettingsReady;
const bool bMagicCube5DOwnedSettingsReady =
&& Surface.Magic120CellSelectorCount > 0;
const bool bMagicCube5DSelectorSettingsReady =
Surface.bMagicCube5DViewSettingsReady
&& Surface.bMagicCube5DPersistenceSettingsReady;
&& Surface.MagicCube5DSelectorCount > 0;
Surface.SummaryLine =
TEXT("Camera, immersive, and dedicated-family projection, selector, continuity, and persistence settings are already first-party owned, while XR/controller rebinding still remains unfinished.");
@ -1711,45 +1659,54 @@ UHyperTwistTrainingPanelWidget::GetDisplayedControlSettingsOwnershipInspectSurfa
Surface.ImmersiveSessionRecallPreferenceFieldTagCount,
Surface.ImmersiveSessionRecallResetSurfaceTagCount
);
Surface.Magic120CellSettingsLine = FString::Printf(
TEXT("Magic120Cell owned settings: %s | profile %s | session %s | scene %s | persistence %s | semantics %s | selectors %d | projection tags %d | symmetry presets %d | visibility presets %d | focus surfaces %d."),
*HyperTwistTrainingPanelWidgetInternal::DescribeReadyState(
bMagic120CellOwnedSettingsReady),
*Magic120CellProfileId,
*Magic120CellSessionSurfaceId,
*Magic120CellSceneSurfaceId,
*Magic120CellPersistenceBoundaryId,
*Magic120CellStateSemanticsId,
Surface.Magic120CellSelectorCount,
Surface.Magic120CellProjectionSurfaceTagCount,
Surface.Magic120CellSymmetryPresetTagCount,
Surface.Magic120CellVisibilityPresetTagCount,
Surface.Magic120CellFocusSurfaceTagCount
);
Surface.MagicCube5DSettingsLine = FString::Printf(
TEXT("MagicCube5D owned settings: %s | profile %s | session %s | scene %s | persistence %s | semantics %s | selectors %d | projection tags %d | stereo tags %d | visibility tags %d | focus surfaces %d."),
*HyperTwistTrainingPanelWidgetInternal::DescribeReadyState(
bMagicCube5DOwnedSettingsReady),
*MagicCube5DProfileId,
*MagicCube5DSessionSurfaceId,
*MagicCube5DSceneSurfaceId,
*MagicCube5DPersistenceBoundaryId,
*MagicCube5DStateSemanticsId,
Surface.MagicCube5DSelectorCount,
Surface.MagicCube5DProjectionSurfaceTagCount,
Surface.MagicCube5DStereoSurfaceTagCount,
Surface.MagicCube5DVisibilitySurfaceTagCount,
Surface.MagicCube5DFocusSurfaceTagCount
);
Surface.SelectorSettingsLine = FString::Printf(
TEXT("Higher-dimensional selector ownership: %s | active context %s | active session %s | active scene %s | active selectors %d."),
*HyperTwistTrainingPanelWidgetInternal::DescribeReadyState(
Surface.bHigherDimensionalSelectorSettingsReady),
*ActiveViewContextId,
*ActiveSessionSurfaceId,
*ActiveSceneSurfaceId,
Surface.ActiveHigherDimensionalSelectorCount
);
Surface.Magic120CellSettingsLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsFamilyOwnedLine(
TEXT("Magic120Cell"),
Surface.bMagic120CellViewSettingsReady,
Surface.bMagic120CellPersistenceSettingsReady,
Surface.Magic120CellViewProfileContractId,
Surface.Magic120CellSessionSurfaceId,
Surface.Magic120CellSceneSurfaceId,
Surface.Magic120CellPersistenceBoundaryId,
Surface.Magic120CellStateSemanticsId,
Surface.Magic120CellSelectorCount,
TEXT("symmetry presets"),
Surface.Magic120CellProjectionSurfaceTagCount,
Surface.Magic120CellSymmetryPresetTagCount,
TEXT("visibility presets"),
Surface.Magic120CellVisibilityPresetTagCount,
TEXT("focus surfaces"),
Surface.Magic120CellFocusSurfaceTagCount
);
Surface.MagicCube5DSettingsLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsFamilyOwnedLine(
TEXT("MagicCube5D"),
Surface.bMagicCube5DViewSettingsReady,
Surface.bMagicCube5DPersistenceSettingsReady,
Surface.MagicCube5DViewProfileContractId,
Surface.MagicCube5DSessionSurfaceId,
Surface.MagicCube5DSceneSurfaceId,
Surface.MagicCube5DPersistenceBoundaryId,
Surface.MagicCube5DStateSemanticsId,
Surface.MagicCube5DSelectorCount,
TEXT("stereo tags"),
Surface.MagicCube5DProjectionSurfaceTagCount,
Surface.MagicCube5DStereoSurfaceTagCount,
TEXT("visibility tags"),
Surface.MagicCube5DVisibilitySurfaceTagCount,
TEXT("focus surfaces"),
Surface.MagicCube5DFocusSurfaceTagCount
);
Surface.SelectorSettingsLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsSelectorOwnershipLine(
bMagic120CellSelectorSettingsReady,
bMagicCube5DSelectorSettingsReady,
Surface.bActiveHigherDimensionalSettingsVisible,
Surface.ActiveHigherDimensionalViewContextId,
Surface.ActiveHigherDimensionalSessionSurfaceId,
Surface.ActiveHigherDimensionalInteractiveSceneSurfaceId,
Surface.ActiveHigherDimensionalSelectorCount
);
Surface.SelectorRecallLine =
HyperTwistTrainingPanelWidgetInternal::BuildSelectorRecallLine(
SelectorRecallFacts
@ -1764,9 +1721,12 @@ UHyperTwistTrainingPanelWidget::GetDisplayedControlSettingsOwnershipInspectSurfa
Surface.bCameraSettingsContinuityReady,
Surface.bImmersivePresenceSettingsReady,
Surface.bImmersiveSessionRecallReady,
bMagic120CellOwnedSettingsReady,
bMagicCube5DOwnedSettingsReady,
Surface.bHigherDimensionalSelectorSettingsReady,
Surface.bMagic120CellViewSettingsReady,
Surface.bMagic120CellPersistenceSettingsReady,
Surface.bMagicCube5DViewSettingsReady,
Surface.bMagicCube5DPersistenceSettingsReady,
bMagic120CellSelectorSettingsReady,
bMagicCube5DSelectorSettingsReady,
Surface.bRepositoryBackedSelectorRecallReady
);
Surface.DetailLine = FString::Printf(

View file

@ -235,6 +235,117 @@ bool FHyperTwistControlSettingsContinuityStateFormattingTest::RunTest(
&& ReadyImmersiveLine.Contains(TEXT("preference fields 5"))
);
const FString MissingFamilyOwnedLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsFamilyOwnedLine(
TEXT("Magic120Cell"),
false,
false,
TEXT("magic120cell-focus-view-profile"),
TEXT("phase6c/magic120cell/dedicated-training-session-surface"),
TEXT("phase6c/magic120cell/interactive-scene-surface"),
TEXT("magic120cell-persistence-boundary"),
TEXT("phase6c/magic120cell/family-owned-scene-state"),
4,
TEXT("symmetry presets"),
5,
5,
TEXT("visibility presets"),
5,
TEXT("focus surfaces"),
5
);
TestTrue(
TEXT("The control/settings family-owned formatter must render a fully absent higher-dimensional ownership lane as missing and mask stale ids and counts."),
MissingFamilyOwnedLine.Contains(TEXT("Magic120Cell owned settings: missing"))
&& MissingFamilyOwnedLine.Contains(TEXT("profile n/a"))
&& MissingFamilyOwnedLine.Contains(TEXT("session n/a"))
&& MissingFamilyOwnedLine.Contains(TEXT("scene n/a"))
&& MissingFamilyOwnedLine.Contains(TEXT("persistence n/a"))
&& MissingFamilyOwnedLine.Contains(TEXT("semantics n/a"))
&& MissingFamilyOwnedLine.Contains(TEXT("selectors 0"))
&& MissingFamilyOwnedLine.Contains(TEXT("projection tags 0"))
&& MissingFamilyOwnedLine.Contains(TEXT("symmetry presets 0"))
&& MissingFamilyOwnedLine.Contains(TEXT("visibility presets 0"))
&& MissingFamilyOwnedLine.Contains(TEXT("focus surfaces 0"))
);
const FString PartialFamilyOwnedLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsFamilyOwnedLine(
TEXT("MagicCube5D"),
true,
false,
TEXT("magiccube5d-projection-view-profile"),
TEXT("phase6c/magiccube5d/dedicated-training-session-surface"),
TEXT("phase6c/magiccube5d/interactive-scene-surface"),
TEXT("magiccube5d-persistence-boundary"),
TEXT("phase6c/magiccube5d/family-owned-scene-state"),
4,
TEXT("stereo tags"),
5,
5,
TEXT("visibility tags"),
5,
TEXT("focus surfaces"),
5
);
TestTrue(
TEXT("The control/settings family-owned formatter must render one-sided higher-dimensional ownership as partial while preserving the ready-side view ids and counts."),
PartialFamilyOwnedLine.Contains(TEXT("MagicCube5D owned settings: partial"))
&& PartialFamilyOwnedLine.Contains(TEXT("profile magiccube5d-projection-view-profile"))
&& PartialFamilyOwnedLine.Contains(TEXT("session n/a"))
&& PartialFamilyOwnedLine.Contains(TEXT("scene n/a"))
&& PartialFamilyOwnedLine.Contains(TEXT("persistence n/a"))
&& PartialFamilyOwnedLine.Contains(TEXT("semantics n/a"))
&& PartialFamilyOwnedLine.Contains(TEXT("selectors 4"))
&& PartialFamilyOwnedLine.Contains(TEXT("projection tags 5"))
&& PartialFamilyOwnedLine.Contains(TEXT("stereo tags 5"))
&& PartialFamilyOwnedLine.Contains(TEXT("visibility tags 5"))
&& PartialFamilyOwnedLine.Contains(TEXT("focus surfaces 5"))
);
const FString MissingSelectorOwnershipLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsSelectorOwnershipLine(
false,
false,
false,
TEXT("phase6c/magic120cell/runtime-view-context-surface"),
TEXT("phase6c/magic120cell/dedicated-training-session-surface"),
TEXT("phase6c/magic120cell/interactive-scene-surface"),
4
);
TestTrue(
TEXT("The control/settings selector formatter must render a fully absent selector lane as missing and mask stale active-surface ids."),
MissingSelectorOwnershipLine.Contains(TEXT("Higher-dimensional selector ownership: missing"))
&& MissingSelectorOwnershipLine.Contains(TEXT("active context n/a"))
&& MissingSelectorOwnershipLine.Contains(TEXT("active session n/a"))
&& MissingSelectorOwnershipLine.Contains(TEXT("active scene n/a"))
&& MissingSelectorOwnershipLine.Contains(TEXT("active selectors 0"))
);
const FString MissingStatusLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsStatusLine(
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
);
TestTrue(
TEXT("The control/settings status formatter must render fully absent dedicated-family ownership as missing instead of overstating it as partial."),
MissingStatusLine.Contains(TEXT("camera missing"))
&& MissingStatusLine.Contains(TEXT("immersive missing"))
&& MissingStatusLine.Contains(TEXT("120-cell owned settings missing"))
&& MissingStatusLine.Contains(TEXT("5D owned settings missing"))
&& MissingStatusLine.Contains(TEXT("selectors missing"))
&& MissingStatusLine.Contains(TEXT("selector recall unavailable"))
);
const FString MixedStatusLine =
HyperTwistTrainingControlSurfaceFormatting::BuildControlSettingsStatusLine(
false,
@ -242,7 +353,10 @@ bool FHyperTwistControlSettingsContinuityStateFormattingTest::RunTest(
true,
false,
true,
true,
true,
false,
true,
false,
false
);

View file

@ -225,6 +225,26 @@ Latest same-day follow-up later on `2026-06-24`:
- `scripts/run-hypertwist-gitnexus-status.sh` then again reported the bounded
mirror `Status: up-to-date`
Latest same-family native control-surface hardening follow-up on `2026-06-30`:
- the native control-settings formatter no longer overstates absent dedicated
family ownership as merely `partial`
- `HyperTwistTrainingControlSurfaceFormatting.h` now keeps:
- `missing` when neither side of a higher-dimensional ownership lane exists
- `partial` when only the view or persistence half exists
- `ready` only when the full owned lane is present
- the same helper layer now also owns explicit family-owned line rendering for
dedicated `Magic120Cell` and `MagicCube5D` settings plus selector-ownership
rendering, masking stale ids/counts while preserving the ready side of a
degraded lane
- focused native formatter coverage widened in
`UnrealHyperTwist/Source/UnrealHyperTwist/Tests/HyperTwistControlProfileContinuityParityTest.cpp`
to prove:
- fully missing family-owned settings truth
- partial family-owned settings truth
- fully missing selector-ownership truth
- fully missing versus mixed-partial aggregate status truth
Latest same-family website hardening follow-up on `2026-06-30`:
- public search assets now come from one shared authority:

File diff suppressed because one or more lines are too long

View file

@ -1143,6 +1143,11 @@ export const publicManualRouteAtlasCards = [
] as const
export const changelogEntries = [
{
date: 'June 30, 2026',
title: 'Native control-settings diagnostics now distinguish missing versus partial higher-dimensional ownership',
details: 'The desktop training-panel and coach-dashboard settings diagnostics no longer flatten every degraded 120-cell, 5D, or selector lane into one vague partial label. The current operator-facing formatter now keeps missing versus partial versus ready ownership explicit while still preserving the ready-side profile, selector, and continuity facts that actually exist.',
},
{
date: 'June 30, 2026',
title: 'Login and registration now preview the real desktop workflows too',