# HyperTwist Phase 6R-AJ Handy external dictation history and output routing preparation packet

Created on `2026-05-31`

## Status

- bounded permissive HyperTwist packet
- source-backed `Phase 6R-AJ` preparation/control slice

## Purpose

This packet scopes the only justified narrow `cjpais/Handy` reopening above
the already landed HyperTwist speech stack.

The granted slice is:

- external dictation-shell posture
- retained transcript-history and recall-list shell behavior
- paste, clipboard, typing, and script-oriented output-routing posture
- optional transcript post-process overlay posture

It is not:

- top-level provider/session ownership
- core native STT runtime ownership over `whisper.cpp`
- Python orchestration ownership over `faster-whisper`
- actual global hotkey, mute, or device-selection ownership
- local model catalog/download/checksum/unload ownership
- voice-output ownership
- broad assistant-platform ownership

## Current authority basis

This control pass stands on:

- `docs/HYPERTWIST_HANDY_OFFLINE_DICTATION_SHELL_HIERARCHY_RECONCILIATION_2026-05-28.md`
- `docs/REPO_LICENSE_TRACKING.md`
- `docs/v6_5_deep_manual_pack/HyperTwist/FEATURE_REGISTRY.md`
- `docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md`
- `docs/arch/HYPERTWIST_PHASE6R_AI_FIRST_PARTY_PROVIDER_NEUTRAL_CUSTOM_ENDPOINT_RUNTIME_ROUTING_IMPLEMENTATION_PACKET_2026-05-26.md`
- `docs/ops/FORGEJO_WOODPECKER_VPS_A_TO_Z_SENSITIVE_RUNBOOK_VPS_12_24_720_UBUNTU_24_04.md`

The preserved owners do not change:

- first-party HyperTwist remains the top-level provider/session owner
- `ggml-org/whisper.cpp` remains the native speech-input runtime owner
- `SYSTRAN/faster-whisper` remains the Python orchestration/service-lane owner
- first-party HyperTwist remains the provider-profile/routing and speech-shell
  owner for the already landed lanes

## Granted family

The bounded `Phase 6R-AJ` slice may land:

1. a new external dictation shell profile in the existing speech session config
2. bounded shell state retained inside the active companion speech session
3. retained transcript-history accumulation above final transcript results
4. clipboard, typing, and script-oriented output-routing posture only
5. optional transcript post-process overlay posture
6. service-health capability exposure for the new external dictation shell
7. focused automation for:
   - session-config/profile validity
   - external dictation shell state validity
   - transcript-history and output-routing accumulation

The packet must stay out of:

- actual OS-level global hotkey ownership
- actual system clipboard or typing execution ownership
- device-selection ownership
- payload shipping or model-download ownership
- voice-output ownership
- assistant-platform widening

## Proposed implementation shape

Land the narrower boundary through:

- new speech recognition/profile structs in:
  - `HyperTwistRecognitionTypes.h`
- a new retained shell state in:
  - `HyperTwistTrainingTypes.h`
- default profile/state builders plus bounded sync in:
  - `UHyperTwistTrainingSubsystem`
- transcript-history accumulation above:
  - `SubmitActiveCompanionSpeechUtterance(...)`
- focused automation in:
  - `HyperTwistHandyPhase6RAJDictationAdjunctContractTest.cpp`

## Validation target

Use the documented validation split:

- safe VPS-side source checks first
- when Unreal validation is sensible and the instance is on the VPS without
  `UnrealEditor`, use the Windows reverse-SSH lane documented in the sensitive
  runbook
- if the Windows checkout lags the VPS source state, say that explicitly and
  do not claim packet coverage for missing Windows-side files

## Queue effect

If this packet lands cleanly, `cjpais/Handy` stops being only a later-retained
speech-adjacent note and becomes a bounded live adjunct row.

After that, return to the retained repo-row queue. Do not widen this row into a
broad speech-platform packet by default.
