You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feedback]: Small UX paper cuts — config overwrite on shutdown, silent invalid defaultEffort, model-toggle naming #488
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.
Reason: The new issue discusses configuration and handling of models, which overlaps with issues related to model availability and configuration persistence.
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-runsaveConfig* 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.
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.
Activity
github-actions commentedon Jul 26, 2026
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.
a1980881039 commentedon Jul 26, 2026
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.
fix(config): stop service-time saves from clobbering hand-edited clau…
Wibias commentedon Jul 26, 2026
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.jsonoverwritten while service runs — partially fixedReal on 2.7.40. v2.7.41 landed
765be535(saveConfigPreservingClaudeCode+armClaudeCodeBaseline): service-time saves no longer clobber hand-editedclaudeCode.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-runsaveConfig*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.jsondirectly and the proxy reloads on start, with no “prefer stop first / concurrent edit risk” warning.2. Invalid combo
defaultEffortsilently ignored — still realRuntime intentionally fail-opens: unsupported effort is omitted (
concreteComboRequestBody/ debug once). Catalog snaps viaeffectiveComboDefault. Save/API validation only checks the Codex effort enum, not member intersection. GUIEffortSelectstill 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:
disabledModelsonly 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 syncsilent combo drop — tracked in #484Confirmed 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.
github-actions commentedon Jul 26, 2026
Wibias commentedon Jul 26, 2026
Fix PR: #517
Per-item status in this PR:
claudeCodeclobber risk called out (partial fix already in v2.7.41).defaultEffort— Combos picker now offers only the member effort intersection and warns when a saved value is outside it.fix(ux): clarify config edits, combo effort picker, model hide naming (…
fix(config): stop service-time saves from clobbering hand-edited clau…
fix(ux): clarify config edits, combo effort picker, model hide naming (…
docs(i18n): align zh/ja config concurrent-edit warnings with lidge-ju…