# v2.42.0 — prove that typing arrives

**Released 2026-10-04.** Upgrade:

```sh
sudo snap refresh yazses     # snap
pipx upgrade yazses          # or: uv tool upgrade yazses
scoop update yazses          # Windows
```

## Every check described the sender, and none looked at the result

Hours before this release, dictation on an Ubuntu laptop was heard, transcribed and
reported as typed — `yazses doctor` passed, `yazses status` said 100 %, the log read
`Injecting N chars`, `ydotoold` accepted the client and the kernel saw the key events —
while the text went into a window that was not the user's, and nothing appeared. That
cause is fixed in [v2.41.0](v2.41.0.md). What it exposed is that YazSes had **no check
that observes the text arriving**: `yazses verify --type` printed "typed the transcript
into the focused window" whenever the injector did not raise.

## What `yazses verify --type` does now

It types the transcript into a small window it opens, and reports what **arrived** on the
`Delivery` line:

| Result | Meaning |
|---|---|
| delivered | The window held keyboard focus, the text was typed, and it arrived intact. |
| not delivered | The window held focus, the text was typed, and nothing arrived. The only result that triggers a repair: on Linux with ydotool, the `ydotoold` user service is restarted **once** and the check runs once more. The outcome is stated either way. |
| garbled | Something arrived but not what was typed — a keyboard-layout mismatch or dropped keys. A restart does not fix that, so none is attempted. |
| not proven | The window never got keyboard focus, so nothing was typed and nothing can be said. This is reported as a failure, never as a pass. |

Without the desktop extra (PySide6) or a graphical session there is no window to open; the
command says so, types into the focused window as before, and states that arrival was
**not** checked. See [Troubleshooting](../troubleshooting.md#dictation-is-heard-and-typed-but-nothing-appears-gnome-wayland).

It is deliberately an on-demand command and not a background check: a window that appears
while you type would take focus from your app, which is exactly the fault it exists to
catch. There is no new command and no new configuration key.

Exercised on a real Wayland session against the real injector: the healthy path reported
delivered in half a second, and a typer that types nothing reported not delivered, with the
`ydotoold` service restarted (its process id changed) and the failure still stated honestly.

## Also

The packaging manifests (Scoop, Chocolatey, winget, Homebrew, AUR, Fedora) were refreshed
for v2.41.0 from the assets actually attached to that release.

The complete list is in the [changelog](https://github.com/MSKazemi/yazses/blob/main/CHANGELOG.md).
