Land Phase 6C dedicated higher-dimensional family ownership
This commit is contained in:
parent
c3b8d91435
commit
9ced13b762
11 changed files with 913 additions and 272 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -1,9 +1,9 @@
|
|||
#include "HyperTwistTraining/HyperTwistTrainingHigherDimensionalRuntimeLibrary.h"
|
||||
|
||||
#include "JsonObjectConverter.h"
|
||||
|
||||
namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
||||
{
|
||||
const TCHAR* SharedHigherDimensionalTrainingMapPath =
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_ClassicTraining");
|
||||
const TCHAR* Magic120CellDedicatedTrainingMapPath =
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining");
|
||||
const TCHAR* MagicCube5DDedicatedTrainingMapPath =
|
||||
|
|
@ -127,44 +127,81 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return Choice;
|
||||
}
|
||||
|
||||
FString BuildPlaceholderSceneStatePayloadJson(
|
||||
const FString& EnvelopeId,
|
||||
const FString& SessionSurfaceId,
|
||||
const FString& ActivationProfileId,
|
||||
const FString& PuzzleId,
|
||||
const FString& StateSemanticsId,
|
||||
const FString& ProjectionProfile,
|
||||
const FString& ContextPresetId,
|
||||
const FString& VisibilityPresetId,
|
||||
const FString& FocusPresetId
|
||||
)
|
||||
template <typename TStruct>
|
||||
FString SerializeStructToJson(const TStruct& Value)
|
||||
{
|
||||
return FString::Printf(
|
||||
TEXT("{\"EnvelopeId\":\"%s\",\"SessionSurfaceId\":\"%s\",\"ActivationProfileId\":\"%s\",\"PuzzleId\":\"%s\",\"StateSemanticsId\":\"%s\",\"ProjectionProfile\":\"%s\",\"ContextPresetId\":\"%s\",\"VisibilityPresetId\":\"%s\",\"FocusPresetId\":\"%s\",\"bSolved\":true}"),
|
||||
*EnvelopeId,
|
||||
*SessionSurfaceId,
|
||||
*ActivationProfileId,
|
||||
*PuzzleId,
|
||||
*StateSemanticsId,
|
||||
*ProjectionProfile,
|
||||
*ContextPresetId,
|
||||
*VisibilityPresetId,
|
||||
*FocusPresetId
|
||||
);
|
||||
FString Json;
|
||||
FJsonObjectConverter::UStructToJsonObjectString(TStruct::StaticStruct(), &Value, Json, 0, 0);
|
||||
return Json;
|
||||
}
|
||||
|
||||
FHyperTwistSimulationSceneContext BuildPlaceholderInteractiveSceneContext(
|
||||
template <typename TStruct>
|
||||
bool DeserializeJsonString(const FString& Json, TStruct& OutValue)
|
||||
{
|
||||
return !Json.IsEmpty()
|
||||
&& FJsonObjectConverter::JsonObjectStringToUStruct(
|
||||
Json,
|
||||
&OutValue,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
|
||||
bool TryGetMagic120CellContracts(
|
||||
FHyperTwistTrainingMagic120CellRuntimeProfileContract& OutRuntimeProfile,
|
||||
FHyperTwistTrainingMagic120CellPersistenceBoundary& OutPersistenceBoundary,
|
||||
FHyperTwistTrainingMagic120CellViewProfileContract& OutViewProfile
|
||||
)
|
||||
{
|
||||
const FHyperTwistTrainingMagic120CellReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagic120CellLibrary::BuildBundledMagic120CellReferenceBundle();
|
||||
return UHyperTwistTrainingMagic120CellLibrary::TryGetRuntimeProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryRuntimeProfileContractId,
|
||||
OutRuntimeProfile)
|
||||
&& UHyperTwistTrainingMagic120CellLibrary::TryGetPersistenceBoundaryById(
|
||||
Bundle,
|
||||
Bundle.PrimaryPersistenceBoundaryId,
|
||||
OutPersistenceBoundary)
|
||||
&& UHyperTwistTrainingMagic120CellLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
OutViewProfile);
|
||||
}
|
||||
|
||||
bool TryGetMagicCube5DContracts(
|
||||
FHyperTwistTrainingMagicCube5DRuntimeProfileContract& OutRuntimeProfile,
|
||||
FHyperTwistTrainingMagicCube5DPersistenceBoundary& OutPersistenceBoundary,
|
||||
FHyperTwistTrainingMagicCube5DViewProfileContract& OutViewProfile
|
||||
)
|
||||
{
|
||||
const FHyperTwistTrainingMagicCube5DReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagicCube5DLibrary::BuildBundledMagicCube5DReferenceBundle();
|
||||
return UHyperTwistTrainingMagicCube5DLibrary::TryGetRuntimeProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryRuntimeProfileContractId,
|
||||
OutRuntimeProfile)
|
||||
&& UHyperTwistTrainingMagicCube5DLibrary::TryGetPersistenceBoundaryById(
|
||||
Bundle,
|
||||
Bundle.PrimaryPersistenceBoundaryId,
|
||||
OutPersistenceBoundary)
|
||||
&& UHyperTwistTrainingMagicCube5DLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
OutViewProfile);
|
||||
}
|
||||
|
||||
FHyperTwistSimulationSceneContext BuildInteractiveSceneContext(
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile,
|
||||
const FString& SessionSurfaceId,
|
||||
const FString& SceneContextId,
|
||||
const EHyperTwistStateEncodingKind StateEncodingKind,
|
||||
const FString& EncodingProfile,
|
||||
const FString& PayloadJson,
|
||||
const FString& OrientationReference,
|
||||
const FString& ProjectionProfile,
|
||||
const float ProjectionDepth,
|
||||
const FString& RenderStateProfile,
|
||||
const FString& StateSemanticsId,
|
||||
const FString& ContextPresetId,
|
||||
const FString& VisibilityPresetId,
|
||||
const FString& FocusPresetId
|
||||
const FString& Notes
|
||||
)
|
||||
{
|
||||
FHyperTwistSimulationSceneContext SceneContext;
|
||||
|
|
@ -175,27 +212,15 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
|
||||
SceneContext.SceneContextId = SceneContextId;
|
||||
SceneContext.PuzzleState.Definition = Profile.ToDefinitionRef();
|
||||
SceneContext.PuzzleState.StateEncodingKind = EHyperTwistStateEncodingKind::CellComplex;
|
||||
SceneContext.PuzzleState.StateEncodingKind = StateEncodingKind;
|
||||
SceneContext.PuzzleState.StateEncoding.EncodingProfile = EncodingProfile;
|
||||
SceneContext.PuzzleState.StateEncoding.PayloadJson = BuildPlaceholderSceneStatePayloadJson(
|
||||
FString::Printf(TEXT("%s/envelope"), *SceneContextId),
|
||||
SessionSurfaceId,
|
||||
Profile.ActivationProfileId,
|
||||
Profile.PuzzleId,
|
||||
StateSemanticsId,
|
||||
ProjectionProfile,
|
||||
ContextPresetId,
|
||||
VisibilityPresetId,
|
||||
FocusPresetId
|
||||
);
|
||||
SceneContext.PuzzleState.OrientationFrame.Reference =
|
||||
TEXT("phase6c/higher-dimensional-interactive-scene");
|
||||
SceneContext.PuzzleState.StateEncoding.PayloadJson = PayloadJson;
|
||||
SceneContext.PuzzleState.OrientationFrame.Reference = OrientationReference;
|
||||
SceneContext.PuzzleState.bIsSolved = true;
|
||||
SceneContext.PuzzleState.Source = EHyperTwistStateSource::Runtime;
|
||||
SceneContext.PuzzleState.CapturedAtUtc = TEXT("2026-06-18T00:00:00Z");
|
||||
SceneContext.PuzzleState.SourceSessionId = SessionSurfaceId;
|
||||
SceneContext.PuzzleState.Notes =
|
||||
TEXT("Placeholder higher-dimensional interactive scene envelope until dedicated family runtime-state ownership replaces the shared-map bridge.");
|
||||
SceneContext.PuzzleState.Notes = Notes;
|
||||
SceneContext.ProjectionSettings.ProjectionKind = EHyperTwistProjectionKind::HyperProjection;
|
||||
SceneContext.ProjectionSettings.ProjectionProfile = ProjectionProfile;
|
||||
SceneContext.ProjectionSettings.ProjectionDepth = ProjectionDepth;
|
||||
|
|
@ -310,6 +335,159 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
AppendUniqueStrings(OutProfile.CapabilityTags, ViewProfile.FocusSurfaceTags);
|
||||
}
|
||||
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope
|
||||
BuildMagic120CellInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile,
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface,
|
||||
const FHyperTwistTrainingMagic120CellPersistenceBoundary& PersistenceBoundary,
|
||||
const FHyperTwistTrainingMagic120CellViewProfileContract& ViewProfile
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope Envelope;
|
||||
if (!Profile.IsStructurallyValid() || !SessionSurface.IsStructurallyValid())
|
||||
{
|
||||
return Envelope;
|
||||
}
|
||||
|
||||
Envelope.EnvelopeId = TEXT("phase6c/magic120cell/interactive-scene-state");
|
||||
Envelope.SessionSurfaceId = SessionSurface.SessionSurfaceId;
|
||||
Envelope.ActivationProfileId = Profile.ActivationProfileId;
|
||||
Envelope.PuzzleId = Profile.PuzzleId;
|
||||
Envelope.RuntimeModeId = SessionSurface.RuntimeModeId;
|
||||
Envelope.PersistenceBoundaryId = PersistenceBoundary.BoundaryId;
|
||||
Envelope.ViewProfileContractId = ViewProfile.ContractId;
|
||||
Envelope.ProjectionProfile = TEXT("magic120cell-4d-projection-distance-v1");
|
||||
Envelope.ProjectionDepth = 4.0f;
|
||||
Envelope.PuzzleTypeModeId = TEXT("full-puzzle-default-mode");
|
||||
Envelope.SymmetryPresetId = TEXT("torus-visibility-groups");
|
||||
Envelope.VisibilityPresetId = TEXT("logical-visibility-depth-ladder");
|
||||
Envelope.FocusPresetId = TEXT("center-cell-recentering");
|
||||
Envelope.PersistenceFormatId = TEXT("magic120cell/version1-header-hex-facelets-v1");
|
||||
Envelope.TwistHistoryFormatId = TEXT("magic120cell/twist-history-ledger-v1");
|
||||
Envelope.ViewRotationPolicyId = TEXT("magic120cell/view-rotation-guard-rails-v1");
|
||||
Envelope.VisibleGroupIds =
|
||||
{
|
||||
TEXT("torus-groups"),
|
||||
TEXT("hypercube-groups"),
|
||||
TEXT("layer-groups"),
|
||||
TEXT("ring-groups")
|
||||
};
|
||||
AppendUniqueStrings(
|
||||
Envelope.PersistenceSurfaceTags,
|
||||
PersistenceBoundary.PersistenceSurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.PersistenceSurfaceTags,
|
||||
PersistenceBoundary.TwistHistorySurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.PersistenceSurfaceTags,
|
||||
ViewProfile.ProjectionSurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.PersistenceSurfaceTags,
|
||||
ViewProfile.VisibilityPresetTags);
|
||||
return Envelope;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope
|
||||
BuildMagicCube5DInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile,
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface,
|
||||
const FHyperTwistTrainingMagicCube5DPersistenceBoundary& PersistenceBoundary,
|
||||
const FHyperTwistTrainingMagicCube5DViewProfileContract& ViewProfile
|
||||
)
|
||||
{
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope Envelope;
|
||||
if (!Profile.IsStructurallyValid() || !SessionSurface.IsStructurallyValid())
|
||||
{
|
||||
return Envelope;
|
||||
}
|
||||
|
||||
Envelope.EnvelopeId = TEXT("phase6c/magiccube5d/interactive-scene-state");
|
||||
Envelope.SessionSurfaceId = SessionSurface.SessionSurfaceId;
|
||||
Envelope.ActivationProfileId = Profile.ActivationProfileId;
|
||||
Envelope.PuzzleId = Profile.PuzzleId;
|
||||
Envelope.RuntimeModeId = SessionSurface.RuntimeModeId;
|
||||
Envelope.PersistenceBoundaryId = PersistenceBoundary.BoundaryId;
|
||||
Envelope.ViewProfileContractId = ViewProfile.ContractId;
|
||||
Envelope.ProjectionProfile = TEXT("magiccube5d-5d-projection-distance-v1");
|
||||
Envelope.ProjectionDepth = 5.0f;
|
||||
Envelope.PuzzleOrder = 3;
|
||||
Envelope.StereoModeId = TEXT("stereo-disabled-default");
|
||||
Envelope.VisibilityPresetId = TEXT("all-faces-visible-default");
|
||||
Envelope.FocusPresetId = TEXT("view-centered-solved-progress");
|
||||
Envelope.AccentProfileId = TEXT("order-three-default-accent");
|
||||
Envelope.PersistenceFormatId = TEXT("magiccube5d/version1-ten-face-state-matrix-v1");
|
||||
Envelope.TwistHistoryFormatId = TEXT("magiccube5d/compact-twist-token-v1");
|
||||
Envelope.MacroFormatId = TEXT("magiccube5d/macros-sidecar-v1");
|
||||
Envelope.VisibleFaceIds =
|
||||
{
|
||||
TEXT("x-negative"),
|
||||
TEXT("x-positive"),
|
||||
TEXT("y-negative"),
|
||||
TEXT("y-positive"),
|
||||
TEXT("z-negative"),
|
||||
TEXT("z-positive"),
|
||||
TEXT("w-negative"),
|
||||
TEXT("w-positive"),
|
||||
TEXT("v-negative"),
|
||||
TEXT("v-positive")
|
||||
};
|
||||
AppendUniqueStrings(
|
||||
Envelope.SolvedProgressSurfaceTags,
|
||||
PersistenceBoundary.PersistenceSurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.SolvedProgressSurfaceTags,
|
||||
PersistenceBoundary.TwistHistorySurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.SolvedProgressSurfaceTags,
|
||||
PersistenceBoundary.MacroSurfaceTags);
|
||||
AppendUniqueStrings(
|
||||
Envelope.SolvedProgressSurfaceTags,
|
||||
ViewProfile.FocusSurfaceTags);
|
||||
return Envelope;
|
||||
}
|
||||
|
||||
FHyperTwistSimulationSceneContext BuildMagic120CellInteractiveSceneContext(
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile,
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface,
|
||||
const FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope& Envelope
|
||||
)
|
||||
{
|
||||
return BuildInteractiveSceneContext(
|
||||
Profile,
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magic120cell/interactive-scene-context"),
|
||||
EHyperTwistStateEncodingKind::FamilySpecific,
|
||||
TEXT("magic120cell-family-owned-scene-state-v1"),
|
||||
SerializeStructToJson(Envelope),
|
||||
TEXT("magic120cell-center-cell-runtime-frame-v1"),
|
||||
Envelope.ProjectionProfile,
|
||||
Envelope.ProjectionDepth,
|
||||
TEXT("magic120cell-center-cell-focus-scene-runtime-v1"),
|
||||
TEXT("Family-owned Magic120Cell interactive scene state envelope with dedicated persistence, projection, symmetry, and focus ownership above the dedicated family training shell.")
|
||||
);
|
||||
}
|
||||
|
||||
FHyperTwistSimulationSceneContext BuildMagicCube5DInteractiveSceneContext(
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile& Profile,
|
||||
const FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface& SessionSurface,
|
||||
const FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope& Envelope
|
||||
)
|
||||
{
|
||||
return BuildInteractiveSceneContext(
|
||||
Profile,
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/interactive-scene-context"),
|
||||
EHyperTwistStateEncodingKind::FamilySpecific,
|
||||
TEXT("magiccube5d-family-owned-scene-state-v1"),
|
||||
SerializeStructToJson(Envelope),
|
||||
TEXT("magiccube5d-signed-axis-runtime-frame-v1"),
|
||||
Envelope.ProjectionProfile,
|
||||
Envelope.ProjectionDepth,
|
||||
TEXT("magiccube5d-order3-scene-runtime-v1"),
|
||||
TEXT("Family-owned MagicCube5D interactive scene state envelope with dedicated persistence, solved-progress, projection, stereo, visibility, and focus ownership above the dedicated family training shell.")
|
||||
);
|
||||
}
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeActivationProfile BuildMagic120CellActivationProfile()
|
||||
{
|
||||
const FHyperTwistTrainingMagic120CellReferenceBundle Bundle =
|
||||
|
|
@ -404,15 +582,15 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
HostSurface.HostSurfaceId = TEXT("phase6c/magic120cell/runtime-host-surface");
|
||||
HostSurface.ActivationProfileId = Profile.ActivationProfileId;
|
||||
HostSurface.Title = TEXT("Magic120Cell dedicated-family host surface");
|
||||
HostSurface.Summary = TEXT("Explicit dedicated-family host seam for Magic120Cell that records the preferred owned training-map target while the effective runtime still resolves to the current shared HyperTwist training shell.");
|
||||
HostSurface.Summary = TEXT("Explicit dedicated-family host seam for Magic120Cell that now boots through the authored first-party family training shell and no longer falls back to the shared higher-dimensional map.");
|
||||
HostSurface.PreferredHostMapPath = Magic120CellDedicatedTrainingMapPath;
|
||||
HostSurface.PreferredHostMapRouteId = TEXT("phase6c/magic120cell/dedicated-training-map-host");
|
||||
HostSurface.PreferredHostMapLabel = TEXT("Magic120Cell dedicated training shell");
|
||||
HostSurface.EffectiveHostMapPath = SharedHigherDimensionalTrainingMapPath;
|
||||
HostSurface.EffectiveHostMapRouteId = TEXT("phase6c/shared-training-map-host");
|
||||
HostSurface.EffectiveHostMapLabel = TEXT("Shared HyperTwist training shell");
|
||||
HostSurface.bDedicatedFamilyHostMapAuthored = false;
|
||||
HostSurface.bUsesSharedTrainingMapFallback = true;
|
||||
HostSurface.EffectiveHostMapPath = Magic120CellDedicatedTrainingMapPath;
|
||||
HostSurface.EffectiveHostMapRouteId = TEXT("phase6c/magic120cell/dedicated-training-map-host");
|
||||
HostSurface.EffectiveHostMapLabel = TEXT("Magic120Cell dedicated training shell");
|
||||
HostSurface.bDedicatedFamilyHostMapAuthored = true;
|
||||
HostSurface.bUsesSharedTrainingMapFallback = false;
|
||||
HostSurface.HostTags =
|
||||
{
|
||||
TEXT("phase6c"),
|
||||
|
|
@ -420,11 +598,11 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("host-surface"),
|
||||
TEXT("family:magic120cell"),
|
||||
TEXT("preferred-host:dedicated-family-map"),
|
||||
TEXT("effective-host:shared-training-map")
|
||||
TEXT("effective-host:dedicated-family-map")
|
||||
};
|
||||
HostSurface.SourceAttribution = MakeHostAttribution(
|
||||
HostSurface.HostSurfaceId,
|
||||
TEXT("Phase 6C explicit host-surface seam for Magic120Cell that preserves the preferred dedicated-family map target while keeping the current shared training-map fallback authoritative.")
|
||||
TEXT("Phase 6C explicit host-surface seam for Magic120Cell that now routes owned launch and runtime execution through the authored dedicated-family training map.")
|
||||
);
|
||||
return HostSurface;
|
||||
}
|
||||
|
|
@ -451,33 +629,23 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagic120CellReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagic120CellLibrary::BuildBundledMagic120CellReferenceBundle();
|
||||
FHyperTwistTrainingMagic120CellRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagic120CellPersistenceBoundary PersistenceBoundary;
|
||||
FHyperTwistTrainingMagic120CellViewProfileContract ViewProfile;
|
||||
if (!UHyperTwistTrainingMagic120CellLibrary::TryGetRuntimeProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryRuntimeProfileContractId,
|
||||
RuntimeProfile)
|
||||
|| !UHyperTwistTrainingMagic120CellLibrary::TryGetPersistenceBoundaryById(
|
||||
Bundle,
|
||||
Bundle.PrimaryPersistenceBoundaryId,
|
||||
PersistenceBoundary)
|
||||
|| !UHyperTwistTrainingMagic120CellLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
if (!TryGetMagic120CellContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface LaunchSurface;
|
||||
LaunchSurface.LaunchSurfaceId = TEXT("phase6c/magic120cell/shared-training-launch-surface");
|
||||
LaunchSurface.LaunchSurfaceId = TEXT("phase6c/magic120cell/dedicated-training-launch-surface");
|
||||
LaunchSurface.ActivationProfileId = Profile.ActivationProfileId;
|
||||
LaunchSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
LaunchSurface.Title = TEXT("Magic120Cell shared-map launch surface");
|
||||
LaunchSurface.Summary = TEXT("Dedicated-family launch surface that binds the Magic120Cell clean-room activation profile to the current shared HyperTwist training map host, selector defaults, and generated-mode persistence execution path.");
|
||||
LaunchSurface.Title = TEXT("Magic120Cell dedicated-family launch surface");
|
||||
LaunchSurface.Summary = TEXT("Dedicated-family launch surface that binds the Magic120Cell clean-room activation profile to the authored dedicated training shell, owned selector defaults, and the family-owned persistence execution path.");
|
||||
LaunchSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
LaunchSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
LaunchSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -532,7 +700,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
};
|
||||
LaunchSurface.SourceAttribution = MakeLaunchAttribution(
|
||||
LaunchSurface.LaunchSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family launch surface for Magic120Cell on the explicit host-surface seam, with the preferred dedicated-family map target deferred and the current shared training-map host remaining authoritative for owned generated-mode execution.")
|
||||
TEXT("Phase 6C dedicated-family launch surface for Magic120Cell on the authored host seam, replacing the shared-map bridge with a dedicated family training shell for owned generated-mode execution.")
|
||||
);
|
||||
return LaunchSurface;
|
||||
}
|
||||
|
|
@ -632,15 +800,15 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
HostSurface.HostSurfaceId = TEXT("phase6c/magiccube5d/runtime-host-surface");
|
||||
HostSurface.ActivationProfileId = Profile.ActivationProfileId;
|
||||
HostSurface.Title = TEXT("MagicCube5D dedicated-family host surface");
|
||||
HostSurface.Summary = TEXT("Explicit dedicated-family host seam for MagicCube5D that records the preferred owned training-map target while the effective runtime still resolves to the current shared HyperTwist training shell.");
|
||||
HostSurface.Summary = TEXT("Explicit dedicated-family host seam for MagicCube5D that now boots through the authored first-party family training shell and no longer falls back to the shared higher-dimensional map.");
|
||||
HostSurface.PreferredHostMapPath = MagicCube5DDedicatedTrainingMapPath;
|
||||
HostSurface.PreferredHostMapRouteId = TEXT("phase6c/magiccube5d/dedicated-training-map-host");
|
||||
HostSurface.PreferredHostMapLabel = TEXT("MagicCube5D dedicated training shell");
|
||||
HostSurface.EffectiveHostMapPath = SharedHigherDimensionalTrainingMapPath;
|
||||
HostSurface.EffectiveHostMapRouteId = TEXT("phase6c/shared-training-map-host");
|
||||
HostSurface.EffectiveHostMapLabel = TEXT("Shared HyperTwist training shell");
|
||||
HostSurface.bDedicatedFamilyHostMapAuthored = false;
|
||||
HostSurface.bUsesSharedTrainingMapFallback = true;
|
||||
HostSurface.EffectiveHostMapPath = MagicCube5DDedicatedTrainingMapPath;
|
||||
HostSurface.EffectiveHostMapRouteId = TEXT("phase6c/magiccube5d/dedicated-training-map-host");
|
||||
HostSurface.EffectiveHostMapLabel = TEXT("MagicCube5D dedicated training shell");
|
||||
HostSurface.bDedicatedFamilyHostMapAuthored = true;
|
||||
HostSurface.bUsesSharedTrainingMapFallback = false;
|
||||
HostSurface.HostTags =
|
||||
{
|
||||
TEXT("phase6c"),
|
||||
|
|
@ -648,11 +816,11 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("host-surface"),
|
||||
TEXT("family:magiccube5d"),
|
||||
TEXT("preferred-host:dedicated-family-map"),
|
||||
TEXT("effective-host:shared-training-map")
|
||||
TEXT("effective-host:dedicated-family-map")
|
||||
};
|
||||
HostSurface.SourceAttribution = MakeHostAttribution(
|
||||
HostSurface.HostSurfaceId,
|
||||
TEXT("Phase 6C explicit host-surface seam for MagicCube5D that preserves the preferred dedicated-family map target while keeping the current shared training-map fallback authoritative.")
|
||||
TEXT("Phase 6C explicit host-surface seam for MagicCube5D that now routes owned launch and runtime execution through the authored dedicated-family training map.")
|
||||
);
|
||||
return HostSurface;
|
||||
}
|
||||
|
|
@ -679,33 +847,23 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagicCube5DReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagicCube5DLibrary::BuildBundledMagicCube5DReferenceBundle();
|
||||
FHyperTwistTrainingMagicCube5DRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagicCube5DPersistenceBoundary PersistenceBoundary;
|
||||
FHyperTwistTrainingMagicCube5DViewProfileContract ViewProfile;
|
||||
if (!UHyperTwistTrainingMagicCube5DLibrary::TryGetRuntimeProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryRuntimeProfileContractId,
|
||||
RuntimeProfile)
|
||||
|| !UHyperTwistTrainingMagicCube5DLibrary::TryGetPersistenceBoundaryById(
|
||||
Bundle,
|
||||
Bundle.PrimaryPersistenceBoundaryId,
|
||||
PersistenceBoundary)
|
||||
|| !UHyperTwistTrainingMagicCube5DLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
if (!TryGetMagicCube5DContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeLaunchSurface LaunchSurface;
|
||||
LaunchSurface.LaunchSurfaceId = TEXT("phase6c/magiccube5d/shared-training-launch-surface");
|
||||
LaunchSurface.LaunchSurfaceId = TEXT("phase6c/magiccube5d/dedicated-training-launch-surface");
|
||||
LaunchSurface.ActivationProfileId = Profile.ActivationProfileId;
|
||||
LaunchSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
LaunchSurface.Title = TEXT("MagicCube5D shared-map launch surface");
|
||||
LaunchSurface.Summary = TEXT("Dedicated-family launch surface that binds the MagicCube5D clean-room activation profile to the current shared HyperTwist training map host, selector defaults, and generated-mode persistence execution path.");
|
||||
LaunchSurface.Title = TEXT("MagicCube5D dedicated-family launch surface");
|
||||
LaunchSurface.Summary = TEXT("Dedicated-family launch surface that binds the MagicCube5D clean-room activation profile to the authored dedicated training shell, owned selector defaults, and the family-owned persistence execution path.");
|
||||
LaunchSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
LaunchSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
LaunchSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -766,7 +924,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
};
|
||||
LaunchSurface.SourceAttribution = MakeLaunchAttribution(
|
||||
LaunchSurface.LaunchSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family launch surface for MagicCube5D on the explicit host-surface seam, with the preferred dedicated-family map target deferred and the current shared training-map host remaining authoritative for owned generated-mode execution.")
|
||||
TEXT("Phase 6C dedicated-family launch surface for MagicCube5D on the authored host seam, replacing the shared-map bridge with a dedicated family training shell for owned generated-mode execution.")
|
||||
);
|
||||
return LaunchSurface;
|
||||
}
|
||||
|
|
@ -791,12 +949,12 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagic120CellReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagic120CellLibrary::BuildBundledMagic120CellReferenceBundle();
|
||||
FHyperTwistTrainingMagic120CellViewProfileContract ViewProfile;
|
||||
if (!UHyperTwistTrainingMagic120CellLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
FHyperTwistTrainingMagic120CellRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagic120CellPersistenceBoundary PersistenceBoundary;
|
||||
if (!TryGetMagic120CellContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface();
|
||||
|
|
@ -804,13 +962,13 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface ViewContextSurface;
|
||||
ViewContextSurface.ViewContextSurfaceId =
|
||||
TEXT("phase6c/magic120cell/shared-training-view-context-surface");
|
||||
TEXT("phase6c/magic120cell/dedicated-training-view-context-surface");
|
||||
ViewContextSurface.ActivationProfileId = LaunchSurface.ActivationProfileId;
|
||||
ViewContextSurface.LaunchSurfaceId = LaunchSurface.LaunchSurfaceId;
|
||||
ViewContextSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
ViewContextSurface.Title = TEXT("Magic120Cell shared-map view context surface");
|
||||
ViewContextSurface.Title = TEXT("Magic120Cell dedicated-family view context surface");
|
||||
ViewContextSurface.Summary =
|
||||
TEXT("Dedicated-family view-context surface that keeps the Magic120Cell projection, symmetry, visibility, and focus posture explicit above the shared HyperTwist training-map host.");
|
||||
TEXT("Dedicated-family view-context surface that keeps the Magic120Cell projection, symmetry, visibility, and focus posture explicit above the dedicated family training shell.");
|
||||
ViewContextSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
ViewContextSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
ViewContextSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -835,7 +993,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("view-context"),
|
||||
TEXT("family:magic120cell"),
|
||||
TEXT("host:shared-training-map"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*LaunchSurface.ActivationProfileId.ToLower()),
|
||||
FString::Printf(TEXT("host-surface:%s"),
|
||||
|
|
@ -870,7 +1028,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
};
|
||||
ViewContextSurface.SourceAttribution = MakeViewContextAttribution(
|
||||
ViewContextSurface.ViewContextSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family view-context surface for Magic120Cell on the explicit host-surface seam, preserving owned projection, symmetry, visibility, and focus defaults while the shared training-map fallback remains effective.")
|
||||
TEXT("Phase 6C dedicated-family view-context surface for Magic120Cell on the authored host seam, preserving owned projection, symmetry, visibility, and focus defaults on the dedicated family training shell.")
|
||||
);
|
||||
return ViewContextSurface;
|
||||
}
|
||||
|
|
@ -895,12 +1053,12 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagicCube5DReferenceBundle Bundle =
|
||||
UHyperTwistTrainingMagicCube5DLibrary::BuildBundledMagicCube5DReferenceBundle();
|
||||
FHyperTwistTrainingMagicCube5DViewProfileContract ViewProfile;
|
||||
if (!UHyperTwistTrainingMagicCube5DLibrary::TryGetViewProfileContractById(
|
||||
Bundle,
|
||||
Bundle.PrimaryViewProfileContractId,
|
||||
FHyperTwistTrainingMagicCube5DRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagicCube5DPersistenceBoundary PersistenceBoundary;
|
||||
if (!TryGetMagicCube5DContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface();
|
||||
|
|
@ -908,13 +1066,13 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeViewContextSurface ViewContextSurface;
|
||||
ViewContextSurface.ViewContextSurfaceId =
|
||||
TEXT("phase6c/magiccube5d/shared-training-view-context-surface");
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-view-context-surface");
|
||||
ViewContextSurface.ActivationProfileId = LaunchSurface.ActivationProfileId;
|
||||
ViewContextSurface.LaunchSurfaceId = LaunchSurface.LaunchSurfaceId;
|
||||
ViewContextSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
ViewContextSurface.Title = TEXT("MagicCube5D shared-map view context surface");
|
||||
ViewContextSurface.Title = TEXT("MagicCube5D dedicated-family view context surface");
|
||||
ViewContextSurface.Summary =
|
||||
TEXT("Dedicated-family view-context surface that keeps the MagicCube5D projection, stereo, visibility, and focus posture explicit above the shared HyperTwist training-map host.");
|
||||
TEXT("Dedicated-family view-context surface that keeps the MagicCube5D projection, stereo, visibility, and focus posture explicit above the dedicated family training shell.");
|
||||
ViewContextSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
ViewContextSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
ViewContextSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -939,7 +1097,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("view-context"),
|
||||
TEXT("family:magiccube5d"),
|
||||
TEXT("host:shared-training-map"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*LaunchSurface.ActivationProfileId.ToLower()),
|
||||
FString::Printf(TEXT("host-surface:%s"),
|
||||
|
|
@ -974,7 +1132,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
};
|
||||
ViewContextSurface.SourceAttribution = MakeViewContextAttribution(
|
||||
ViewContextSurface.ViewContextSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family view-context surface for MagicCube5D on the explicit host-surface seam, preserving owned projection, stereo, visibility, and focus defaults while the shared training-map fallback remains effective.")
|
||||
TEXT("Phase 6C dedicated-family view-context surface for MagicCube5D on the authored host seam, preserving owned projection, stereo, visibility, and focus defaults on the dedicated family training shell.")
|
||||
);
|
||||
return ViewContextSurface;
|
||||
}
|
||||
|
|
@ -1010,14 +1168,14 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface SessionSurface;
|
||||
SessionSurface.SessionSurfaceId =
|
||||
TEXT("phase6c/magic120cell/shared-training-session-surface");
|
||||
TEXT("phase6c/magic120cell/dedicated-training-session-surface");
|
||||
SessionSurface.ActivationProfileId = LaunchSurface.ActivationProfileId;
|
||||
SessionSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
SessionSurface.LaunchSurfaceId = LaunchSurface.LaunchSurfaceId;
|
||||
SessionSurface.ViewContextSurfaceId = ViewContextSurface.ViewContextSurfaceId;
|
||||
SessionSurface.Title = TEXT("Magic120Cell shared-map runtime session surface");
|
||||
SessionSurface.Title = TEXT("Magic120Cell dedicated-family runtime session surface");
|
||||
SessionSurface.Summary =
|
||||
TEXT("Dedicated-family runtime session surface that merges the Magic120Cell shared-map launch posture with the authored projection, symmetry, visibility, and focus defaults so the executed training session carries the owned higher-dimensional interaction shell rather than only the seed-run bridge.");
|
||||
TEXT("Dedicated-family runtime session surface that merges the Magic120Cell dedicated-family launch posture with the authored projection, symmetry, visibility, and focus defaults so the executed training session carries the owned higher-dimensional interaction shell on the dedicated training shell.");
|
||||
SessionSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
SessionSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
SessionSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -1050,7 +1208,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("session-surface"),
|
||||
TEXT("family:magic120cell"),
|
||||
TEXT("host:shared-training-map"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
TEXT("session-defaults:launch-plus-view-context"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*LaunchSurface.ActivationProfileId.ToLower()),
|
||||
|
|
@ -1081,7 +1239,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
ViewContextSurface.DefaultSelectorChoices);
|
||||
SessionSurface.SourceAttribution = MakeSessionAttribution(
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family runtime session surface for Magic120Cell that turns the authored launch and view-context posture into one executed clean-room session contract while the shared training-map host remains the effective runtime fallback.")
|
||||
TEXT("Phase 6C dedicated-family runtime session surface for Magic120Cell that turns the authored launch and view-context posture into one executed clean-room session contract on the dedicated family training shell.")
|
||||
);
|
||||
return SessionSurface;
|
||||
}
|
||||
|
|
@ -1117,14 +1275,14 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeSessionSurface SessionSurface;
|
||||
SessionSurface.SessionSurfaceId =
|
||||
TEXT("phase6c/magiccube5d/shared-training-session-surface");
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-session-surface");
|
||||
SessionSurface.ActivationProfileId = LaunchSurface.ActivationProfileId;
|
||||
SessionSurface.HostSurfaceId = HostSurface.HostSurfaceId;
|
||||
SessionSurface.LaunchSurfaceId = LaunchSurface.LaunchSurfaceId;
|
||||
SessionSurface.ViewContextSurfaceId = ViewContextSurface.ViewContextSurfaceId;
|
||||
SessionSurface.Title = TEXT("MagicCube5D shared-map runtime session surface");
|
||||
SessionSurface.Title = TEXT("MagicCube5D dedicated-family runtime session surface");
|
||||
SessionSurface.Summary =
|
||||
TEXT("Dedicated-family runtime session surface that merges the MagicCube5D shared-map launch posture with the authored projection, stereo, visibility, and focus defaults so the executed training session carries the owned higher-dimensional interaction shell rather than only the seed-run bridge.");
|
||||
TEXT("Dedicated-family runtime session surface that merges the MagicCube5D dedicated-family launch posture with the authored projection, stereo, visibility, and focus defaults so the executed training session carries the owned higher-dimensional interaction shell on the dedicated training shell.");
|
||||
SessionSurface.HostMapPath = HostSurface.EffectiveHostMapPath;
|
||||
SessionSurface.HostMapRouteId = HostSurface.EffectiveHostMapRouteId;
|
||||
SessionSurface.HostMapLabel = HostSurface.EffectiveHostMapLabel;
|
||||
|
|
@ -1157,7 +1315,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("session-surface"),
|
||||
TEXT("family:magiccube5d"),
|
||||
TEXT("host:shared-training-map"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
TEXT("session-defaults:launch-plus-view-context"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*LaunchSurface.ActivationProfileId.ToLower()),
|
||||
|
|
@ -1188,7 +1346,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
ViewContextSurface.DefaultSelectorChoices);
|
||||
SessionSurface.SourceAttribution = MakeSessionAttribution(
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family runtime session surface for MagicCube5D that turns the authored launch and view-context posture into one executed clean-room session contract while the shared training-map host remains the effective runtime fallback.")
|
||||
TEXT("Phase 6C dedicated-family runtime session surface for MagicCube5D that turns the authored launch and view-context posture into one executed clean-room session contract on the dedicated family training shell.")
|
||||
);
|
||||
return SessionSurface;
|
||||
}
|
||||
|
|
@ -1216,6 +1374,28 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingMagic120CellRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagic120CellPersistenceBoundary PersistenceBoundary;
|
||||
FHyperTwistTrainingMagic120CellViewProfileContract ViewProfile;
|
||||
if (!TryGetMagic120CellContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope Envelope =
|
||||
BuildMagic120CellInteractiveSceneStateEnvelope(
|
||||
Profile,
|
||||
SessionSurface,
|
||||
PersistenceBoundary,
|
||||
ViewProfile);
|
||||
if (!Envelope.IsStructurallyValid())
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface SceneSurface;
|
||||
SceneSurface.SceneSurfaceId = TEXT("phase6c/magic120cell/interactive-scene-surface");
|
||||
SceneSurface.SessionSurfaceId = SessionSurface.SessionSurfaceId;
|
||||
|
|
@ -1225,7 +1405,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
SceneSurface.ViewContextSurfaceId = SessionSurface.ViewContextSurfaceId;
|
||||
SceneSurface.Title = TEXT("Magic120Cell interactive scene surface");
|
||||
SceneSurface.Summary =
|
||||
TEXT("Dedicated-family interactive scene surface that promotes the Magic120Cell runtime session into an explicit simulation scene-context contract while dedicated maps and family-owned runtime state are still being authored.");
|
||||
TEXT("Dedicated-family interactive scene surface that promotes the Magic120Cell runtime session into an explicit simulation scene-context contract with family-owned state, projection, and persistence posture on the dedicated training shell.");
|
||||
SceneSurface.HostMapPath = SessionSurface.HostMapPath;
|
||||
SceneSurface.HostMapRouteId = SessionSurface.HostMapRouteId;
|
||||
SceneSurface.HostMapLabel = SessionSurface.HostMapLabel;
|
||||
|
|
@ -1237,20 +1417,12 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
SceneSurface.PrimaryViewProfileContractId =
|
||||
SessionSurface.PrimaryViewProfileContractId;
|
||||
SceneSurface.StateSemanticsId =
|
||||
TEXT("phase6c/higher-dimensional-placeholder-solved-envelope");
|
||||
SceneSurface.bUsesPlaceholderStateEnvelope = true;
|
||||
SceneSurface.SceneContext = BuildPlaceholderInteractiveSceneContext(
|
||||
TEXT("phase6c/magic120cell/family-owned-scene-state");
|
||||
SceneSurface.bUsesPlaceholderStateEnvelope = false;
|
||||
SceneSurface.SceneContext = BuildMagic120CellInteractiveSceneContext(
|
||||
Profile,
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magic120cell/interactive-scene-context"),
|
||||
TEXT("phase6c/magic120cell-interactive-scene-envelope-v1"),
|
||||
TEXT("magic120cell-4d-projection-distance-v1"),
|
||||
4.0f,
|
||||
TEXT("magic120cell-center-cell-focus-scene-runtime-v1"),
|
||||
SceneSurface.StateSemanticsId,
|
||||
TEXT("full-puzzle-default-mode"),
|
||||
TEXT("logical-visibility-depth-ladder"),
|
||||
TEXT("center-cell-recentering")
|
||||
SessionSurface,
|
||||
Envelope
|
||||
);
|
||||
AppendUniqueStrings(
|
||||
SceneSurface.InteractionSurfaceTags,
|
||||
|
|
@ -1262,10 +1434,12 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("interactive-scene"),
|
||||
TEXT("family:magic120cell"),
|
||||
TEXT("scene-state:placeholder-envelope"),
|
||||
TEXT("scene-state:family-owned-envelope"),
|
||||
TEXT("projection:magic120cell-4d-projection-distance-v1"),
|
||||
TEXT("focus:center-cell-recentering"),
|
||||
TEXT("visibility:logical-visibility-depth-ladder"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
TEXT("persistence:magic120cell-persistence-boundary"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*SceneSurface.ActivationProfileId.ToLower()),
|
||||
FString::Printf(TEXT("session-surface:%s"),
|
||||
|
|
@ -1274,9 +1448,10 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
AppendUniqueStrings(SceneSurface.SceneTags, SessionSurface.SessionTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, SceneSurface.InteractionSurfaceTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, SceneSurface.ViewSurfaceTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, Envelope.PersistenceSurfaceTags);
|
||||
SceneSurface.SourceAttribution = MakeInteractiveSceneAttribution(
|
||||
SceneSurface.SceneSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family interactive scene surface for Magic120Cell that keeps the simulation-side scene contract explicit and intentionally placeholder-backed while the shared training-map host remains authoritative.")
|
||||
TEXT("Phase 6C dedicated-family interactive scene surface for Magic120Cell that now carries a family-owned scene-state envelope, dedicated persistence ownership, and the dedicated family training shell instead of the placeholder shared-map bridge.")
|
||||
);
|
||||
return SceneSurface;
|
||||
}
|
||||
|
|
@ -1304,6 +1479,28 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingMagicCube5DRuntimeProfileContract RuntimeProfile;
|
||||
FHyperTwistTrainingMagicCube5DPersistenceBoundary PersistenceBoundary;
|
||||
FHyperTwistTrainingMagicCube5DViewProfileContract ViewProfile;
|
||||
if (!TryGetMagicCube5DContracts(
|
||||
RuntimeProfile,
|
||||
PersistenceBoundary,
|
||||
ViewProfile))
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
const FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope Envelope =
|
||||
BuildMagicCube5DInteractiveSceneStateEnvelope(
|
||||
Profile,
|
||||
SessionSurface,
|
||||
PersistenceBoundary,
|
||||
ViewProfile);
|
||||
if (!Envelope.IsStructurallyValid())
|
||||
{
|
||||
return FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface SceneSurface;
|
||||
SceneSurface.SceneSurfaceId = TEXT("phase6c/magiccube5d/interactive-scene-surface");
|
||||
SceneSurface.SessionSurfaceId = SessionSurface.SessionSurfaceId;
|
||||
|
|
@ -1313,7 +1510,7 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
SceneSurface.ViewContextSurfaceId = SessionSurface.ViewContextSurfaceId;
|
||||
SceneSurface.Title = TEXT("MagicCube5D interactive scene surface");
|
||||
SceneSurface.Summary =
|
||||
TEXT("Dedicated-family interactive scene surface that promotes the MagicCube5D runtime session into an explicit simulation scene-context contract while dedicated maps and family-owned runtime state are still being authored.");
|
||||
TEXT("Dedicated-family interactive scene surface that promotes the MagicCube5D runtime session into an explicit simulation scene-context contract with family-owned state, projection, persistence, and solved-progress posture on the dedicated training shell.");
|
||||
SceneSurface.HostMapPath = SessionSurface.HostMapPath;
|
||||
SceneSurface.HostMapRouteId = SessionSurface.HostMapRouteId;
|
||||
SceneSurface.HostMapLabel = SessionSurface.HostMapLabel;
|
||||
|
|
@ -1325,20 +1522,12 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
SceneSurface.PrimaryViewProfileContractId =
|
||||
SessionSurface.PrimaryViewProfileContractId;
|
||||
SceneSurface.StateSemanticsId =
|
||||
TEXT("phase6c/higher-dimensional-placeholder-solved-envelope");
|
||||
SceneSurface.bUsesPlaceholderStateEnvelope = true;
|
||||
SceneSurface.SceneContext = BuildPlaceholderInteractiveSceneContext(
|
||||
TEXT("phase6c/magiccube5d/family-owned-scene-state");
|
||||
SceneSurface.bUsesPlaceholderStateEnvelope = false;
|
||||
SceneSurface.SceneContext = BuildMagicCube5DInteractiveSceneContext(
|
||||
Profile,
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/interactive-scene-context"),
|
||||
TEXT("phase6c/magiccube5d-interactive-scene-envelope-v1"),
|
||||
TEXT("magiccube5d-5d-projection-distance-v1"),
|
||||
5.0f,
|
||||
TEXT("magiccube5d-order3-scene-runtime-v1"),
|
||||
SceneSurface.StateSemanticsId,
|
||||
TEXT("stereo-disabled-default"),
|
||||
TEXT("all-faces-visible-default"),
|
||||
TEXT("view-centered-solved-progress")
|
||||
SessionSurface,
|
||||
Envelope
|
||||
);
|
||||
AppendUniqueStrings(
|
||||
SceneSurface.InteractionSurfaceTags,
|
||||
|
|
@ -1350,11 +1539,13 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
TEXT("higher-dimensional"),
|
||||
TEXT("interactive-scene"),
|
||||
TEXT("family:magiccube5d"),
|
||||
TEXT("scene-state:placeholder-envelope"),
|
||||
TEXT("scene-state:family-owned-envelope"),
|
||||
TEXT("projection:magiccube5d-5d-projection-distance-v1"),
|
||||
TEXT("context:stereo-disabled-default"),
|
||||
TEXT("visibility:all-faces-visible-default"),
|
||||
TEXT("focus:view-centered-solved-progress"),
|
||||
TEXT("host:dedicated-family-map"),
|
||||
TEXT("persistence:magiccube5d-persistence-boundary"),
|
||||
FString::Printf(TEXT("activation-profile:%s"),
|
||||
*SceneSurface.ActivationProfileId.ToLower()),
|
||||
FString::Printf(TEXT("session-surface:%s"),
|
||||
|
|
@ -1363,9 +1554,10 @@ namespace HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal
|
|||
AppendUniqueStrings(SceneSurface.SceneTags, SessionSurface.SessionTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, SceneSurface.InteractionSurfaceTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, SceneSurface.ViewSurfaceTags);
|
||||
AppendUniqueStrings(SceneSurface.SceneTags, Envelope.SolvedProgressSurfaceTags);
|
||||
SceneSurface.SourceAttribution = MakeInteractiveSceneAttribution(
|
||||
SceneSurface.SceneSurfaceId,
|
||||
TEXT("Phase 6C dedicated-family interactive scene surface for MagicCube5D that keeps the simulation-side scene contract explicit and intentionally placeholder-backed while the shared training-map host remains authoritative.")
|
||||
TEXT("Phase 6C dedicated-family interactive scene surface for MagicCube5D that now carries a family-owned scene-state envelope, dedicated persistence ownership, and the dedicated family training shell instead of the placeholder shared-map bridge.")
|
||||
);
|
||||
return SceneSurface;
|
||||
}
|
||||
|
|
@ -1951,3 +2143,47 @@ bool UHyperTwistTrainingHigherDimensionalRuntimeLibrary::TryGetInteractiveSceneS
|
|||
OutSceneSurface
|
||||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingHigherDimensionalRuntimeLibrary::TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope& OutEnvelope
|
||||
)
|
||||
{
|
||||
OutEnvelope = FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope();
|
||||
if (!SceneContext.IsStructurallyValid()
|
||||
|| SceneContext.PuzzleState.Definition.PuzzleId != TEXT("polychoron/magic120cell")
|
||||
|| SceneContext.PuzzleState.StateEncoding.EncodingProfile
|
||||
!= TEXT("magic120cell-family-owned-scene-state-v1")
|
||||
|| !HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal::DeserializeJsonString(
|
||||
SceneContext.PuzzleState.StateEncoding.PayloadJson,
|
||||
OutEnvelope)
|
||||
|| !OutEnvelope.IsStructurallyValid())
|
||||
{
|
||||
OutEnvelope = FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingHigherDimensionalRuntimeLibrary::TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope& OutEnvelope
|
||||
)
|
||||
{
|
||||
OutEnvelope = FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope();
|
||||
if (!SceneContext.IsStructurallyValid()
|
||||
|| SceneContext.PuzzleState.Definition.PuzzleId != TEXT("hypercube/magiccube5d/order3")
|
||||
|| SceneContext.PuzzleState.StateEncoding.EncodingProfile
|
||||
!= TEXT("magiccube5d-family-owned-scene-state-v1")
|
||||
|| !HyperTwistTrainingHigherDimensionalRuntimeLibraryInternal::DeserializeJsonString(
|
||||
SceneContext.PuzzleState.StateEncoding.PayloadJson,
|
||||
OutEnvelope)
|
||||
|| !OutEnvelope.IsStructurallyValid())
|
||||
{
|
||||
OutEnvelope = FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7479,6 +7479,28 @@ bool UHyperTwistTrainingRuntimeLibrary::TryGetHigherDimensionalInteractiveSceneS
|
|||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope& OutEnvelope
|
||||
)
|
||||
{
|
||||
return UHyperTwistTrainingHigherDimensionalRuntimeLibrary::TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
SceneContext,
|
||||
OutEnvelope
|
||||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope& OutEnvelope
|
||||
)
|
||||
{
|
||||
return UHyperTwistTrainingHigherDimensionalRuntimeLibrary::TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
SceneContext,
|
||||
OutEnvelope
|
||||
);
|
||||
}
|
||||
|
||||
bool UHyperTwistTrainingRuntimeLibrary::TryGetActiveHigherDimensionalRuntimeHostSurface(
|
||||
UObject* WorldContextObject,
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeHostSurface& OutHostSurface
|
||||
|
|
|
|||
|
|
@ -768,6 +768,80 @@ namespace HyperTwistTrainingSubsystemInternal
|
|||
return true;
|
||||
}
|
||||
|
||||
bool TryApplyGeneratedModeSelectorChoiceToRunState(
|
||||
FHyperTwistTrainingRunState& InOutRunState,
|
||||
const FString& SelectorId,
|
||||
const FString& SelectedValue,
|
||||
const FString& DisplayValue,
|
||||
FString& OutBlockedReason
|
||||
)
|
||||
{
|
||||
OutBlockedReason.Reset();
|
||||
|
||||
if (!InOutRunState.IsStructurallyValid() || SelectedValue.IsEmpty())
|
||||
{
|
||||
OutBlockedReason = TEXT("Generated-mode selector application requires a structurally valid active run.");
|
||||
return false;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSurface RuntimeSurface;
|
||||
if (!UHyperTwistTrainingCatalogLibrary::TryGetImportedRuntimeSurfaceFromDeck(
|
||||
InOutRunState.ActiveDeck,
|
||||
RuntimeSurface)
|
||||
|| !RuntimeSurface.SurfaceKind.Equals(TEXT("generated-mode"), ESearchCase::IgnoreCase))
|
||||
{
|
||||
OutBlockedReason = TEXT("Generated-mode selector application requires an imported generated-mode surface.");
|
||||
return false;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSelector Selector;
|
||||
if (!UHyperTwistTrainingCatalogLibrary::TryGetImportedRuntimeSelectorFromDeck(
|
||||
InOutRunState.ActiveDeck,
|
||||
SelectorId,
|
||||
Selector))
|
||||
{
|
||||
OutBlockedReason = FString::Printf(
|
||||
TEXT("Generated-mode selector application could not resolve selector %s."),
|
||||
*SelectorId
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InOutRunState.ImportedRuntimeSelectionState.IsStructurallyValid())
|
||||
{
|
||||
InOutRunState.ImportedRuntimeSelectionState.SurfaceId = RuntimeSurface.SurfaceId;
|
||||
InOutRunState.ImportedRuntimeSelectionState.SurfaceKind = RuntimeSurface.SurfaceKind;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSelectorChoice* ExistingChoice =
|
||||
InOutRunState.ImportedRuntimeSelectionState.SelectorChoices.FindByPredicate(
|
||||
[&SelectorId](const FHyperTwistTrainingImportedRuntimeSelectorChoice& Candidate)
|
||||
{
|
||||
return Candidate.SelectorId == SelectorId;
|
||||
}
|
||||
);
|
||||
if (ExistingChoice != nullptr)
|
||||
{
|
||||
ExistingChoice->SelectorBinding = Selector.SelectorBinding;
|
||||
ExistingChoice->SelectedValue = SelectedValue;
|
||||
ExistingChoice->DisplayValue = DisplayValue.IsEmpty() ? SelectedValue : DisplayValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
FHyperTwistTrainingImportedRuntimeSelectorChoice Choice;
|
||||
Choice.SelectorId = SelectorId;
|
||||
Choice.SelectorBinding = Selector.SelectorBinding;
|
||||
Choice.SelectedValue = SelectedValue;
|
||||
Choice.DisplayValue = DisplayValue.IsEmpty() ? SelectedValue : DisplayValue;
|
||||
InOutRunState.ImportedRuntimeSelectionState.SelectorChoices.Add(MoveTemp(Choice));
|
||||
}
|
||||
|
||||
InOutRunState.ActiveDeck.Tags.AddUnique(TEXT("runtime-surface:generated-choice-applied"));
|
||||
InOutRunState.ActiveDeck.Tags.AddUnique(FString::Printf(TEXT("selector:%s"), *SelectorId.ToLower()));
|
||||
InOutRunState.ActiveDeck.Tags.AddUnique(FString::Printf(TEXT("selector-choice:%s"), *SelectedValue.ToLower()));
|
||||
return true;
|
||||
}
|
||||
|
||||
TArray<FString> ExtractCaseIdsFromDeck(const FHyperTwistTrainingDeck& Deck)
|
||||
{
|
||||
TArray<FString> CaseIds;
|
||||
|
|
@ -9750,20 +9824,29 @@ bool UHyperTwistTrainingSubsystem::TryStartHigherDimensionalLaunchSurface(
|
|||
for (const FHyperTwistTrainingImportedRuntimeSelectorChoice& Choice :
|
||||
SessionSurface.DefaultSelectorChoices)
|
||||
{
|
||||
OutRunState = ApplyActiveImportedGeneratedModeSelectorChoice(
|
||||
Choice.SelectorId,
|
||||
Choice.SelectedValue,
|
||||
Choice.DisplayValue
|
||||
);
|
||||
if (!OutRunState.IsStructurallyValid())
|
||||
if (!HyperTwistTrainingSubsystemInternal::TryApplyGeneratedModeSelectorChoiceToRunState(
|
||||
ActiveRunState,
|
||||
Choice.SelectorId,
|
||||
Choice.SelectedValue,
|
||||
Choice.DisplayValue,
|
||||
OutBlockedReason))
|
||||
{
|
||||
OutBlockedReason = FString::Printf(
|
||||
TEXT("Higher-dimensional launch surface could not apply default selector %s."),
|
||||
*Choice.SelectorId
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
RefreshSummary();
|
||||
TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState(
|
||||
TrainingRepositoryState,
|
||||
ActiveRunState
|
||||
);
|
||||
RefreshRepositoryViews();
|
||||
OutRunState = ActiveRunState;
|
||||
if (!OutRunState.IsStructurallyValid())
|
||||
{
|
||||
OutBlockedReason =
|
||||
TEXT("Higher-dimensional launch surface could not persist a structurally valid selector posture.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!bExecuteGeneratedModeLaunchRequest)
|
||||
{
|
||||
|
|
@ -9840,56 +9923,16 @@ FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::ApplyActiveImportedGen
|
|||
return FHyperTwistTrainingRunState();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSurface RuntimeSurface;
|
||||
if (!UHyperTwistTrainingCatalogLibrary::TryGetImportedRuntimeSurfaceFromDeck(
|
||||
ActiveRunState.ActiveDeck,
|
||||
RuntimeSurface)
|
||||
|| !RuntimeSurface.SurfaceKind.Equals(TEXT("generated-mode"), ESearchCase::IgnoreCase))
|
||||
{
|
||||
return FHyperTwistTrainingRunState();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSelector Selector;
|
||||
if (!UHyperTwistTrainingCatalogLibrary::TryGetImportedRuntimeSelectorFromDeck(
|
||||
ActiveRunState.ActiveDeck,
|
||||
FString BlockedReason;
|
||||
if (!HyperTwistTrainingSubsystemInternal::TryApplyGeneratedModeSelectorChoiceToRunState(
|
||||
ActiveRunState,
|
||||
SelectorId,
|
||||
Selector))
|
||||
SelectedValue,
|
||||
DisplayValue,
|
||||
BlockedReason))
|
||||
{
|
||||
return FHyperTwistTrainingRunState();
|
||||
}
|
||||
|
||||
if (!ActiveRunState.ImportedRuntimeSelectionState.IsStructurallyValid())
|
||||
{
|
||||
ActiveRunState.ImportedRuntimeSelectionState.SurfaceId = RuntimeSurface.SurfaceId;
|
||||
ActiveRunState.ImportedRuntimeSelectionState.SurfaceKind = RuntimeSurface.SurfaceKind;
|
||||
}
|
||||
|
||||
FHyperTwistTrainingImportedRuntimeSelectorChoice* ExistingChoice =
|
||||
ActiveRunState.ImportedRuntimeSelectionState.SelectorChoices.FindByPredicate(
|
||||
[&SelectorId](const FHyperTwistTrainingImportedRuntimeSelectorChoice& Candidate)
|
||||
{
|
||||
return Candidate.SelectorId == SelectorId;
|
||||
}
|
||||
);
|
||||
if (ExistingChoice != nullptr)
|
||||
{
|
||||
ExistingChoice->SelectorBinding = Selector.SelectorBinding;
|
||||
ExistingChoice->SelectedValue = SelectedValue;
|
||||
ExistingChoice->DisplayValue = DisplayValue.IsEmpty() ? SelectedValue : DisplayValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
FHyperTwistTrainingImportedRuntimeSelectorChoice Choice;
|
||||
Choice.SelectorId = SelectorId;
|
||||
Choice.SelectorBinding = Selector.SelectorBinding;
|
||||
Choice.SelectedValue = SelectedValue;
|
||||
Choice.DisplayValue = DisplayValue.IsEmpty() ? SelectedValue : DisplayValue;
|
||||
ActiveRunState.ImportedRuntimeSelectionState.SelectorChoices.Add(MoveTemp(Choice));
|
||||
}
|
||||
|
||||
ActiveRunState.ActiveDeck.Tags.AddUnique(TEXT("runtime-surface:generated-choice-applied"));
|
||||
ActiveRunState.ActiveDeck.Tags.AddUnique(FString::Printf(TEXT("selector:%s"), *SelectorId.ToLower()));
|
||||
ActiveRunState.ActiveDeck.Tags.AddUnique(FString::Printf(TEXT("selector-choice:%s"), *SelectedValue.ToLower()));
|
||||
RefreshSummary();
|
||||
TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState(
|
||||
TrainingRepositoryState,
|
||||
|
|
|
|||
|
|
@ -1046,6 +1046,200 @@ struct FHyperTwistTrainingHigherDimensionalInteractiveSceneCatalog
|
|||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString EnvelopeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString SchemaVersion = TEXT("phase6c/magic120cell-interactive-scene-state/v1");
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString SessionSurfaceId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ActivationProfileId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PuzzleId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString RuntimeModeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PersistenceBoundaryId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ViewProfileContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ProjectionProfile;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
float ProjectionDepth = 4.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PuzzleTypeModeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString SymmetryPresetId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString VisibilityPresetId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString FocusPresetId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PersistenceFormatId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString TwistHistoryFormatId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ViewRotationPolicyId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> VisibleGroupIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> PersistenceSurfaceTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bSolved = true;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bScrambled = false;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bCenterCellPinned = true;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !EnvelopeId.IsEmpty()
|
||||
&& !SchemaVersion.IsEmpty()
|
||||
&& !SessionSurfaceId.IsEmpty()
|
||||
&& !ActivationProfileId.IsEmpty()
|
||||
&& !PuzzleId.IsEmpty()
|
||||
&& !RuntimeModeId.IsEmpty()
|
||||
&& !PersistenceBoundaryId.IsEmpty()
|
||||
&& !ViewProfileContractId.IsEmpty()
|
||||
&& !ProjectionProfile.IsEmpty()
|
||||
&& ProjectionDepth > 0.0f
|
||||
&& !PuzzleTypeModeId.IsEmpty()
|
||||
&& !SymmetryPresetId.IsEmpty()
|
||||
&& !VisibilityPresetId.IsEmpty()
|
||||
&& !FocusPresetId.IsEmpty()
|
||||
&& !PersistenceFormatId.IsEmpty()
|
||||
&& !TwistHistoryFormatId.IsEmpty()
|
||||
&& !ViewRotationPolicyId.IsEmpty()
|
||||
&& VisibleGroupIds.Num() > 0
|
||||
&& PersistenceSurfaceTags.Num() > 0;
|
||||
}
|
||||
};
|
||||
|
||||
USTRUCT(BlueprintType)
|
||||
struct FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString EnvelopeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString SchemaVersion = TEXT("phase6c/magiccube5d-interactive-scene-state/v1");
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString SessionSurfaceId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ActivationProfileId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PuzzleId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString RuntimeModeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PersistenceBoundaryId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ViewProfileContractId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString ProjectionProfile;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
float ProjectionDepth = 5.0f;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PuzzleOrder = 3;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString StereoModeId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString VisibilityPresetId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString FocusPresetId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString AccentProfileId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString PersistenceFormatId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString TwistHistoryFormatId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
FString MacroFormatId;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> VisibleFaceIds;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
TArray<FString> SolvedProgressSurfaceTags;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bSolved = true;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bScrambled = false;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
bool bStereoEnabled = false;
|
||||
|
||||
bool IsStructurallyValid() const
|
||||
{
|
||||
return !EnvelopeId.IsEmpty()
|
||||
&& !SchemaVersion.IsEmpty()
|
||||
&& !SessionSurfaceId.IsEmpty()
|
||||
&& !ActivationProfileId.IsEmpty()
|
||||
&& !PuzzleId.IsEmpty()
|
||||
&& !RuntimeModeId.IsEmpty()
|
||||
&& !PersistenceBoundaryId.IsEmpty()
|
||||
&& !ViewProfileContractId.IsEmpty()
|
||||
&& !ProjectionProfile.IsEmpty()
|
||||
&& ProjectionDepth > 0.0f
|
||||
&& PuzzleOrder > 0
|
||||
&& !StereoModeId.IsEmpty()
|
||||
&& !VisibilityPresetId.IsEmpty()
|
||||
&& !FocusPresetId.IsEmpty()
|
||||
&& !AccentProfileId.IsEmpty()
|
||||
&& !PersistenceFormatId.IsEmpty()
|
||||
&& !TwistHistoryFormatId.IsEmpty()
|
||||
&& !MacroFormatId.IsEmpty()
|
||||
&& VisibleFaceIds.Num() > 0
|
||||
&& SolvedProgressSurfaceTags.Num() > 0;
|
||||
}
|
||||
};
|
||||
|
||||
UCLASS()
|
||||
class UNREALHYPERTWIST_API UHyperTwistTrainingHigherDimensionalRuntimeLibrary : public UBlueprintFunctionLibrary
|
||||
{
|
||||
|
|
@ -1186,4 +1380,16 @@ public:
|
|||
const FString& PuzzleId,
|
||||
FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface& OutSceneSurface
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|HigherDimensional")
|
||||
static bool TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope& OutEnvelope
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|HigherDimensional")
|
||||
static bool TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope& OutEnvelope
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3522,6 +3522,18 @@ public:
|
|||
FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface& OutSceneSurface
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|HigherDimensional")
|
||||
static bool TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope& OutEnvelope
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|HigherDimensional")
|
||||
static bool TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
const FHyperTwistSimulationSceneContext& SceneContext,
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope& OutEnvelope
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintCallable, Category = "HyperTwist|Training|HigherDimensional", meta = (WorldContext = "WorldContextObject"))
|
||||
static bool TryGetActiveHigherDimensionalRuntimeHostSurface(
|
||||
UObject* WorldContextObject,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "Engine/GameInstance.h"
|
||||
#include "Misc/AutomationTest.h"
|
||||
#include "Misc/PackageName.h"
|
||||
|
||||
#include "HyperTwistSimulation/HyperTwistSimulationLibrary.h"
|
||||
#include "HyperTwistTraining/HyperTwistTrainingLibrary.h"
|
||||
|
|
@ -138,18 +139,22 @@ bool FHyperTwistHigherDimensionalPhase6CHostCatalogTest::RunTest(const FString&
|
|||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell host surface must still resolve to the shared effective host."),
|
||||
TEXT("The Magic120Cell host surface must now resolve to the dedicated effective host."),
|
||||
Magic120CellHostSurface.EffectiveHostMapPath,
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_ClassicTraining")
|
||||
);
|
||||
TestFalse(
|
||||
TEXT("The Magic120Cell host surface must not claim the dedicated host map is authored yet."),
|
||||
Magic120CellHostSurface.bDedicatedFamilyHostMapAuthored
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell host surface must keep the shared-map fallback posture explicit."),
|
||||
TEXT("The Magic120Cell host surface must now claim the dedicated host map is authored."),
|
||||
Magic120CellHostSurface.bDedicatedFamilyHostMapAuthored
|
||||
);
|
||||
TestFalse(
|
||||
TEXT("The Magic120Cell host surface must no longer depend on the shared-map fallback posture."),
|
||||
Magic120CellHostSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell dedicated host map asset must exist."),
|
||||
FPackageName::DoesPackageExist(TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining"))
|
||||
);
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalRuntimeHostSurface MagicCube5DHostSurface;
|
||||
TestTrue(
|
||||
|
|
@ -165,8 +170,20 @@ bool FHyperTwistHigherDimensionalPhase6CHostCatalogTest::RunTest(const FString&
|
|||
TEXT("phase6c/magiccube5d/dedicated-training-map-host")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D host surface must carry shared-host fallback tags."),
|
||||
MagicCube5DHostSurface.HostTags.Contains(TEXT("effective-host:shared-training-map"))
|
||||
TEXT("The MagicCube5D host surface must carry dedicated-host effective tags."),
|
||||
MagicCube5DHostSurface.HostTags.Contains(TEXT("effective-host:dedicated-family-map"))
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D host surface must now claim the dedicated host map is authored."),
|
||||
MagicCube5DHostSurface.bDedicatedFamilyHostMapAuthored
|
||||
);
|
||||
TestFalse(
|
||||
TEXT("The MagicCube5D host surface must no longer depend on the shared-map fallback posture."),
|
||||
MagicCube5DHostSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D dedicated host map asset must exist."),
|
||||
FPackageName::DoesPackageExist(TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining"))
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -201,17 +218,17 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchCatalogTest::RunTest(const FString
|
|||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell launch surface must stay on the current shared training map host."),
|
||||
TEXT("The Magic120Cell launch surface must now use the dedicated family training map host."),
|
||||
Magic120CellLaunchSurface.HostMapPath,
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_ClassicTraining")
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell launch surface must resolve through the explicit host surface seam."),
|
||||
Magic120CellLaunchSurface.HostSurfaceId,
|
||||
TEXT("phase6c/magic120cell/runtime-host-surface")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell launch surface must remain flagged as a shared-map fallback until dedicated assets land."),
|
||||
TestFalse(
|
||||
TEXT("The Magic120Cell launch surface must no longer be flagged as a shared-map fallback."),
|
||||
Magic120CellLaunchSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
TestEqual(
|
||||
|
|
@ -253,6 +270,11 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchCatalogTest::RunTest(const FString
|
|||
MagicCube5DLaunchSurface.HostSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/runtime-host-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D launch surface must now use the dedicated family training map host."),
|
||||
MagicCube5DLaunchSurface.HostMapPath,
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D launch surface must preserve three default selector choices."),
|
||||
MagicCube5DLaunchSurface.DefaultSelectorChoices.Num(),
|
||||
|
|
@ -305,8 +327,8 @@ bool FHyperTwistHigherDimensionalPhase6CViewContextCatalogTest::RunTest(const FS
|
|||
Magic120CellViewContextSurface.HostSurfaceId,
|
||||
TEXT("phase6c/magic120cell/runtime-host-surface")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell view-context surface must stay on the shared training-map fallback."),
|
||||
TestFalse(
|
||||
TEXT("The Magic120Cell view-context surface must no longer stay on the shared training-map fallback."),
|
||||
Magic120CellViewContextSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
|
||||
|
|
@ -370,14 +392,14 @@ bool FHyperTwistHigherDimensionalPhase6CSessionCatalogTest::RunTest(const FStrin
|
|||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell session surface must preserve the launch surface linkage."),
|
||||
TEXT("The Magic120Cell session surface must preserve the dedicated launch surface linkage."),
|
||||
Magic120CellSessionSurface.LaunchSurfaceId,
|
||||
TEXT("phase6c/magic120cell/shared-training-launch-surface")
|
||||
TEXT("phase6c/magic120cell/dedicated-training-launch-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell session surface must preserve the view-context linkage."),
|
||||
TEXT("The Magic120Cell session surface must preserve the dedicated view-context linkage."),
|
||||
Magic120CellSessionSurface.ViewContextSurfaceId,
|
||||
TEXT("phase6c/magic120cell/shared-training-view-context-surface")
|
||||
TEXT("phase6c/magic120cell/dedicated-training-view-context-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell session surface must merge all unique launch and view selector families."),
|
||||
|
|
@ -403,14 +425,14 @@ bool FHyperTwistHigherDimensionalPhase6CSessionCatalogTest::RunTest(const FStrin
|
|||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D session surface must preserve the launch surface linkage."),
|
||||
TEXT("The MagicCube5D session surface must preserve the dedicated launch surface linkage."),
|
||||
MagicCube5DSessionSurface.LaunchSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-launch-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-launch-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D session surface must preserve the view-context linkage."),
|
||||
TEXT("The MagicCube5D session surface must preserve the dedicated view-context linkage."),
|
||||
MagicCube5DSessionSurface.ViewContextSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-view-context-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-view-context-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D session surface must merge duplicate stereo and visibility selectors rather than duplicating them."),
|
||||
|
|
@ -423,9 +445,9 @@ bool FHyperTwistHigherDimensionalPhase6CSessionCatalogTest::RunTest(const FStrin
|
|||
5
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D session surface must stay on the shared host fallback."),
|
||||
TEXT("The MagicCube5D session surface must now stay on the dedicated family host."),
|
||||
MagicCube5DSessionSurface.HostMapPath,
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_ClassicTraining")
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining")
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -462,14 +484,14 @@ bool FHyperTwistHigherDimensionalPhase6CInteractiveSceneCatalogTest::RunTest(con
|
|||
TestEqual(
|
||||
TEXT("The Magic120Cell interactive scene surface must preserve the session-surface linkage."),
|
||||
Magic120CellSceneSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magic120cell/shared-training-session-surface")
|
||||
TEXT("phase6c/magic120cell/dedicated-training-session-surface")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell interactive scene surface must remain renderable."),
|
||||
UHyperTwistSimulationLibrary::CanRenderSceneContext(Magic120CellSceneSurface.SceneContext)
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell interactive scene surface must keep the placeholder-state posture explicit."),
|
||||
TestFalse(
|
||||
TEXT("The Magic120Cell interactive scene surface must no longer keep the placeholder-state posture."),
|
||||
Magic120CellSceneSurface.bUsesPlaceholderStateEnvelope
|
||||
);
|
||||
TestEqual(
|
||||
|
|
@ -487,6 +509,39 @@ bool FHyperTwistHigherDimensionalPhase6CInteractiveSceneCatalogTest::RunTest(con
|
|||
Magic120CellSceneSurface.SceneContext.RenderStateProfile,
|
||||
TEXT("magic120cell-center-cell-focus-scene-runtime-v1")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell interactive scene surface must keep the family-owned encoding profile."),
|
||||
Magic120CellSceneSurface.SceneContext.PuzzleState.StateEncoding.EncodingProfile,
|
||||
TEXT("magic120cell-family-owned-scene-state-v1")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell interactive scene surface must carry the family-owned scene-state tag."),
|
||||
Magic120CellSceneSurface.SceneTags.Contains(TEXT("scene-state:family-owned-envelope"))
|
||||
);
|
||||
|
||||
FHyperTwistTrainingMagic120CellInteractiveSceneStateEnvelope Magic120CellEnvelope;
|
||||
TestTrue(
|
||||
TEXT("The Magic120Cell interactive scene surface must decode to a family-owned scene-state envelope."),
|
||||
UHyperTwistTrainingRuntimeLibrary::TryDecodeMagic120CellInteractiveSceneStateEnvelope(
|
||||
Magic120CellSceneSurface.SceneContext,
|
||||
Magic120CellEnvelope
|
||||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell interactive scene-state envelope must preserve the persistence boundary."),
|
||||
Magic120CellEnvelope.PersistenceBoundaryId,
|
||||
TEXT("magic120cell-persistence-boundary")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell interactive scene-state envelope must preserve the view-profile contract."),
|
||||
Magic120CellEnvelope.ViewProfileContractId,
|
||||
TEXT("magic120cell-focus-view-profile")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The Magic120Cell interactive scene-state envelope must keep the full puzzle mode."),
|
||||
Magic120CellEnvelope.PuzzleTypeModeId,
|
||||
TEXT("full-puzzle-default-mode")
|
||||
);
|
||||
|
||||
FHyperTwistTrainingHigherDimensionalInteractiveSceneSurface MagicCube5DSceneSurface;
|
||||
TestTrue(
|
||||
|
|
@ -499,14 +554,14 @@ bool FHyperTwistHigherDimensionalPhase6CInteractiveSceneCatalogTest::RunTest(con
|
|||
TestEqual(
|
||||
TEXT("The MagicCube5D interactive scene surface must preserve the session-surface linkage."),
|
||||
MagicCube5DSceneSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-session-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-session-surface")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D interactive scene surface must remain renderable."),
|
||||
UHyperTwistSimulationLibrary::CanRenderSceneContext(MagicCube5DSceneSurface.SceneContext)
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D interactive scene surface must keep the placeholder-state posture explicit."),
|
||||
TestFalse(
|
||||
TEXT("The MagicCube5D interactive scene surface must no longer keep the placeholder-state posture."),
|
||||
MagicCube5DSceneSurface.bUsesPlaceholderStateEnvelope
|
||||
);
|
||||
TestEqual(
|
||||
|
|
@ -525,13 +580,37 @@ bool FHyperTwistHigherDimensionalPhase6CInteractiveSceneCatalogTest::RunTest(con
|
|||
TEXT("magiccube5d-order3-scene-runtime-v1")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D interactive scene surface must keep the family-specific placeholder encoding profile."),
|
||||
TEXT("The MagicCube5D interactive scene surface must keep the family-owned encoding profile."),
|
||||
MagicCube5DSceneSurface.SceneContext.PuzzleState.StateEncoding.EncodingProfile,
|
||||
TEXT("phase6c/magiccube5d-interactive-scene-envelope-v1")
|
||||
TEXT("magiccube5d-family-owned-scene-state-v1")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D interactive scene surface must carry the explicit placeholder-scene tag."),
|
||||
MagicCube5DSceneSurface.SceneTags.Contains(TEXT("scene-state:placeholder-envelope"))
|
||||
TEXT("The MagicCube5D interactive scene surface must carry the family-owned scene-state tag."),
|
||||
MagicCube5DSceneSurface.SceneTags.Contains(TEXT("scene-state:family-owned-envelope"))
|
||||
);
|
||||
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope MagicCube5DEnvelope;
|
||||
TestTrue(
|
||||
TEXT("The MagicCube5D interactive scene surface must decode to a family-owned scene-state envelope."),
|
||||
UHyperTwistTrainingRuntimeLibrary::TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
MagicCube5DSceneSurface.SceneContext,
|
||||
MagicCube5DEnvelope
|
||||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D interactive scene-state envelope must preserve the persistence boundary."),
|
||||
MagicCube5DEnvelope.PersistenceBoundaryId,
|
||||
TEXT("magiccube5d-persistence-boundary")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D interactive scene-state envelope must preserve the macro format."),
|
||||
MagicCube5DEnvelope.MacroFormatId,
|
||||
TEXT("magiccube5d/macros-sidecar-v1")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The MagicCube5D interactive scene-state envelope must preserve the order-three family ownership."),
|
||||
MagicCube5DEnvelope.PuzzleOrder,
|
||||
3
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -826,12 +905,12 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the shared host map route."),
|
||||
TEXT("The launch-execution proof must preserve the dedicated host map route."),
|
||||
LaunchSurface.HostMapPath,
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_ClassicTraining")
|
||||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The launch-execution proof must keep the shared-map fallback posture explicit."),
|
||||
TestFalse(
|
||||
TEXT("The launch-execution proof must no longer keep the shared-map fallback posture."),
|
||||
LaunchSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
TestEqual(
|
||||
|
|
@ -842,7 +921,7 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the resolved launch surface id."),
|
||||
LaunchSurface.LaunchSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-launch-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-launch-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the resolved host surface id."),
|
||||
|
|
@ -864,12 +943,12 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TEXT("/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the effective shared host route."),
|
||||
TEXT("The launch-execution proof must preserve the effective dedicated host route."),
|
||||
HostSurface.EffectiveHostMapRouteId,
|
||||
TEXT("phase6c/shared-training-map-host")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-map-host")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The launch-execution proof must keep the shared-host fallback posture explicit."),
|
||||
TestFalse(
|
||||
TEXT("The launch-execution proof must no longer keep the shared-host fallback posture explicit."),
|
||||
HostSurface.bUsesSharedTrainingMapFallback
|
||||
);
|
||||
|
||||
|
|
@ -884,7 +963,7 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the resolved view-context surface id."),
|
||||
ViewContextSurface.ViewContextSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-view-context-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-view-context-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the dedicated view-profile contract."),
|
||||
|
|
@ -908,7 +987,7 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the resolved session surface id."),
|
||||
SessionSurface.SessionSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/shared-training-session-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-session-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the merged session selector count."),
|
||||
|
|
@ -918,7 +997,7 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TestTrue(
|
||||
TEXT("The launch-execution proof must record the explicit higher-dimensional session surface in runtime lineage."),
|
||||
StartedRunState.ActiveDeck.ImportedRuntimeSurface.OriginPaths.Contains(
|
||||
TEXT("phase6c/magiccube5d/shared-training-session-surface")
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-session-surface")
|
||||
)
|
||||
);
|
||||
|
||||
|
|
@ -947,10 +1026,10 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TestEqual(
|
||||
TEXT("The launch-execution proof must preserve the interactive-scene encoding profile."),
|
||||
InteractiveSceneSurface.SceneContext.PuzzleState.StateEncoding.EncodingProfile,
|
||||
TEXT("phase6c/magiccube5d-interactive-scene-envelope-v1")
|
||||
TEXT("magiccube5d-family-owned-scene-state-v1")
|
||||
);
|
||||
TestTrue(
|
||||
TEXT("The launch-execution proof must keep the placeholder interactive-scene posture explicit."),
|
||||
TestFalse(
|
||||
TEXT("The launch-execution proof must no longer keep the placeholder interactive-scene posture."),
|
||||
InteractiveSceneSurface.bUsesPlaceholderStateEnvelope
|
||||
);
|
||||
TestTrue(
|
||||
|
|
@ -965,6 +1044,25 @@ bool FHyperTwistHigherDimensionalPhase6CLaunchExecutionTest::RunTest(const FStri
|
|||
TEXT("phase6c/magiccube5d/interactive-scene-context")
|
||||
)
|
||||
);
|
||||
|
||||
FHyperTwistTrainingMagicCube5DInteractiveSceneStateEnvelope MagicCube5DEnvelope;
|
||||
TestTrue(
|
||||
TEXT("The launch-execution proof must decode the active MagicCube5D scene-state envelope."),
|
||||
UHyperTwistTrainingRuntimeLibrary::TryDecodeMagicCube5DInteractiveSceneStateEnvelope(
|
||||
InteractiveSceneSurface.SceneContext,
|
||||
MagicCube5DEnvelope
|
||||
)
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must keep the dedicated session linkage inside the decoded envelope."),
|
||||
MagicCube5DEnvelope.SessionSurfaceId,
|
||||
TEXT("phase6c/magiccube5d/dedicated-training-session-surface")
|
||||
);
|
||||
TestEqual(
|
||||
TEXT("The launch-execution proof must keep the compact twist-history format inside the decoded envelope."),
|
||||
MagicCube5DEnvelope.TwistHistoryFormatId,
|
||||
TEXT("magiccube5d/compact-twist-token-v1")
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -363,8 +363,10 @@ Closure read:
|
|||
- `2026-06-18` Windows checkpoint: the same isolated worktree `C:\HyperTwist_worktrees\phase10validate` rebuilt the widened session-surface slice with `Result: Succeeded` / UnrealBuildTool `Total execution time: 3541.98 seconds`, and targeted `UnrealEditor-Cmd` automation found `10` tests under `HyperTwist.FirstParty.HigherDimensional.Phase6C` and passed all `10`, including the new `SessionCatalog`; `LaunchExecution` emitted `Ignoring very large delta of 573.84 seconds`, so that longer quiet interval also remains confirmed as known-good on this lane rather than a corruption signal
|
||||
- `2026-06-18` continuation proof: current code now adds an explicit higher-dimensional interactive-scene catalog that promotes the landed `Magic120Cell` / `MagicCube5D` runtime-session seams into family-owned scene-context contracts, mirrors those scene surfaces through the training runtime library plus the live training panel/session-actor caches, and upgrades generated-mode lineage plus source attribution to record the explicit interactive scene surface and scene-context ids while dedicated maps and family-owned runtime state remain placeholder-backed
|
||||
- `2026-06-18` Windows checkpoint: the same isolated worktree `C:\HyperTwist_worktrees\phase10validate` rebuilt the widened interactive-scene slice with `Result: Succeeded` / UnrealBuildTool `Total execution time: 3528.60 seconds`, and targeted `UnrealEditor-Cmd` automation found `11` tests under `HyperTwist.FirstParty.HigherDimensional.Phase6C` and passed all `11`, including the new `InteractiveSceneCatalog`; `LaunchExecution` emitted `Ignoring very large delta of 479.46 seconds`, so that quiet interval also remains confirmed as known-good on this lane rather than a corruption signal
|
||||
- [ ] Replace the current placeholder interactive-scene envelopes with full owned `120-cell` and `5D` simulation-state, projection, and persistence ownership in Unreal above the landed higher-dimensional scene-context catalog
|
||||
- [ ] Replace the current shared-map execution bridge with full owned dedicated-family interactive launch, map, and persistence surfaces for `120-cell` and `5D`
|
||||
- `2026-06-18` continuation proof: current code now replaces those placeholder `Magic120Cell` / `MagicCube5D` interactive-scene envelopes with family-owned runtime-state, projection, and persistence payloads, adds dedicated-family training-map assets plus dedicated host/launch/view-context/session surfaces, exposes explicit scene-envelope decoders through the runtime library, and batches start-time selector posture application so generated-mode launch execution no longer rebuilds repository views once per default selector
|
||||
- `2026-06-18` Windows checkpoint: the same isolated worktree `C:\HyperTwist_worktrees\phase10validate` rebuilt the dedicated-family runtime-state slice with `Result: Succeeded` / UnrealBuildTool `Total execution time: 1648.33 seconds`; after the selector-batching hardening rebuild with `Result: Succeeded` / UnrealBuildTool `Total execution time: 93.44 seconds`, targeted `UnrealEditor-Cmd` automation exported `C:\HyperTwist_worktrees\phase10validate\UnrealHyperTwist\Saved\AutomationReports\Phase6C-DedicatedFamily-Optimized\index.json` with all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests passing, `totalDuration` `196.08790588378906`, and `LaunchExecution` duration `195.65591430664062`; the commandlet still emitted `Ignoring very large delta of 195.58 seconds`, but that quiet interval is materially down from the immediately prior `385.00 seconds` proof on this lane while retaining `**** TEST COMPLETE. EXIT CODE: 0 ****`
|
||||
- [x] Replace the current placeholder interactive-scene envelopes with full owned `120-cell` and `5D` simulation-state, projection, and persistence ownership in Unreal above the landed higher-dimensional scene-context catalog
|
||||
- [x] Replace the current shared-map execution bridge with full owned dedicated-family interactive launch, map, and persistence surfaces for `120-cell` and `5D`
|
||||
|
||||
**Estimated actions:** 100–200
|
||||
**Estimated time:** 1–2 weeks
|
||||
|
|
@ -564,4 +566,13 @@ Recommended next widening order:
|
|||
ids, and revalidated the widened slice on `localhost:22022` with `11`
|
||||
passing `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including
|
||||
the new `InteractiveSceneCatalog`
|
||||
- `2026-06-18`: the next `Phase 6C` continuation then closed the previously
|
||||
open ownership gap by replacing the placeholder `Magic120Cell` /
|
||||
`MagicCube5D` interactive-scene envelopes with family-owned runtime-state,
|
||||
projection, and persistence payloads, swapping the shared-map bridge for
|
||||
dedicated-family training-map assets plus dedicated host/launch/view-context/
|
||||
session surfaces, and tightening generated-mode selector application so the
|
||||
rerun on `localhost:22022` still passed all `11`
|
||||
`HyperTwist.FirstParty.HigherDimensional.Phase6C` tests while dropping the
|
||||
long `LaunchExecution` quiet interval from `385.00` to `195.58` seconds
|
||||
- later classic-cube polish only when a concrete presentation gap remains, not as the default next move
|
||||
|
|
|
|||
|
|
@ -268,10 +268,10 @@ repo.
|
|||
| Dedicated `5D` family runtime profile and persistence boundary | Implemented now | landed `MagicCube5D` packet | Current bounded family-specific widening is live beneath the retained `Hyperspeedcube` runtime anchor. |
|
||||
| Dedicated `5D` projection and focus view profiles | Implemented now | landed `MagicCube5D` `Phase 6R-AM` | Current bounded settings-derived projection-distance, stereo posture, per-face visibility, accent emphasis, and fifth-axis focus posture are live above the landed dedicated `5D` runtime-profile seam without widening into renderer, host-shell, or generic hyper-runtime ownership. |
|
||||
| Higher-dimensional clean-room runtime activation catalog | Implemented now | landed `Phase 6C` activation packet | First-party current code now resolves canonical `polychoron/magic120cell` and `hypercube/magiccube5d/order3` puzzle definitions, default launch posture, primary donor-boundary contract ids, and the no-external-process clean-room stance above the retained `Magic120Cell` / `MagicCube5D` contracts and the retained `Hyperspeedcube` runtime anchor. The current continuation also resolves the active higher-dimensional activation profile from live training run state through both puzzle-id and imported generated-mode `RuntimeModeId` paths, then mirrors that resolved profile through the training runtime library plus the training panel/session caches; the primary `localhost:22022` Windows lane passed all `5` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests on `2026-06-13`. |
|
||||
| Higher-dimensional shared-map launch and view-context execution bridge | Implemented now | landed `Phase 6C` continuation packet | First-party current code now bundles higher-dimensional launch surfaces and view-context surfaces for `Magic120Cell` and `MagicCube5D`, resolves those surfaces through the training runtime library plus the live training panel/session-actor caches, and lets the training subsystem start the shared-map seed run, apply default selector posture, persist the generated-mode launch request, and start the owned generated run without widening into external-process ownership. After recovering an interrupted follow-up, the primary reverse-SSH `localhost:22022` Windows lane rebuilt the cleaned slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 124.81 seconds`, and passed all `8` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including `LaunchCatalog`, `ViewContextCatalog`, `LaunchExecution`, and `RunStateActivationResolution`; the quiet `LaunchExecution` interval is now known to be healthy rather than a stalled commandlet. |
|
||||
| Higher-dimensional explicit dedicated-host seam | Implemented now | landed `Phase 6C` host-surface continuation packet | First-party current code now records the preferred dedicated-family `Magic120Cell` / `MagicCube5D` host-map targets in an explicit higher-dimensional host-surface catalog while keeping the current shared training map as the effective runtime fallback, mirrors that resolved host seam through the training runtime library plus the panel/session caches, and threads the host-surface id into the launch/view-context surfaces and generated-mode lineage. The primary reverse-SSH `localhost:22022` Windows lane rebuilt this widened slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 2858.02 seconds`, and passed all `9` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including the new `HostCatalog`; the long `LaunchExecution` quiet interval remained known-good. |
|
||||
| Higher-dimensional initial shared-map launch and view-context execution bridge | Implemented now | landed `Phase 6C` continuation packet | First-party current code first bundled higher-dimensional launch surfaces and view-context surfaces for `Magic120Cell` and `MagicCube5D`, resolved those surfaces through the training runtime library plus the live training panel/session-actor caches, and let the training subsystem start the shared-map seed run, apply default selector posture, persist the generated-mode launch request, and start the owned generated run without widening into external-process ownership. After recovering an interrupted follow-up, the primary reverse-SSH `localhost:22022` Windows lane rebuilt that cleaned slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 124.81 seconds`, and passed all `8` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including `LaunchCatalog`, `ViewContextCatalog`, `LaunchExecution`, and `RunStateActivationResolution`; that initial bridge is now superseded by the later dedicated-family map ownership continuation. |
|
||||
| Higher-dimensional explicit dedicated-host seam | Implemented now | landed `Phase 6C` host-surface continuation packet | First-party current code then recorded the preferred dedicated-family `Magic120Cell` / `MagicCube5D` host-map targets in an explicit higher-dimensional host-surface catalog while the slice still kept the shared training map as the interim effective runtime fallback, mirrored that resolved host seam through the training runtime library plus the panel/session caches, and threaded the host-surface id into the launch/view-context surfaces and generated-mode lineage. The primary reverse-SSH `localhost:22022` Windows lane rebuilt this widened slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 2858.02 seconds`, and passed all `9` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including the new `HostCatalog`; that interim fallback is now superseded by the later dedicated-family map ownership continuation. |
|
||||
| Higher-dimensional executed runtime session surface | Implemented now | landed `Phase 6C` session-surface continuation packet | First-party current code now merges the higher-dimensional launch, host, and view-context seams into an explicit runtime-session catalog for `Magic120Cell` and `MagicCube5D`, mirrors that session surface through the training runtime library plus the panel/session caches, upgrades generated-mode deck lineage to record the resolved session surface, and applies the merged launch-plus-view selector posture at start time instead of only the narrower launch defaults. The primary reverse-SSH `localhost:22022` Windows lane rebuilt this widened slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 3541.98 seconds`, and passed all `10` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including the new `SessionCatalog`; the longer `LaunchExecution` quiet interval of `573.84 seconds` remained known-good. |
|
||||
| Higher-dimensional explicit interactive scene surface | Implemented now | landed `Phase 6C` interactive-scene continuation packet | First-party current code now promotes the higher-dimensional runtime-session seams into explicit `Magic120Cell` and `MagicCube5D` interactive-scene surfaces with renderable placeholder scene-context envelopes, mirrors those scene surfaces through the training runtime library plus the panel/session caches, and upgrades generated-mode lineage plus source attribution to record the resolved scene-surface and scene-context ids. The primary reverse-SSH `localhost:22022` Windows lane rebuilt this widened slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 3528.60 seconds`, and passed all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests, including the new `InteractiveSceneCatalog`; the `LaunchExecution` quiet interval of `479.46 seconds` remained known-good. |
|
||||
| Higher-dimensional dedicated-family interactive scene ownership | Implemented now | landed `Phase 6C` interactive-scene and dedicated-host continuation packet | First-party current code now promotes the higher-dimensional runtime-session seams into explicit `Magic120Cell` and `MagicCube5D` interactive-scene surfaces with family-owned runtime-state, projection, and persistence envelopes, replaces the shared-map bridge with dedicated-family training-map assets plus dedicated host/launch/view-context/session surfaces, exposes explicit scene-envelope decoders through the runtime library, and batches default selector application so generated-mode launch execution no longer rebuilds repository views once per selector. The primary reverse-SSH `localhost:22022` Windows lane rebuilt the dedicated-family ownership slice on `2026-06-18` with `Result: Succeeded`, UnrealBuildTool `Total execution time: 1648.33 seconds`; the follow-up hardening rebuild completed in `93.44 seconds`, and the exported automation report passed all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests with `totalDuration` `196.08790588378906`, `LaunchExecution` duration `195.65591430664062`, and the controller quiet interval reduced to `195.58 seconds`. |
|
||||
| Broad non-Euclidean interaction shell and host ownership | Deep-source grounded retained | `MagicTile` retained remainder | Broad interaction-shell, WinForms/OpenTK host ownership, and generic runtime replacement remain deferred after the landed `Phase 6R-T` slice. |
|
||||
|
||||
### 7. Speech input and voice sidecars
|
||||
|
|
|
|||
|
|
@ -160,9 +160,22 @@ Current consolidated milestone snapshot:
|
|||
`HyperTwist.FirstParty.HigherDimensional.Phase6C` tests passing, including
|
||||
the new `InteractiveSceneCatalog`; `LaunchExecution` again remained healthy
|
||||
through an `Ignoring very large delta of 479.46 seconds` quiet interval
|
||||
- the remaining `Phase 6C` gap is now the full dedicated-family
|
||||
`120-cell` / `5D` map, runtime-state, and persistence replacement, not the
|
||||
activation, host, session, or explicit interactive-scene contract layers
|
||||
- `2026-06-18`: the next `Phase 6C` continuation then closed that remaining
|
||||
ownership gap by replacing the placeholder `Magic120Cell` / `MagicCube5D`
|
||||
scene envelopes with family-owned runtime-state, projection, and
|
||||
persistence payloads, swapping the shared-map execution bridge for dedicated
|
||||
family maps plus dedicated host/launch/view-context/session surfaces, and
|
||||
hardening selector application so the same `localhost:22022` lane rebuilt
|
||||
the follow-up with `Result: Succeeded`, UnrealBuildTool `Total execution
|
||||
time: 1648.33 seconds`, then the targeted hardening rebuild with `Result:
|
||||
Succeeded`, UnrealBuildTool `Total execution time: 93.44 seconds`, and the
|
||||
exported automation report passed all `11`
|
||||
`HyperTwist.FirstParty.HigherDimensional.Phase6C` tests with
|
||||
`LaunchExecution` duration `195.65591430664062`
|
||||
- the functional `Phase 6C` ownership gap is now closed; the remaining work
|
||||
in this lane is launch-execution performance hardening and richer
|
||||
dedicated-family authored map content, not missing activation, host,
|
||||
session, interactive-scene, runtime-state, or persistence ownership seams
|
||||
|
||||
- the canonical HyperTwist repo-row portfolio is now treated as `75` rows, not `71`
|
||||
- currently implemented rows are now `35`, not `20`
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue