# HyperTwist Phase 6R-V whisper.cpp device-permission and capture-route readiness shell implementation packet

Created on `2026-05-24`

## Status

- first-party HyperTwist packet
- bounded permissive `Phase 6R-V` 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 device-permission and capture-route readiness shell posture above
  the existing live microphone shell seam

It is not:

- a full `whisper.cpp` row transplant
- a real device-permission workflow packet
- a native audio-device route ownership packet
- a downloadable model or payload-shipping 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_V_WHISPER_CPP_DEVICE_PERMISSION_AND_CAPTURE_ROUTE_READINESS_SHELL_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
- `SYSTRAN/faster-whisper` remains the complementary landed Python
  orchestration donor
- this packet keeps `ggml-org/whisper.cpp` bounded to the narrower
  permission/readiness shell donor slice only

The granted family remains bounded to:

- explicit permission/readiness shell contract shaping
- route fallback issue-object surfacing
- lifecycle posture sync on top of the landed microphone shell seam
- bounded speech-health capability exposure for the narrower shell

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

## Landed scope

The current code now owns a retained permission/readiness shell contract
through:

- retained recognition contract types for:
  - `FHyperTwistSpeechMicrophoneShellIssue`
  - expanded `FHyperTwistSpeechMicrophoneShellProfile`
  - expanded `FHyperTwistSpeechMicrophoneShellState`
- sample session-config and service-health outputs in:
  - `UHyperTwistContractLibrary`
- direct-donor speech client seam capability exposure in:
  - `UHyperTwistMockSpeechClient`
  - `UHyperTwistHttpSpeechClient`
- active companion shell-state posture synchronization in:
  - `UHyperTwistTrainingSubsystem`
- focused automation coverage in:
  - `HyperTwistWhisperCppPhase6RVPermissionReadinessContractTest.cpp`

## Why this is still intentionally bounded

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

Still deferred:

- real device-permission workflow
- native audio-device route ownership beyond bounded shell posture
- downloadable model or payload shipping
- provider-profile and BYOK custody
- 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-V-WhisperCpp-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-V-WhisperCpp-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.WhisperCpp.Phase6R.V; Quit" -TestExit="Automation Test Queue Empty"`

Regression automation validation:

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

- `CaptureRouteFallbackState`
- `PermissionReadinessOpenState`
- `PermissionReadinessSessionConfig`
- existing `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-V` 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
  - bounded shell capability exposure for:
    - microphone capture shell
    - device-permission shell
    - capture-route readiness shell
    - capture-route retry
    - streaming preview
    - manual transcript commit
- still deferred:
  - real device-permission workflow
  - native audio-device route ownership beyond bounded shell posture
  - downloadable model or payload shipping
  - provider-profile and BYOK custody
  - broad assistant-platform scope

The next clean move is:

- a source-backed `Phase 6R-W` `ggml-org/whisper.cpp` downloadable model and
  payload custody preparation/control pass

Keep the future sequencing guards visible:

- `ggml-org/whisper.cpp`
  - keep code-license judgments separate from downloadable model or payload
    license review in any follow-on microphone packet
- first-party HyperTwist
  - keep the top-level provider/session contract 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 bounded to Python
    orchestration/service-lane ownership rather than shell ownership
