Repository navigation
feat: Local | With AI switch, small settings gear, quick provider/model selection - #65
Conversation
…el switches in the main window popup Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r findable, harden the usability driver Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- custom endpoint is never entered or left from the main window - personal OpenAI key variable survives an OpenRouter round trip - Config.save fixes the file mode before replacing the config - model prompt closes the popup first, save errors no longer latch the error state - tell Dictate and Local apart in the mode line Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… cannot be set Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ls, popup shows only fields that apply Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… exact workflow when the active side is clicked Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ed when it resizes, honest local tooltip Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a5e85b7224
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| cfg.llm_provider = provider | ||
| if provider == "openrouter": | ||
| cfg.llm_base_url = "https://openrouter.ai/api/v1" | ||
| cfg.openai_api_key_env = "OPENROUTER_API_KEY" |
There was a problem hiding this comment.
Preserve a provider-compatible model when switching
When an OpenRouter configuration uses a normal namespaced model ID such as openai/gpt-4o, selecting OpenAI here changes the provider, URL, and key but leaves cfg.llm_model untouched; _build_llm_service() then sends that OpenRouter ID to OpenAI, causing every subsequent AI workflow to fail. The reverse switch can likewise send an OpenAI ID such as gpt-4o-mini to OpenRouter, whose catalog uses namespaced IDs. Preserve a model per provider or require selecting a compatible model during the switch. OpenRouter model IDs OpenAI model IDs
Useful? React with 👍 / 👎.
| cfg.llm_base_url = "" | ||
| cfg.openai_api_key_env = getattr( | ||
| self, "_openai_key_env_memo", DEFAULTS["openai_api_key_env"] | ||
| ) |
There was a problem hiding this comment.
Persist the remembered OpenAI key variable
If a user configured OpenAI with a nondefault variable such as WORK_OPENAI_KEY, switches to OpenRouter, and restarts before switching back, the old name existed only in _openai_key_env_memo while the saved config now contains OPENROUTER_API_KEY. After restart this fallback silently chooses OPENAI_API_KEY, so the valid custom key is forgotten and the quick switch back to OpenAI is refused. Store provider-specific key-variable names persistently rather than relying on an in-memory memo.
Useful? React with 👍 / 👎.
…cannot resize it Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…temp dir Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Summary
Config.savefixes the file mode before replacing the config.scripts/gui_usability_check.py) with click budgets, accessibility gates and thegui-usability-reviewskill; README and screenshots updated.Verification
WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen), 5 full runs per commit, 0 skipped.Rollback
git revertthe merge, orgit switch mainand restartblitztext-linux.🤖 Generated with Claude Code