Skip to content

[Codex] A third-party provider can be captured as the immutable default profile #6

Description

@KyuubiRan

Summary

When Charon is started for the first time while Codex is configured to use a third-party relay, it captures the current live configuration as the protected default profile.

As a result, the relay is effectively treated as the permanent baseline configuration and cannot be edited or deleted from the UI.

Environment

  • Charon: v1.3.8
  • OS: macOS
  • Codex CLI: v0.144.1

Steps to reproduce

  1. Configure Codex to use a third-party provider:

    model_provider = "relay"
    
    [model_providers.relay]
    base_url = "https://relay.example.com/v1"
    wire_api = "responses"
    requires_openai_auth = true
  2. Store the relay API key in ~/.codex/auth.json.

  3. Start Charon for the first time.

  4. Open the Codex profile list.

Actual behavior

Charon captures the relay configuration as:

default
Default (auto-captured)

The captured profile is protected and cannot be edited or deleted, even though it represents a user-defined third-party relay rather than the official OpenAI configuration.

Expected behavior

A third-party configuration should not become an immutable default merely because it was active when Charon started for the first time.

Possible solutions include:

  • Detect whether the current configuration actually uses the built-in OpenAI provider before protecting it as the official default.
  • Import a detected third-party provider as a normal editable profile.
  • Create a clean official OpenAI profile separately.
  • Ask the user whether the current configuration should become the protected default.

Impact

Users who install Charon while a relay is active cannot subsequently edit or delete that relay through the UI. Correcting the profile currently requires manually modifying Charon's internal profile files.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions