Harden HyperTwist control settings degraded-state truth
This commit is contained in:
parent
da38018c17
commit
8870fa838e
6 changed files with 304 additions and 105 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue