# YazSes v2.1.0-dev.3 — Wave D hardening + hard-tier seams (developer preview)

**Pre-release · not published** (publish workflows are pinned to `v0.x`/`v1.x`; v2 dev tags
do not ship). **v1.4.1 remains the stable release.** Every feature is **OFF by default**.

Consolidates `v2.1.0-dev.1/2` with a hardening pass and two pure *safety/decision seams* for
hard-tier features whose heavy engines stay deferred. Design in `design/adr/adr-v2-021..022`.

## New (all off by default / internal)

- **Atypical-speech LoRA held-out gate** (ADR-v2-021, `[personalize] lora_min_improvement`) —
  a pure gate that applies a corpus-trained LoRA adapter **only** when it beats the
  un-adapted baseline on held-out WER by a set margin. Reuses the ADR-014 held-out
  discipline so a bad adapter can never silently degrade recognition. The fine-tune itself
  stays deferred (heavy); the safety spine ships now.
- **Codec Streaming seam** (ADR-v2-022, `[codec]`) — a pure `select_engine` that routes to a
  streaming neural-codec engine (Kyutai/Mimi) only when explicitly enabled with a real
  backend, otherwise keeps faster-whisper. The codec engine is lazy behind the `codec`
  extra; the default multilingual path is unchanged.

## Hardening

Every v2 **pure** core is now **100%** covered: raised `agent`, `pilot`, `polyglot`,
`context` (and the new `adapter_gate`, `codec/select`) to 100% with targeted edge-case
tests; the one genuinely-unreachable defensive branch (polyglot mer-gate) is marked
`no cover` with a proof note.

`yazses features` now lists 35 capabilities (new: `codec`).

## Remaining Wave D backlog (needs real hardware/models)
Silent-speech (sEMG), pure-vision VLM screen commanding. These require a device / on-device
VLM to build and verify safely, so only their design (research doc + ADRs) is captured.

## Quality
947 tests green across Linux × macOS × Windows on Python 3.11 and 3.12. Heavy backends stay
lazy behind optional extras; the default install and the v1 dictation path are unchanged.
