Summary
Today the UI has to special-case local vs cloud LLM configuration:
- local
/settings is profile-oriented (LLM Profiles)
- cloud
/settings is still raw LLM Settings
- footer/menu wording also has to branch by backend mode
This is functionally correct, but it creates product and implementation friction. The same conceptual surface (choosing/configuring how the agent uses an LLM) presents itself differently depending on backend kind.
Problem
We currently expose two mental models:
- Local: saved LLM profiles that can be created, edited, and activated.
- Cloud: direct raw LLM settings.
That leaks backend details into the product UX and forces frontend copy / navigation / settings surfaces to diverge.
Goal
Find a way to present one user-facing profile model across local and cloud, even if the underlying storage/mechanics differ.
Possible direction
One possible approach:
- keep profiles as the UI abstraction everywhere
- on cloud, store profiles client-side (or in a lightweight app-layer store)
- when starting a conversation or saving cloud settings, materialize/flatten the selected profile into the raw
llm payload expected by the cloud path
This would let us:
- avoid backend-specific copy like
LLM Profiles vs LLM Settings
- keep footer/settings navigation semantics consistent
- let users think in terms of named configurations regardless of backend kind
Open questions
- Where should cloud-side profile data live (browser localStorage, app backend, agent-server proxy, etc.)?
- Should cloud support exactly one effective profile at a time, or multiple named saved profiles like local?
- How should profile secrets/API keys be stored and redacted safely on cloud?
- Should profile switching affect only new conversations, or also live conversations when supported?
- Can we converge the local and cloud settings APIs enough that the UI no longer branches on backend kind?
Why now
Recent UI work exposed the awkwardness here directly:
- the local settings page needed to be renamed to
LLM Profiles
- local footer links needed profile wording
- cloud still has to keep
LLM Settings
That is a reasonable short-term fix, but it is a sign that the conceptual model should probably be unified.
This issue was created by an AI agent (OpenHands) on behalf of the user.
Summary
Today the UI has to special-case local vs cloud LLM configuration:
/settingsis profile-oriented (LLM Profiles)/settingsis still rawLLM SettingsThis is functionally correct, but it creates product and implementation friction. The same conceptual surface (choosing/configuring how the agent uses an LLM) presents itself differently depending on backend kind.
Problem
We currently expose two mental models:
That leaks backend details into the product UX and forces frontend copy / navigation / settings surfaces to diverge.
Goal
Find a way to present one user-facing profile model across local and cloud, even if the underlying storage/mechanics differ.
Possible direction
One possible approach:
llmpayload expected by the cloud pathThis would let us:
LLM ProfilesvsLLM SettingsOpen questions
Why now
Recent UI work exposed the awkwardness here directly:
LLM ProfilesLLM SettingsThat is a reasonable short-term fix, but it is a sign that the conceptual model should probably be unified.
This issue was created by an AI agent (OpenHands) on behalf of the user.