Skip to content

Separate provider selection from provider-specific model selection #47

Description

@Mineru98

Problem

The current model picker mixes two different choices into one surface:

  • which backend/provider should run the main session, and
  • which model slug should that provider use.

That makes the UI harder to explain once a provider supports more than one model. It also makes it difficult to show the active provider and active model separately in the TUI footer.

Proposed change

Split the user-facing flow into two related commands:

  1. /provider chooses the active backend/provider, such as ChatGPT Codex, Claude, or a local CLI backend.
  2. /model lists and selects model slugs for the active provider.

The Codex provider should expose its supported model slugs separately from the provider catalog, default to the current supported Codex model, and still allow migration/testing overrides when needed.

Acceptance criteria

  • /provider opens the provider/backend selection surface.
  • /model shows model slugs for the active provider instead of selecting a backend directly.
  • Selecting a model slug persists separately from the selected provider.
  • The footer can show both the active provider and the selected model slug.
  • Codex defaults to the supported built-in model slug.
  • The Codex request body uses explicit, environment, session, and fallback model precedence consistently.

Related files

  • lib/ourocode/model/*
  • lib/ourocode/provider/codex/client.ex
  • lib/ourocode/terminal/command_model_commands.ex
  • lib/ourocode/terminal/tui_state.ex
  • lib/ourocode/terminal/tui_chat.ex

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions