# HyperTwist Phase 4 dashboard live guidance preview launch action control inspect surface packet

- bounded Phase `4` dashboard-consumer slice
- date: `2026-05-10`

## Intent

Stay adjacent in the live dashboard consumer lane and expose the guidance preview launch controls directly to gameplay and Blueprint callers.

## Why this packet exists

`UHyperTwistCoachDashboardWidget` already displayed:

- the `Start Preview Deck` action label
- the `Start Selected Preview Case` action label
- the enablement posture behind those two preview-launch controls

But that control band still only surfaced through button labels and `SetIsEnabled` state. Callers still had to scrape widget controls to understand whether the dashboard currently has a launchable preview deck, whether a selected preview case can be launched directly, and what live run/timer gating is blocking those actions.

## What changed

- added `FHyperTwistTrainingCoachDashboardGuidancePreviewLaunchActionControlInspectSurface`
- added `GetDisplayedGuidancePreviewLaunchActionControlInspectSurface()`
- retained the exact displayed `Start Preview Deck` and `Start Selected Preview Case` labels inside the widget so the new surface reports the same live strings the dashboard is already presenting
- kept the packet bounded to `UHyperTwistCoachDashboardWidget` plus shared surface types, with no preview-deck derivation refactor and no backend continuity changes

## Files

- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Public\HyperTwistTraining\HyperTwistTrainingTypes.h`
- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Public\HyperTwistTraining\HyperTwistCoachDashboardWidget.h`
- `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist\Private\HyperTwistTraining\HyperTwistCoachDashboardWidget.cpp`
- `C:\HyperTwist\docs\HYPERTWIST_ROADMAP_OVERHAUL_EXPANSION_GUIDE.md`

## Outcome

Gameplay and Blueprint callers can now inspect:

- the exact displayed `Start Preview Deck` label
- the exact displayed `Start Selected Preview Case` label
- whether preview-deck launch is currently enabled
- whether selected-preview-case launch is currently enabled
- the active preview lane, selected case ordinal, selected case id, surfaced prompt label, and launch gating posture behind those two controls

without scraping widget button text or reopening preview-launch gating logic.

## Validation

- full `Development Editor | Win64` MSBuild on `UnrealHyperTwist.sln`
  - passed with `0 Warning(s), 0 Error(s)`

## Next clean slice

Treat the preview-control seam as functionally complete enough and pivot slightly earlier in the same live dashboard consumer lane to expose the dedicated template-launch status/detail inspect pair over the exact displayed template-launch lines already cached in the widget.
