Repository navigation
Reach the AI provider settings from the app menu #420
Description
What
The app menu added in #414 (click the OpenScreen wordmark in the editor top bar) lists Keyboard Shortcuts, Check for Updates and About OpenScreen. It deliberately does not list the AI provider settings, even though that is the app's other settings surface and the obvious place a user would look for it.
Why it was left out
ProviderSettings is mounted at src/components/ai-edition/LeftPanel.tsx:1883, and LeftPanel only renders when mode === "edit" and the chat panel is open (src/components/ai-edition/NewEditorShell.tsx, the mode === "edit" && chatOpen branch).
An "AI Providers" item in the top-bar menu would therefore be dead:
- in Media mode,
- in Rec mode,
- and in Edit mode whenever the chat panel is collapsed.
A menu item that works in one of three modes, conditionally, is worse than no item: the user learns the menu lies.
Its open state is a plain useState local to LeftPanel (LeftPanel.tsx:740), set from five call sites (:884, :1146, :1336, :1535, :1856). Nothing outside that component can open it.
What needs doing
Lift the dialog so it is reachable from anywhere in the editor, the way the shortcuts dialog already is:
- Move the
<ProviderSettings />mount out ofLeftPanelup toNewEditorShell(or tosrc/App.tsx:140, next toShortcutsConfigDialog, which is mounted unconditionally forwindowType=editor). - Lift the open state into a context, mirroring
ShortcutsContext(src/contexts/ShortcutsContext.tsx:37/65/66=isConfigOpen/openConfig/closeConfig). All five existing call sites then call the context's opener instead of the local setter. - Add the menu item in
AppMenu(src/components/ai-edition/v4/EditorTopBar.tsx), routed throughTopBarActionslikeshowAbout/checkForUpdates. - Keep the contextual entry points in the AI panel. Two doors to one room is right here; configuring where you work is good UX. The menu item is the discoverable path, not a replacement.
Labels for the strings already exist: editor.providerSettings.title ("AI settings") and editor.chat.providerSettings ("Provider settings..."). Reuse one rather than adding a key, so the menu cannot drift from the dialog it opens — that is the rule the rest of the menu follows (its three current labels are all pre-existing common.actions / shortcuts keys shared with the native menu built in electron/main.ts).
Bigger picture
This is the first step of a settings unification worth doing on its own: today there is a "global" settings dialog covering only keyboard shortcuts, and an AI dialog covering only LLM providers, with nothing linking them. The end state is one Settings dialog with a sidebar of sections (General / Shortcuts / AI / Devices / About), where the app menu routes to sections rather than duplicating them. Doing step 1 above does not commit us to that, but it is the prerequisite either way.
Activity
feat(editor): reach the AI provider settings from the app menu
github-actions commentedon Aug 20, 2026
Fixed by #422 and merged into
main.This change is assigned to the
Next Releaserelease milestone and is not necessarily available in the latest downloadable desktop release yet. It is currently marked asstatus: pending releaseuntil a packaged release containing it is published.fix(editor): stop editor shortcuts reaching the timeline under a modal
fix(editor): suppress editor shortcuts under every modal, not just some