Expose runtime selector owned-execution scope and retention
This commit is contained in:
parent
9f2e9c0cc7
commit
f2c58feeec
4 changed files with 213 additions and 2 deletions
|
|
@ -1637,6 +1637,134 @@ UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingCoachGeneratedModeSelectorOp
|
|||
return FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeliveryPreviewSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface
|
||||
UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
{
|
||||
const FHyperTwistTrainingRunState RunState = TrainingSubsystem->GetActiveRunState();
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionMenuSurface OptionMenuSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionMenuSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface
|
||||
OptionLaunchRequestPreviewSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
return UHyperTwistTrainingCoachLibrary::
|
||||
DeriveCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface(
|
||||
RunState,
|
||||
SelectorId,
|
||||
OptionMenuSurface,
|
||||
OptionLaunchRequestPreviewSurface
|
||||
);
|
||||
}
|
||||
|
||||
return FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface
|
||||
UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
{
|
||||
const FHyperTwistTrainingRunState RunState = TrainingSubsystem->GetActiveRunState();
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionMenuSurface OptionMenuSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionMenuSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface
|
||||
OptionLaunchRequestPreviewSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
return UHyperTwistTrainingCoachLibrary::
|
||||
DeriveCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface(
|
||||
RunState,
|
||||
SelectorId,
|
||||
OptionMenuSurface,
|
||||
OptionLaunchRequestPreviewSurface
|
||||
);
|
||||
}
|
||||
|
||||
return FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface
|
||||
UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
{
|
||||
const FHyperTwistTrainingRunState RunState = TrainingSubsystem->GetActiveRunState();
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionMenuSurface OptionMenuSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionMenuSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface
|
||||
OptionLaunchRequestPreviewSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
return UHyperTwistTrainingCoachLibrary::
|
||||
DeriveCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface(
|
||||
RunState,
|
||||
SelectorId,
|
||||
OptionMenuSurface,
|
||||
OptionLaunchRequestPreviewSurface
|
||||
);
|
||||
}
|
||||
|
||||
return FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface();
|
||||
}
|
||||
|
||||
FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface
|
||||
UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
{
|
||||
const FHyperTwistTrainingRunState RunState = TrainingSubsystem->GetActiveRunState();
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionMenuSurface OptionMenuSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionMenuSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
const FHyperTwistTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface
|
||||
OptionLaunchRequestPreviewSurface =
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionLaunchRequestPreviewSurface(
|
||||
WorldContextObject,
|
||||
SelectorId
|
||||
);
|
||||
return UHyperTwistTrainingCoachLibrary::
|
||||
DeriveCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface(
|
||||
RunState,
|
||||
SelectorId,
|
||||
OptionMenuSurface,
|
||||
OptionLaunchRequestPreviewSurface
|
||||
);
|
||||
}
|
||||
|
||||
return FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface();
|
||||
}
|
||||
|
||||
TArray<FHyperTwistTrainingMethodSegment> UHyperTwistTrainingRuntimeLibrary::GetActiveTrainingLearnerMethodSegments(UObject* WorldContextObject)
|
||||
{
|
||||
if (UHyperTwistTrainingSubsystem* TrainingSubsystem = GetTrainingSubsystem(WorldContextObject))
|
||||
|
|
|
|||
|
|
@ -405,6 +405,34 @@ public:
|
|||
const FString& SelectorId
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
|
||||
static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
|
||||
static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
|
||||
static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training|Coach", meta = (WorldContext = "WorldContextObject"))
|
||||
static FHyperTwistTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface
|
||||
GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface(
|
||||
UObject* WorldContextObject,
|
||||
const FString& SelectorId
|
||||
);
|
||||
|
||||
UFUNCTION(BlueprintPure, Category = "HyperTwist|Training", meta = (WorldContext = "WorldContextObject"))
|
||||
static TArray<FHyperTwistTrainingMethodSegment> GetActiveTrainingLearnerMethodSegments(UObject* WorldContextObject);
|
||||
|
||||
|
|
|
|||
|
|
@ -68,8 +68,8 @@ Current correction call from the source-exposed audit and current execution refr
|
|||
- the imported generated-mode gap is closed; request/config/selection plumbing and the bounded clean-room executor are already landed in first-party code
|
||||
- the latest landed bounded `Phase 4` packet closes the retained-idle comparison/outcome actionability gap at the end of the recognition-assisted coach-to-review continuity lane, and the final retained-surface confirmation pass now leaves that closure lane functionally complete
|
||||
- the retained idle widget surface now keeps retained comparison and decision history inspectable without continuing to advertise live launch or guidance-outcome actions once the coach-to-review loop has already collapsed to truthful closed-loop idle
|
||||
- the latest landed bounded `Phase 4` packet stays on that same deliberate `UHyperTwistTrainingRuntimeLibrary` world-context consumer lane and adds active generated-mode selector option owned-execution case, prompt, and delivery preview surfaces over the already-landed selector option launch-request envelope preview and launch-request preview surfaces plus active run state, so gameplay/Blueprint callers can explain owned-case identity / canonical-state posture, prompt label / prompt-kind posture, and delivery-mode / reveal / time-target posture for one selector option without reading raw case lookup, seed-case, or launch-preview derivation details directly
|
||||
- the current next bounded packet should stay on that same runtime-library consumer lane only if a real world-context gameplay or Blueprint caller still needs one more thin derived coach/generated-mode display contract or displayed-action convenience helper over already-cached state; inside that lane the next aligned move is the runtime-library generated-mode selector option owned-execution puzzle/subset/difficulty, provenance, deck-title/selection-policy, and deck-id/runtime-surface retention preview group, otherwise choose the next roadmap lane deliberately instead of extending runtime-consumer widening by drift
|
||||
- the latest landed bounded `Phase 4` packet stays on that same deliberate `UHyperTwistTrainingRuntimeLibrary` world-context consumer lane and adds active generated-mode selector option owned-execution puzzle/subset/difficulty, provenance, deck-title/selection-policy, and deck-id/runtime-surface retention preview surfaces over the already-landed selector option launch-request preview surface plus active run state, so gameplay/Blueprint callers can explain owned-execution scope, source attribution, deck-title / selection-policy posture, and runtime-surface retention posture for one selector option without reading raw case tags, deck policy fields, or launch-preview derivation details directly
|
||||
- the current next bounded packet should stay on that same runtime-library consumer lane only if a real world-context gameplay or Blueprint caller still needs one more thin derived coach/generated-mode display contract or displayed-action convenience helper over already-cached state; inside that lane the next aligned move is the runtime-library generated-mode selector option owned-execution delivery-mode roster/allowed-mode retention, real-scramble/virtual-cube/smart-cube capability retention, and timing-policy retention preview group, otherwise choose the next roadmap lane deliberately instead of extending runtime-consumer widening by drift
|
||||
- the current execution-discipline rule that broad refactor / monolith-splitting work should not interrupt the active bounded roadmap packet unless structure is actually blocking it
|
||||
|
||||
## Current execution-reality references
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
# HyperTwist Phase 4 runtime-library generated-mode selector option owned-execution puzzle/subset/difficulty, provenance, deck-title/selection-policy, and deck-id/runtime-surface retention preview surface packet
|
||||
|
||||
- bounded Phase `4` runtime-consumer slice
|
||||
- date: `2026-05-09`
|
||||
|
||||
## Intent
|
||||
|
||||
Stay on the deliberate `UHyperTwistTrainingRuntimeLibrary` world-context consumer lane and expose the next truthful owned-execution scope, attribution, and retention preview contracts above the already-landed owned-execution case, prompt, and delivery preview surfaces.
|
||||
|
||||
## Why this packet exists
|
||||
|
||||
The prior runtime-library packet let world-context callers explain owned-case identity / canonical-state posture, prompt label / prompt-kind posture, and delivery-mode / reveal / time-target posture for one selector option.
|
||||
|
||||
But callers still had to inspect raw generated-mode launch-preview and deck-policy details if they needed to explain:
|
||||
|
||||
- which puzzle id, subset id, and difficulty posture would apply on owned execute
|
||||
- what source attribution and provenance tags would survive into the owned-execution target
|
||||
- what deck title and selection-policy posture would govern the generated owned run
|
||||
- whether deck id and runtime-surface retention would remain exact, refreshed, or blocked
|
||||
|
||||
That kept the runtime-library world-context seam behind the already-landed panel-widget and session-actor owned-execution preview lane.
|
||||
|
||||
## What changed
|
||||
|
||||
- added `GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionPuzzleSubsetDifficultyPreviewSurface()`
|
||||
- added `GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionProvenancePreviewSurface()`
|
||||
- added `GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckTitleSelectionPolicyPreviewSurface()`
|
||||
- added `GetActiveTrainingCoachGeneratedModeSelectorOptionOwnedExecutionDeckIdRuntimeSurfaceRetentionPreviewSurface()`
|
||||
- derived all four surfaces from the active run state, selected `SelectorId`, and the already-landed runtime-library selector option-menu and launch-request preview surfaces
|
||||
- kept the runtime-library lane purely compositional over already-cached coach/generated-mode state without reopening backend derivation
|
||||
|
||||
## Files
|
||||
|
||||
- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Public\HyperTwistTraining\HyperTwistTrainingRuntimeLibrary.h`
|
||||
- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Private\HyperTwistTraining\HyperTwistTrainingRuntimeLibrary.cpp`
|
||||
- `C:\HyperTwist\docs\HYPERTWIST_ROADMAP_OVERHAUL_EXPANSION_GUIDE.md`
|
||||
|
||||
## Outcome
|
||||
|
||||
World-context gameplay and Blueprint callers can now ask the runtime library for:
|
||||
|
||||
- the truthful owned-execution puzzle / subset / difficulty preview for one selector option
|
||||
- the truthful owned-execution provenance preview for one selector option
|
||||
- the truthful owned-execution deck-title / selection-policy preview for one selector option
|
||||
- the truthful owned-execution deck-id / runtime-surface retention preview for one selector option
|
||||
|
||||
without reading raw generated-mode launch-preview, deck-policy, or retained-runtime-surface details directly.
|
||||
|
||||
## Validation
|
||||
|
||||
- full `Development Editor | Win64` MSBuild on `UnrealHyperTwist.sln`
|
||||
|
||||
## Next clean slice
|
||||
|
||||
Stay on this runtime-library consumer lane only if a real world-context caller still needs one more thin derived coach/generated-mode display contract or displayed-action convenience helper over already-cached state. The next aligned move inside that lane would be the runtime-library generated-mode selector option owned-execution delivery-mode roster/allowed-mode retention, real-scramble/virtual-cube/smart-cube capability retention, and timing-policy retention preview group, because those are the next truthful owned-execution retention contracts above the newly-landed puzzle/subset/difficulty, provenance, deck-title/selection-policy, and deck-id/runtime-surface retention preview surfaces.
|
||||
Loading…
Add table
Reference in a new issue