Skip to content

[Feedback]: Small UX paper cuts — config overwrite on shutdown, silent invalid defaultEffort, model-toggle naming #488

Closed

Description

@a1980881039

Version: v2.7.40. A few minor issues collected during real usage; feel free to split.

1. Running service silently overwrites hand-edited config.json on shutdown
While the service is running it keeps config in memory and persists it on exit — so a manual edit to ~/.opencodex/config.json is silently lost on the next stop/restart, with no warning. Consider detecting external modification (mtime/hash check before persisting) or documenting "do not edit config.json while the service is running" prominently.

2. Invalid combo defaultEffort is silently ignored
If a combo's defaultEffort (e.g. ultra) is not in the intersection of its members' effort lists, it is silently dropped (only a log line). The GUI combo editor lets you pick efforts the members don't support. Suggest restricting the picker to the members' intersection, or showing a warning.

3. Model enable/disable toggle naming is misleading
The toggle in the Models tab only hides a model from the catalog — the model remains directly callable. "Disable" suggests blocking. Consider renaming to "Hide from catalog".

4. ocx sync gives no hint when a combo is dropped from the catalog
Covered in detail in #484 — mentioned here only so it appears in the paper-cut list: ocx sync exits successfully with no warning even when a configured combo fails catalog derivation.

Activity

  1. github-actions commented on Jul 26, 2026

    @github-actions
    Contributor

    Possibly related issues:

    Reason: The new issue discusses configuration and handling of models, which overlaps with issues related to model availability and configuration persistence.

    Detected automatically via GitHub Models.

  2. a1980881039 commented on Jul 26, 2026

    @a1980881039
    Author

    One more note: if you're busy, I'd be happy to take a stab at this myself and open a PR. Just let me know.

  3. Repository owner deleted a comment from github-actions on Jul 26, 2026
  4. Wibias commented on Jul 26, 2026

    @Wibias
    Contributor

    Triage

    Thanks — this is a solid paper-cut list on v2.7.40. Checked against current dev / v2.7.41. Not closing; status per item:

    1. Hand-edited config.json overwritten while service runs — partially fixed

    Real on 2.7.40. v2.7.41 landed 765be535 (saveConfigPreservingClaudeCode + armClaudeCodeBaseline): service-time saves no longer clobber hand-edited claudeCode.

    Residual gap: reconciliation is claudeCode-only. Hand edits to other keys (e.g. providers) can still be lost on any in-run save. Also: loss is from mid-run saveConfig* writers (GUI/API/key rotation/etc.), not a dedicated shutdown persist — easy to notice only after stop/restart.

    Docs still say you can edit config.json directly and the proxy reloads on start, with no “prefer stop first / concurrent edit risk” warning.

    2. Invalid combo defaultEffort silently ignored — still real

    Runtime intentionally fail-opens: unsupported effort is omitted (concreteComboRequestBody / debug once). Catalog snaps via effectiveComboDefault. Save/API validation only checks the Codex effort enum, not member intersection. GUI EffortSelect still offers the full static list.

    Valid small fix: restrict the picker (and/or warn on save) to the intersection of selected targets’ reasoningEfforts.

    3. Model enable/disable naming — still real, low severity

    Behavior is intentional and partly documented: disabledModels only hides from catalog / /v1/models; exact ids remain callable. Models-page subtitle already says “hidden”. Remaining confusion is naming (disabledModels, “Disable”/“active” counters, provider-level Disable copy).

    Tiny i18n/docs polish (“Hide from catalog”) is enough; no wire-format rename needed.

    4. ocx sync silent combo drop — tracked in #484

    Confirmed separately; #484 reopened with full triage. Keeping that as the focused fix issue.

    Ask / next

    Happy to take a contributor PR if you want to start with #484 sync/GUI warnings, or the combo effort picker. Otherwise maintainers can schedule small follow-ups: docs for concurrent config edits → combo effort validation → hide-from-catalog naming.

  5. github-actions commented on Jul 26, 2026

    @github-actions
    Contributor
  6. Wibias commented on Jul 26, 2026

    @Wibias
    Contributor

    Fix PR: #517

    Per-item status in this PR:

    1. Config overwrite — docs warn about concurrent hand-edits; residual non-claudeCode clobber risk called out (partial fix already in v2.7.41).
    2. Invalid defaultEffort — Combos picker now offers only the member effort intersection and warns when a saved value is outside it.
    3. Disable vs hide naming — Models copy now says hide/visible; exact ids remain callable.
    4. Sync silent combo drop — tracked separately in [Bug]: Combo silently omitted from model catalog when a member lacks capability metadata — no GUI/CLI warning #484 / fix(combos): surface catalog omissions in sync and GUI #516
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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