# YazSes v2.5.0-dev.4 — Wave I continues (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**.

Continues **Wave I** (`design/vision/v2-research/11-wave-i.md`) with two more pure cores (heavy
backend deferred behind an optional extra):

## New since dev.3 (all off by default)

- **Citation-by-Voice** (ADR-v2-071, `[cite]`) — "cite Vaswani 2017" → a formatted citation from
  your local BibTeX library, fully offline. `parse_bibtex` + a surname+year fuzzy `resolve_citation`
  + `format_citation` (LaTeX `\cite{key}` / plain / APA). Distinct from voice RAG — deterministic
  lookup, not generation.
- **Per-Language Auto Model Switching** (ADR-v2-072, `[langroute]`) — detects the language you
  speak and hot-swaps to its specialized model + punctuation/ITN, no manual toggle, with a
  confidence gate that falls back to the default. Distinct from True Code-Switch (within-utterance)
  and Polyglot (a fixed pair). The per-language model files are deferred.

`yazses features` now lists **83 capabilities**.

## Wave I remaining
Diarized Conversation Capture + Rename-by-Voice, Adaptive Latency Governor (speculative decoding).

## Quality
1243 tests green across Linux × macOS × Windows on Python 3.11 and 3.12. Both new cores are
unit-tested to 100% with **no new dependency**. This drop also fixed a real variable-name
collision in the feature registry (langroute vs lipread) caught by the write-target regression
guard. The default install and the v1 dictation path are unchanged.
