Skip to content

v0.2.0 — Multi-provider + Streaming SSE

Pre-release
Pre-release

Choose a tag to compare

@hoangperry hoangperry released this 09 May 18:32

What's new in v0.2.0

App-side multi-provider support (Phase 3)

  • New Translation Source picker: Direct API / Custom backend / 1st-party backend
  • 7 direct providers — call APIs without a backend hop:
    • Gemini (Google AI Studio)
    • Ollama (local, privacy-first)
    • Google Translate Basic
    • OpenAI-compatible (LM Studio / OpenRouter / vLLM / OpenAI)
    • Gemini CLI (experimental)
    • Codex CLI (experimental)
    • Mock (echo, for smoke tests)
  • Per-provider credential slots in macOS Keychain
  • TranslationProviderFactory dispatches based on Settings; switch sources without re-entering keys

Streaming SSE (Phase 5)

  • New /translate/stream endpoint emits SSE chunks
  • Inbound flow shows progressive HUD as tokens arrive
  • Mid-stream errors surface as RFC 7807 frames

v2 client adoption (Phase 2.5)

  • Idempotency-Key on every request → server cache prevents double-paste
  • RFC 7807 problem-details parsing → richer error messages
  • 429 + Retry-After UX → "slow down, retry in 3s" instead of generic error

Production polish (Phase 7)

  • X-Forwarded-For aware rate limiting (opt-in via env)
  • DEPLOY guide with monitoring, troubleshooting, SSE nginx config

Tests

  • 122 Swift / 29 suites + 68 pytest / 14 classes = 190 GREEN

Install (alpha)

  1. Download `Contextual-Mac-Translator-v0.2.0-macos-arm64.dmg`
  2. Open DMG → drag app to /Applications
  3. Launch from /Applications
  4. Grant Accessibility (System Settings → Privacy & Security)
  5. Open Settings, pick a Source, paste credentials, test hotkey

Notes

  • Apple Silicon only (arm64)
  • Ad-hoc signed; first launch may need right-click → Open
  • Bundle ID still placeholder (`app.lookerlab.translator`); Developer ID signing is on the M2 roadmap