# HyperTwist Phase 6R-W whisper.cpp downloadable model and payload custody implementation packet

Created on `2026-05-24`

## Status

- first-party HyperTwist packet
- bounded permissive `Phase 6R-W` implementation slice

## Purpose

This packet lands the next narrower bounded slice from the retained
`ggml-org/whisper.cpp` speech-input row.

The landed slice is:

- first-party downloadable model and payload custody metadata above the
  existing transcript-session, microphone-shell, and permission/readiness seams

It is not:

- a full `whisper.cpp` row transplant
- an actual runtime download or payload-shipping packet
- a provider-profile or BYOK custody packet
- a real device-permission workflow packet
- a native audio-device route ownership packet
- a top-level provider/session contract packet
- a voice-output packet
- a broad assistant-platform packet

## Current authority basis

This implementation packet stands on:

- `docs/REPO_LICENSE_TRACKING.md`
- `docs/arch/HYPERTWIST_PHASE6R_W_WHISPER_CPP_DOWNLOADABLE_MODEL_AND_PAYLOAD_CUSTODY_PREPARATION_PACKET_2026-05-24.md`

The retained owner remains:

- `ggml-org/whisper.cpp`

The top-level provider/session contract owner does not change here:

- first-party HyperTwist remains the provider-neutral owner for the speech
  provider/session lane
- first-party HyperTwist remains the future owner for provider-profile and
  BYOK custody
- `SYSTRAN/faster-whisper` remains the complementary landed Python
  orchestration donor
- this packet keeps `ggml-org/whisper.cpp` bounded to the narrower
  model/payload custody donor slice only

The granted family remains bounded to:

- explicit payload-custody contract shaping
- required and supported model-payload descriptors
- bounded integrity-check metadata
- bounded speech-health capability exposure for the narrower custody seam

This packet lands only the next narrower family in that granted set.

## Landed scope

The current code now owns a retained payload-custody contract through:

- retained recognition contract types for:
  - `FHyperTwistSpeechModelPayloadDescriptor`
  - `FHyperTwistSpeechPayloadCustodyProfile`
  - expanded `FHyperTwistSpeechSessionConfig`
  - expanded `FHyperTwistSpeechServiceHealth`
- sample session-config and service-health outputs in:
  - `UHyperTwistContractLibrary`
- direct-donor speech client seam capability exposure in:
  - `UHyperTwistMockSpeechClient`
  - `UHyperTwistHttpSpeechClient`
- active companion session-config and health normalization in:
  - `UHyperTwistTrainingSubsystem`
- focused automation coverage in:
  - `HyperTwistWhisperCppPhase6RWModelPayloadCustodyContractTest.cpp`

## Why this is still intentionally bounded

This packet lands the next donor-backed custody seam, but it does not widen
into the neighboring retained families.

Still deferred:

- actual runtime download or payload shipping
- provider-profile and BYOK custody
- real device-permission workflow
- native audio-device route ownership beyond bounded shell posture
- voice-output ownership
- broad assistant-platform scope

## Validation

Build validation:

- `C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\Build.bat UnrealHyperTwistEditor Win64 Development -Project='C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject' -WaitMutex -NoHotReloadFromIDE -NoUba`

Focused automation validation:

- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-W-WhisperCpp-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-W-WhisperCpp-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.WhisperCpp.Phase6R.W; Quit" -TestExit="Automation Test Queue Empty"`

Regression automation validation:

- `HyperTwist.Permissive.WhisperCpp.Phase6R.V`
- `HyperTwist.Permissive.WhisperCpp.Phase6R.U`
- `HyperTwist.Permissive.WhisperCpp.Phase6R.E`
- `HyperTwist.Permissive.FasterWhisper.Phase6R.F`
- `HyperTwist.Permissive.Piper.Phase6R.G`
- `HyperTwist.Permissive.Coqui.Phase6R.H`
- `HyperTwist.CleanRoom.CubeDesk`

Expected covered tests:

- `PayloadCustodyServiceHealth`
- `PayloadCustodySessionConfig`
- `ProviderBackedPayloadCustodyFallback`
- existing `Phase 6R-V`, `Phase 6R-U`, `Phase 6R-E`, `Phase 6R-F`,
  `Phase 6R-G`, `Phase 6R-H`, and `CubeDesk` regression suites

## Queue effect

This packet consumes the current `Phase 6R-W` implementation slice.

`ggml-org/whisper.cpp` remains only partially incorporated:

- landed now:
  - speech transcript session boundary
  - VAD-aware session config and utterance envelope
  - transcript segment and transcript result
  - sidecar health and speech client boundary
  - live microphone shell profile and shell-state boundary
  - device-permission and capture-route readiness shell posture
  - downloadable model and payload custody boundary for:
    - payload-custody profile ids
    - payload-review / shipping / provisioning posture wording
    - required and supported model-payload descriptors
    - bounded integrity-check metadata
    - capability exposure for:
      - `downloadableModelPayloadCustody`
      - `payloadIntegrityReview`
- still deferred:
  - actual runtime download or payload shipping
  - provider-profile and BYOK custody
  - real device-permission workflow
  - native audio-device route ownership beyond bounded shell posture
  - broad assistant-platform scope

The next clean move is:

- a source-backed `Phase 6R-X` first-party provider-profile and BYOK custody
  preparation/control pass

Keep the future sequencing guards visible:

- `ggml-org/whisper.cpp`
  - keep code-license judgments separate from actual model or payload shipping
    review in any follow-on packet
- first-party HyperTwist
  - keep the top-level provider/session contract and provider-profile / BYOK
    lane first-party rather than letting `whisper.cpp` or `faster-whisper`
    absorb that lane through a narrower donor win
- `SYSTRAN/faster-whisper`
  - keep the row complementary to the landed shell and custody seams and
    bounded to Python orchestration/service-lane ownership rather than
    provider-profile ownership
