You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Highlights
OpenAI support, alongside Gemini — connect either key, or both, and switch anytime in Settings → AI model. Every feature works with both: answers, explain mode, agent tasks, multi-step tasks, and the GitHub/web-search/file tools.
Pick any model, not just the default — the model list is fetched live from your own key (filtered to models that can actually read a screenshot), plus a "Custom model ID" box for anything not listed. Defaults are gemini-3.1-flash-lite and gpt-6-luna.
Both providers are BYOK — no server-side fallback for either. Without a key connected, you get a clear "not configured" message instead of a request quietly running on someone else's account.
Opt-in anonymous usage telemetry, off by default, asked once — see the new Privacy page linked from the app's setup guide.
Backend retention hardening — shorter result expiry, log rotation, no Redis persistence.
Security fix: rotated the shared client key after finding it had been hardcoded in a tracked source file; it's now read from a local, gitignored .env at build time.
Multi-step reliability fixes from real test runs (Notepad save-flow, foreground timing).
Verification
32 Rust tests pass
Live click-grounding test across both providers on synthetic screens (gpt-6-luna 11/12 targets, Gemini 10/12, ~4px median error for both)
Verified live against the production backend: old client key rejected, new key accepted, both providers correctly refuse to run without a key