v3.1.0 (2026-10-03)
- Removed the voice-dictation subsystem (BLE mic button, btmon capture,
  Gemini/Whisper STT) entirely - it crashed and had no reliable trigger
  anyway. Text autocomplete only now, Hebrew+English via the existing
  autocomplete_lang / autocomplete_lang_multi settings.
- Addon renamed from "AutoCompletion with Voice for Keyboard" to
  "AutoCompletion for Keyboard" to match.

v3.0.1-beta.4 (2026-10-03)
- Fix: the on-screen mic button overlay (lib/mic_button.py) was dead code
  - service.py never instantiated or polled it, so voice input had no
  trigger at all without a paired BLE remote or a hand-written keymap
- New "multi" autocomplete_lang option: query the provider once per
  language picked in the new multiselect autocomplete_lang_multi
  setting and merge+dedupe results, instead of only ever searching one
  language (or auto's fixed he/en pair)
- Note: suggestions showing nothing is not a bug in this addon on
  Estuary or Aeon Nox SiLVO - both already call plugin.program.autocompletion
  natively. Check: addon enabled, and on Aeon Nox SiLVO also toggle
  Configure Skin -> Extras -> "Enable autocomplete"

v3.0.1-beta.3 (2026-07-18)
- Tap mic to start, tap again to stop (remote-native toggle); silence
  detection (1.5s) stops automatically if you just stop talking
- Persistent "Listening..." indicator that flips to "Transcribing..."
  and closes when results arrive — no more silent dead air
- Send MIC_CLOSE the moment capture ends so the remote's LED turns off
  immediately; open the mic once per session instead of on every retry
- Voice actually works end-to-end on ATVV remotes (UR02, SHIELD family)
- Speak the real ATVV protocol: GET_CAPS handshake at startup, MIC_OPEN
  (ADPCM 8kHz) on button press, START_SEARCH (0x08) recognized,
  AUDIO_END (0x00) stops capture
- Reassemble 128-byte audio frames and seed the ADPCM decoder from each
  frame header (predictor + step index) — fixes robotic/garbled audio,
  which also un-breaks silence detection and STT accuracy
- BLE characteristic discovery via busctl (Kodi's Python has no dbus
  module on CoreELEC)
- Log STT transcription results; keep last capture as WAV + raw payload
  dump in temp for diagnostics

v3.0.1-beta.2 (2026-07-18)
- Fix ModuleNotFoundError on keyboard popup: vendor the AutoCompletion
  module (v3.0.0 dropped the script.module.autocompletion dependency but
  never vendored its module in)
- AutoCompletion adapted for vendoring: plugin-relative paths, stdlib
  urllib instead of requests (zero third-party deps)
- Ship common_{de,en,fr,nl}.txt wordlists for the local dict provider

v3.0.1-beta.1 (2026-07-18)
- First release through the Appz4Fun Kodi repository (beta channel)
- Release CI: tag-driven zip build + GitHub release + repo dispatch

v3.0.0 (2026-03-31)
- Kodi settings format v2 migration (boolean types, constraints, edit controls)
- Dropped script.module.autocompletion dependency; renamed addon
- BLE remote mic capture (Bluetrum remotes: Ugoos UR-02, G20S) via btmon HCI

v2.2.0 (2026-03-30)
- Voice input for virtual keyboard (press voice button, speak title, autocomplete fills)
- Gemini Cloud STT with automatic title normalization (free tier, zero setup)
- Optional local Whisper STT (offline, opt-in)
- Rate limiting for Gemini free tier (15 RPM, 1000 RPD)
- USB Bluetooth dongle mic support for CoreELEC
