# Lumi whisper.cpp worker

This is the dedicated native inference process used by `WhisperWorkerSupervisor`. It reads the existing length-prefixed metadata/PCM protocol from standard input and emits newline-delimited structured events on standard output. Audio remains in bounded memory and is never written to disk.

The build pins whisper.cpp to the commit recorded in `runtime_manifest.json` and nlohmann/json to v3.12.0. CPU is the portable verification target; the Lumi server release uses the CUDA option:

```powershell
cmake -S . -B build -G Ninja -DLUMI_WHISPER_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build
```

The worker keeps at most six seconds per source, attempts an incremental decode around every 600 ms during speech, and finalizes after roughly 750 ms of measured silence. The server-side stabilizer remains authoritative for stable-prefix reconciliation and obsolete-revision suppression.

On Windows, the repository setup script builds into a short temporary path and installs the executable where the plugin discovers it automatically:

```powershell
powershell -ExecutionPolicy Bypass -File plugins/lumi_transcription/scripts/build-worker.ps1
```

Pass `-Cuda` only after installing a compatible NVIDIA CUDA toolkit. Lumi prefers the installed CUDA worker and falls back to the CPU worker; `LUMI_TRANSCRIPTION_WORKER` remains an explicit override.
