Skip to content

Tech debt: unify local and cloud LLM configuration around profiles #533

@enyst

Description

@enyst

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:

  1. Local: saved LLM profiles that can be created, edited, and activated.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions