Skip to content

0.1.18

Choose a tag to compare

@webdevarif webdevarif released this 07 Jun 22:31
· 23 commits to main since this release
feat: unify provider picker for STT, AI Formatting, and Refine

- One Provider picker in Cloud mode controls everything: OpenAI, Groq,
  OpenRouter, or Custom. Removes the confusing second picker that used
  to live inside the AI Formatting card.
- Picking OpenAI/Groq sets both sttProvider and gptProvider — STT,
  formatting, and refine all go to the same key.
- Picking OpenRouter/Custom sets gptProvider only; sttProvider stays as
  the last OpenAI/Groq value so Whisper has a fallback. Amber warning
  shown when no STT-capable key exists.
- pipeline.ts: new buildGptClient() picks the right OpenAI-compatible
  client per provider (OpenAI base URL, Groq, OpenRouter w/ HTTP-Referer,
  or Custom with user base URL + optional JSON headers).
- callRefine(): same provider selection, falls back through other
  configured keys when the chosen provider lacks one.
- New settings fields: gptProvider, openrouterKeyEncrypted,
  customKeyEncrypted, customBaseUrl, customChatModel, customHeaders.
  All encrypted via safeStorage (centralised in persistEncryptedKey).
- Local mode + AI Formatting: uses any cloud key fallback (Groq first
  for speed) since no local LLM is bundled.
- Paste path: switched from char-by-char SendInput (slow) to clipboard
  + smart Ctrl+V / Ctrl+Shift+V keystroke detected from foreground
  window class — instant regardless of text length, works in terminals.