Land Phase 6C dedicated higher-dimensional family ownership

This commit is contained in:
axiomlogicnexus 2026-06-18 08:40:28 +00:00
parent c3b8d91435
commit 9ced13b762
11 changed files with 913 additions and 272 deletions

View file

@ -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;
}

View file

@ -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

View file

@ -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,

View file

@ -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
);
};

View file

@ -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,

View file

@ -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;
}

View file

@ -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:** 100200
**Estimated time:** 12 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

View file

@ -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

View file

@ -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`