## 2026.10.1 ### Highlights - Transcription no longer reports to Microsoft. - Logs no longer contain what you dictated. - Removed: Meeting capture and local speaker labelling, from every build, beta and stable (#140). - Removed: GPU support. Dictate runs on the CPU only; NVIDIA CUDA and AMD lanes are no longer supported. - Removed: The Whisper-family speech backends: faster-whisper, WhisperX and the unregistered whisper.cpp backend. - Dictation works on Windows. - The window connects to its engine even when the engine is slow to start. ### Changes - Removed: Meeting capture and local speaker labelling, from every build, beta and stable (#140). Meetings are P3: not ready, and not a focus until dictation is. The work is kept on the `archive/meeting-2026-10-03` branch and tag. Gone with it: the Meeting button and the All / Meetings / Quick filter, the pyannote, DiariZen and Sortformer backends, `dictate config set-meeting-model`, the `/api/meetings/*` routes, the `meeting` and `sortformer` extras (torch, torchaudio, torchcodec, pyannote.audio, NeMo), the bundled pyannote model and the Hugging Face token the builds needed, and the Meeting benchmark lanes and readiness item. The build fails if torch or pyannote are frozen into the engine again. On upgrade a saved `meeting_stt_backend` / `meeting_stt_model` is removed from `config.yaml` with one notice, and a dictation backend set to a Meeting backend becomes `parakeet` with its model kept. Meeting transcripts you saved stay in your notes, readable and exportable with their speaker labels. `install.sh --meeting` and `install-windows.ps1 -Meeting` are ignored with a notice. - Removed: GPU support. Dictate runs on the CPU only; NVIDIA CUDA and AMD lanes are no longer supported. - Removed: The GPU install paths: the `gpu` and `amd` extras, `install.sh --gpu`, and the Windows installer's CUDA step. Updating removes a leftover GPU ONNX Runtime from a Windows install, and old flags (`--gpu`, `-ForceCuda`, `-NoCuda`) are ignored with a notice. - Removed: Device selection. The engine, tray and settings have no CPU/GPU choice. On upgrade, a saved `stt_device` is removed from `config.yaml` and a saved `float16` compute type becomes `int8`, with a one-line notice when a GPU was chosen; everything else in the config is kept. A `--device` flag is still accepted so existing scripts and installers run, and is ignored. - Removed: GPU benchmark, evidence and audit tooling: the AMD promotion runners, the CUDA/AMD benchmark lanes, the `windows-vm-smoke.sh --mode amd` check, and the GPU fields in benchmark reports. - Removed: The Whisper-family speech backends: faster-whisper, WhisperX and the unregistered whisper.cpp backend. Parakeet (v2 English, v3 multilingual) is the only dictation engine; the desktop app already used nothing else. A config that still names a Whisper backend or model falls back to Parakeet v2; a config that sets only `stt_model: parakeet-tdt-0.6b-v3` keeps v3. The engine no longer bundles CTranslate2 or PyAV, and with PyAV goes the GPL-licensed FFmpeg build (libx264/libx265) it carried. - Third-party notices ship with the app: `THIRD_PARTY_NOTICES.md`, the GNU licence texts, and an attribution file beside each bundled model. ### Fixes - Hugging Face Hub telemetry is turned off before the library loads. Dictate makes no analytics requests. - Transcription no longer reports to Microsoft. ONNX Runtime, which runs the Parakeet model, has Microsoft's telemetry client built in: it kept a device ID and an event queue under `~/.cache/Microsoft/DeveloperTools` and uploaded to mobile.events.data.microsoft.com. Dictate now sets `ORT_DISABLE_TELEMETRY=1`, so it does neither. - Logs no longer contain what you dictated. Finished dictations and notes are logged as their length; the words appear only in an interactive terminal. - Logs written by 2026.9.27 and earlier are scrubbed of dictated text on startup. - Dictation works on Windows. The engine read the system's default microphone from sounddevice as a list, but sounddevice returns a pair object, so the default was lost; on Windows nothing else matched, and every recording failed with "no microphone input devices detected" even with microphones plugged in. The engine now reads the default correctly and, failing that, tries any device that can capture. - The window connects to its engine even when the engine is slow to start. It used to wait 8 seconds and then stay on "Dictate engine is not connected" for good, even after the engine came up; the Windows Store build's engine took about 11 seconds on a cold start. It now keeps checking and connects as soon as the engine is ready, without freezing while it waits. ### Complete contribution record This audited record covers the complete c30c6d05db6d7a0e50a3739a2c073270ab955d37..20386bdb17364f196858c3ab26e654de5f2e43e7 history: 26 in-range PRs + 0 retained seed-only PRs = 26 unique PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact. #### Pull requests - **PR #93** - **PR #95** - **PR #96** - **PR #98** - **PR #105** - **PR #103** - **PR #104** - **PR #129** - **PR #99** - **PR #101** - **PR #113** - **PR #132** - **PR #133** - **PR #114** - **PR #122** Related #112. - **PR #127** - **PR #118** - **PR #117** Related #110. - **PR #124** Related #111. - **PR #142** - **PR #139** - **PR #143** - **PR #137** - **PR #146** - **PR #144** - **PR #147**