# YazSes v2.1.0-dev.2 — Wave D medium tier (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**.

Builds on `v2.1.0-dev.1` (ship-now tier) with three more on-device Wave D features. Design in
`design/vision/v2-research/06-wave-d.md` + `design/adr/adr-v2-018..020`.

## New features (all off by default)

- **Voice Guard** (ADR-v2-018, `[voiceguard]`, experimental) — types only when the *live*
  speaker matches your enrolled voiceprint and the audio isn't synthetic/replayed. Pure
  admission gate with `fail_open` (default) so a missing score never locks you out. ECAPA +
  anti-spoof models opt-in behind the `voiceguard` extra; reuses the encrypted voiceprint.
- **Meeting Scribe** (ADR-v2-019, `[scribe]`) — on-device "who said what" transcript, tagging
  you as **You** and others as **Speaker N**. Pure labelling/merge/format layer; streaming
  diarization (Sortformer) opt-in behind the `scribe` extra.
- **Ask My Notes** (ADR-v2-020, `[rag]`) — ask by voice, get an answer grounded in and citing
  your own local documents (distinct from Spoken Recall, which searches past dictations). Pure
  retrieval-ranking + cited-context layer; embeddings + `sqlite-vec` + answer LLM opt-in
  behind the `rag` extra, with an extractive (no-LLM) fallback.

`yazses features` now lists 34 capabilities (new: `voiceguard`, `scribe`, `rag`).

## Researched, not yet built (Wave D backlog)
Neural-codec ultra-low-latency streaming (Kyutai), silent-speech (sEMG), VLM screen
commanding, atypical-speech LoRA. See the research doc.

## Quality
934 tests green across Linux × macOS × Windows on Python 3.11 and 3.12. Every new feature's
pure logic is unit-tested; heavy backends stay lazy behind optional extras, so the default
install and the v1 dictation path are unchanged when everything is off.
