Skip to content

[Bug]: Models visibility switches block successive clicks while saving #6425

Closed

Description

@andrew05060414

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

  1. Open the dashboard's Models catalog with at least two models.
  2. Toggle one model's visibility.
  3. Try toggling another model before the first save and catalog refresh settle: its switch is disabled.
  4. 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

  1. github-actions commented on Oct 2, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: English.

  2. added
    bugSomething isn't working
    catalogModel catalog, slugs, visibility, routed entries
    on Oct 2, 2026
  3. Ingwannu commented on Oct 2, 2026

    @Ingwannu
    Owner

    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.

  4. added a commit that references this issue on Oct 3, 2026
    6d4e404
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

    bugSomething isn't workingcatalogModel catalog, slugs, visibility, routed entries

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions