Repository navigation
[Bug]: Models visibility switches block successive clicks while saving #6425
Description
Client or integration
OpenCodex dashboard
Area
Catalog / models
Summary
Every visibility toggle on the Models page disables the other model switches until the save, client catalog convergence, and full catalog reload finish. The reporter observes roughly 1–2 seconds of waiting after each click, which makes selecting several models tedious.
Expected: switches respond immediately and users can continue selecting models while changes save in the background. Writes should preserve click order, with errors and authoritative server state shown after settlement.
Reproduction
- Open the dashboard's Models catalog with at least two models.
- Toggle one model's visibility.
- Try toggling another model before the first save and catalog refresh settle: its switch is disabled.
- Repeat for several models; each operation waits on the entire save/refresh chain.
Source inspection identifies applyVisibility setting the page-wide busy flag before PUT /api/model-visibility, then awaiting load(true) before unlocking. The backend response itself waits for Codex catalog and owned client catalog refreshes. This is asynchronous network code with a blocking interaction policy.
The behavior was reproduced in a local Chromium fixture with deliberately delayed responses and no real configuration writes. The old page disables the second switch; the proposed fix updates both switches before the first response settles and sends writes in order. This fixture does not establish latency or activation in a real installed proxy.
Version
Source reproduction: 09f8e5ebf (package.json: 2.70.0). The reporter's installed runtime version was not separately captured.
Operating system
Windows; the reported symptom concerns the dashboard interaction policy and does not depend on a particular provider.
Provider and model
Not provider-specific. Browser reproduction uses synthetic demo/model-a, demo/model-b, and demo/model-c rows.
Logs or error output
Before, while first PUT is pending: second switch disabled = true
After, while first PUT is pending: second switch disabled = false
After two clicks: both aria-pressed values = false; writes sent = 1 (second write queued)
Focused regressions: 30 pass, 0 fail
Full GUI suite: 2631 pass, 0 fail
Screenshots and supporting files
Before/after screenshots and detailed validation are included in the linked fix PR. Screenshots use synthetic data and a held response, not real credentials or a real provider.
Redacted configuration
No real configuration is needed for this UI reproduction; the fixture supplies a static three-model provider and an empty selection allowlist.
Checks
- I searched existing issues and documentation. Related model-discovery and catalog-sync reports do not cover the per-click page-wide interaction lock.
- I removed secrets, tokens, account details, request credentials, and personal data.
Activity
github-actions commentedon Oct 2, 2026
Automated translation bookkeeping — detected language: English.
Ingwannu commentedon Oct 2, 2026
The focused interaction fix is in #6426. I reviewed its complete current diff (82ece70) and independently ran the actual Models component regressions: 31 passed, 0 failed, including ordered repeated clicks, bulk selection, write/read errors, clicks during reconciliation, and API-target changes. This improves immediate feedback and queues writes; it does not claim faster backend/client activation, and leaving the page can discard unsent changes. Existing hosted CI has been authorized for that head. The PR is still draft pending the remaining checks/repository review and owner UI acceptance; keeping this issue open until a verified dev landing.
fix(gui): queue optimistic model visibility saves (carry lidge-jun#6426)