From 3da81bb21ccb9800528cc07bb2ca270c3f5187bf Mon Sep 17 00:00:00 2001 From: axiomlogicnexus Date: Thu, 18 Jun 2026 08:56:15 +0000 Subject: [PATCH] Harden Phase 6C launch execution projections --- .../HyperTwistTrainingSubsystem.cpp | 106 ++++++++++++------ .../HyperTwistTrainingSubsystem.h | 17 +++ ...NSIVE_RECONSTRUCTION_ROADMAP_2026-06-10.md | 7 ++ .../HyperTwist/FEATURE_REGISTRY.md | 2 +- .../HyperTwist/ROADMAP.md | 13 ++- 5 files changed, 105 insertions(+), 40 deletions(-) diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp index 0a32786..05fab76 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp @@ -9624,6 +9624,14 @@ bool UHyperTwistTrainingSubsystem::TryGetActiveImportedGeneratedModeLaunchReques FHyperTwistTrainingImportedGeneratedModeLaunchRequest UHyperTwistTrainingSubsystem::CreateActiveImportedGeneratedModeLaunchRequest( const FString& RequestSource ) +{ + return CreateActiveImportedGeneratedModeLaunchRequestInternal(RequestSource, true); +} + +FHyperTwistTrainingImportedGeneratedModeLaunchRequest UHyperTwistTrainingSubsystem::CreateActiveImportedGeneratedModeLaunchRequestInternal( + const FString& RequestSource, + const bool bRefreshRepositoryViews +) { FHyperTwistTrainingImportedGeneratedModeLaunchConfig LaunchConfig; if (!TryGetActiveImportedGeneratedModeLaunchConfig(LaunchConfig)) @@ -9639,12 +9647,8 @@ FHyperTwistTrainingImportedGeneratedModeLaunchRequest UHyperTwistTrainingSubsyst ActiveImportedGeneratedModeLaunchRequest.RequestSource = RequestSource.IsEmpty() ? TEXT("runtime-imported-generated-mode") : RequestSource; ActiveImportedGeneratedModeLaunchRequest.LaunchConfig = LaunchConfig; - ActiveRunState.ImportedGeneratedModeLaunchRequest = ActiveImportedGeneratedModeLaunchRequest; - TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( - TrainingRepositoryState, - ActiveRunState - ); - RefreshRepositoryViews(); + ActiveRunState.ImportedGeneratedModeLaunchRequest = ActiveImportedGeneratedModeLaunchRequest; + PersistActiveRunStateToRepository(bRefreshRepositoryViews); return ActiveImportedGeneratedModeLaunchRequest; } @@ -9652,6 +9656,19 @@ bool UHyperTwistTrainingSubsystem::TryExecuteActiveImportedGeneratedModeLaunchRe FHyperTwistTrainingRunState& OutRunState, FString& OutBlockedReason ) +{ + return TryExecuteActiveImportedGeneratedModeLaunchRequestInternal( + OutRunState, + OutBlockedReason, + true + ); +} + +bool UHyperTwistTrainingSubsystem::TryExecuteActiveImportedGeneratedModeLaunchRequestInternal( + FHyperTwistTrainingRunState& OutRunState, + FString& OutBlockedReason, + const bool bRefreshRepositoryViews +) { OutRunState = FHyperTwistTrainingRunState(); OutBlockedReason.Reset(); @@ -9678,8 +9695,9 @@ bool UHyperTwistTrainingSubsystem::TryExecuteActiveImportedGeneratedModeLaunchRe if (bNeedsFreshLaunchRequest) { - LaunchRequest = CreateActiveImportedGeneratedModeLaunchRequest( - TEXT("runtime-imported-generated-mode-executor") + LaunchRequest = CreateActiveImportedGeneratedModeLaunchRequestInternal( + TEXT("runtime-imported-generated-mode-executor"), + false ); } if (!LaunchRequest.IsStructurallyValid()) @@ -9724,11 +9742,12 @@ bool UHyperTwistTrainingSubsystem::TryExecuteActiveImportedGeneratedModeLaunchRe const FString ExecutionSessionId = HyperTwistTrainingSubsystemInternal::BuildGeneratedModeExecutionSessionId(LaunchRequest); - const FHyperTwistTrainingRunState StartedRunState = StartTrainingRunFromDeck( + const FHyperTwistTrainingRunState StartedRunState = StartTrainingRunFromDeckInternal( GeneratedDeck, SourceRunState.Session.UserId, ExecutionSessionId, - LaunchRequest.LaunchConfig.DeliveryMode + LaunchRequest.LaunchConfig.DeliveryMode, + false ); if (!StartedRunState.IsStructurallyValid()) { @@ -9740,11 +9759,7 @@ bool UHyperTwistTrainingSubsystem::TryExecuteActiveImportedGeneratedModeLaunchRe ActiveImportedGeneratedModeLaunchRequest = LaunchRequest; ActiveRunState.ImportedGeneratedModeLaunchRequest = LaunchRequest; RefreshSummary(); - TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( - TrainingRepositoryState, - ActiveRunState - ); - RefreshRepositoryViews(); + PersistActiveRunStateToRepository(bRefreshRepositoryViews); OutRunState = ActiveRunState; return OutRunState.IsStructurallyValid(); @@ -9808,11 +9823,12 @@ bool UHyperTwistTrainingSubsystem::TryStartHigherDimensionalLaunchSurface( : FString::Printf( TEXT("phase6c_launch_%s"), *FGuid::NewGuid().ToString(EGuidFormats::Digits)); - OutRunState = StartTrainingRunFromDeck( + OutRunState = StartTrainingRunFromDeckInternal( LaunchDeck, EffectiveUserId, EffectiveSessionId, - Mode + Mode, + false ); if (!OutRunState.IsStructurallyValid()) { @@ -9834,12 +9850,6 @@ bool UHyperTwistTrainingSubsystem::TryStartHigherDimensionalLaunchSurface( return false; } } - RefreshSummary(); - TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( - TrainingRepositoryState, - ActiveRunState - ); - RefreshRepositoryViews(); OutRunState = ActiveRunState; if (!OutRunState.IsStructurallyValid()) { @@ -9850,12 +9860,16 @@ bool UHyperTwistTrainingSubsystem::TryStartHigherDimensionalLaunchSurface( if (!bExecuteGeneratedModeLaunchRequest) { + RefreshSummary(); + PersistActiveRunStateToRepository(true); + OutRunState = ActiveRunState; return true; } const FHyperTwistTrainingImportedGeneratedModeLaunchRequest LaunchRequest = - CreateActiveImportedGeneratedModeLaunchRequest( - TEXT("phase6c-higher-dimensional-launch-surface") + CreateActiveImportedGeneratedModeLaunchRequestInternal( + TEXT("phase6c-higher-dimensional-launch-surface"), + false ); if (!LaunchRequest.IsStructurallyValid()) { @@ -9864,7 +9878,10 @@ bool UHyperTwistTrainingSubsystem::TryStartHigherDimensionalLaunchSurface( return false; } - if (!TryExecuteActiveImportedGeneratedModeLaunchRequest(OutRunState, OutBlockedReason)) + if (!TryExecuteActiveImportedGeneratedModeLaunchRequestInternal( + OutRunState, + OutBlockedReason, + true)) { if (OutBlockedReason.IsEmpty()) { @@ -9934,11 +9951,7 @@ FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::ApplyActiveImportedGen return FHyperTwistTrainingRunState(); } RefreshSummary(); - TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( - TrainingRepositoryState, - ActiveRunState - ); - RefreshRepositoryViews(); + PersistActiveRunStateToRepository(true); return ActiveRunState; } @@ -12591,12 +12604,37 @@ FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::StartCoachQueueEntry( return RunState; } +void UHyperTwistTrainingSubsystem::PersistActiveRunStateToRepository( + const bool bRefreshRepositoryViews +) +{ + TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( + TrainingRepositoryState, + ActiveRunState + ); + if (bRefreshRepositoryViews) + { + RefreshRepositoryViews(); + } +} + FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::StartTrainingRunFromDeck( const FHyperTwistTrainingDeck& Deck, const FString& UserId, const FString& SessionId, EHyperTwistTrainingDeliveryMode Mode ) +{ + return StartTrainingRunFromDeckInternal(Deck, UserId, SessionId, Mode, true); +} + +FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::StartTrainingRunFromDeckInternal( + const FHyperTwistTrainingDeck& Deck, + const FString& UserId, + const FString& SessionId, + EHyperTwistTrainingDeliveryMode Mode, + const bool bRefreshRepositoryViews +) { if (HasActiveSmartDeviceSession()) { @@ -12632,11 +12670,7 @@ FHyperTwistTrainingRunState UHyperTwistTrainingSubsystem::StartTrainingRunFromDe OpenActiveRecognitionSession(RecognitionOpenError); } RefreshSummary(); - TrainingRepositoryState = UHyperTwistTrainingRepositoryLibrary::RecordRunState( - TrainingRepositoryState, - ActiveRunState - ); - RefreshRepositoryViews(); + PersistActiveRunStateToRepository(bRefreshRepositoryViews); return ActiveRunState; } diff --git a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingSubsystem.h b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingSubsystem.h index c39e516..7619491 100644 --- a/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingSubsystem.h +++ b/UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingSubsystem.h @@ -738,6 +738,23 @@ private: void RefreshSummary(); void RefreshMethodDrillSummary(); void RefreshRepositoryViews(); + void PersistActiveRunStateToRepository(bool bRefreshRepositoryViews); + FHyperTwistTrainingRunState StartTrainingRunFromDeckInternal( + const FHyperTwistTrainingDeck& Deck, + const FString& UserId, + const FString& SessionId, + EHyperTwistTrainingDeliveryMode Mode, + bool bRefreshRepositoryViews + ); + FHyperTwistTrainingImportedGeneratedModeLaunchRequest CreateActiveImportedGeneratedModeLaunchRequestInternal( + const FString& RequestSource, + bool bRefreshRepositoryViews + ); + bool TryExecuteActiveImportedGeneratedModeLaunchRequestInternal( + FHyperTwistTrainingRunState& OutRunState, + FString& OutBlockedReason, + bool bRefreshRepositoryViews + ); void ResetActiveLiveTimerState(); void RefreshActiveLiveTimerState(); bool CanUseSmartDeviceBridge() const; diff --git a/docs/ops/HYPERTWIST_COMPREHENSIVE_RECONSTRUCTION_ROADMAP_2026-06-10.md b/docs/ops/HYPERTWIST_COMPREHENSIVE_RECONSTRUCTION_ROADMAP_2026-06-10.md index 058ef4b..46677b4 100644 --- a/docs/ops/HYPERTWIST_COMPREHENSIVE_RECONSTRUCTION_ROADMAP_2026-06-10.md +++ b/docs/ops/HYPERTWIST_COMPREHENSIVE_RECONSTRUCTION_ROADMAP_2026-06-10.md @@ -365,6 +365,8 @@ Closure read: - `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 - `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 ****` +- `2026-06-18` continuation proof: current code now also defers repository-view projection across the internal generated-mode launch handoff itself, so the seed-run, launch-request persistence, and generated-run transition keep their repository state intact without forcing intermediate view rebuilds that the caller never reads +- `2026-06-18` Windows checkpoint: after that projection-deferral hardening rebuild with `Result: Succeeded` / UnrealBuildTool `Total execution time: 400.77 seconds`, targeted `UnrealEditor-Cmd` automation exported `C:\HyperTwist_worktrees\phase10validate\UnrealHyperTwist\Saved\AutomationReports\Phase6C-DedicatedFamily-Optimized2\index.json` with all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests passing, `totalDuration` `41.88494873046875`, and `LaunchExecution` duration `41.53509521484375`; the controller quiet interval fell again to `41.52 seconds` 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` @@ -575,4 +577,9 @@ Recommended next widening order: 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 +- `2026-06-18`: the next `Phase 6C` hardening pass then deferred repository- + view projection across the internal generated-mode launch handoff itself, and + the same `localhost:22022` lane still passed all `11` + `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests while dropping the + `LaunchExecution` quiet interval again from `195.58` to `41.52` seconds - later classic-cube polish only when a concrete presentation gap remains, not as the default next move diff --git a/docs/v6_5_deep_manual_pack/HyperTwist/FEATURE_REGISTRY.md b/docs/v6_5_deep_manual_pack/HyperTwist/FEATURE_REGISTRY.md index 0f742b0..ad48d6f 100644 --- a/docs/v6_5_deep_manual_pack/HyperTwist/FEATURE_REGISTRY.md +++ b/docs/v6_5_deep_manual_pack/HyperTwist/FEATURE_REGISTRY.md @@ -271,7 +271,7 @@ repo. | 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 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`. | +| 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, batches default selector application so generated-mode launch execution no longer rebuilds repository views once per selector, and then defers repository-view projection across the internal generated-mode handoff itself so only the final launch state forces a view refresh. 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 later projection-deferral hardening rebuild completed in `400.77 seconds`, and the exported automation report passed all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests with `totalDuration` `41.88494873046875`, `LaunchExecution` duration `41.53509521484375`, and the controller quiet interval reduced to `41.52 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 diff --git a/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md b/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md index fc3e941..08a81c1 100644 --- a/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md +++ b/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md @@ -172,10 +172,17 @@ Current consolidated milestone snapshot: exported automation report passed all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` tests with `LaunchExecution` duration `195.65591430664062` +- `2026-06-18`: the next `Phase 6C` hardening pass then deferred repository- + view projection across the internal generated-mode launch handoff, rebuilt + the same `localhost:22022` lane with `Result: Succeeded`, UnrealBuildTool + `Total execution time: 400.77 seconds`, and the exported automation report + again passed all `11` `HyperTwist.FirstParty.HigherDimensional.Phase6C` + tests with `totalDuration` `41.88494873046875` and `LaunchExecution` + duration `41.53509521484375` - 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 + in this lane is optional further micro-profiling 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`