Skip to content

[Bug]: ocx sync drops configured combo members and omits failover catalog entry #1308

Closed

Description

@yusoofsh

Client or integration

Codex CLI

Area

Catalog / models

Summary

ocx sync can omit a configured failover combo when provider model discovery does not retain all configured members. The expected combo/failover catalog entry disappears even though the configured provider/model targets are callable and have metadata.

Reproduction

  1. Configure a failover combo with these targets:

    • openrouter/openai/gpt-5.6-luna
    • opencode-go/deepseek-v4-flash
    • command-code/xiaomi/mimo-v2.5-pro
  2. Run:

    ocx sync --restart-codex
  3. Observe:

    Combo "failover" is omitted from the catalog because member capabilities are incomplete
    

    Earlier runs also reported configured OpenRouter model IDs being dropped when live discovery omitted them.

Version

2.11.0

Operating system

macOS arm64

Provider and model

OpenRouter / openai/gpt-5.6-luna; OpenCode Go / deepseek-v4-flash; Command Code / xiaomi/mimo-v2.5-pro

Logs or error output

[opencodex] Combo "failover" is omitted from the catalog because member capabilities are incomplete: openai/gpt-5.6-luna, opencode-go/deepseek-v4-flash

Screenshots and supporting files

None.

Redacted configuration

{
  "combos": {
    "failover": {
      "strategy": "failover",
      "targets": [
        { "provider": "openrouter", "model": "openai/gpt-5.6-luna", "weight": 1 },
        { "provider": "opencode-go", "model": "deepseek-v4-flash", "weight": 1 },
        { "provider": "command-code", "model": "xiaomi/mimo-v2.5-pro", "weight": 1 }
      ]
    }
  }
}

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

  1. github-actions commented on Aug 8, 2026

    @github-actions
    Contributor

    Automated translation bookkeeping — detected language: English.

  2. added
    account-poolOAuth, credentials, Codex pool, quota, failover, plans
    catalogModel catalog, slugs, visibility, routed entries
    cliCLI, config inject, packaging flags
    on Aug 8, 2026
  3. github-actions commented on Aug 8, 2026

    @github-actions
    Contributor

    Issue reopened

    The report now contains the information required by the automated check. Thanks for updating it.

  4. changed the title [-]ocx sync drops configured combo members and omits failover catalog entry[/-] [+][Bug]: ocx sync drops configured combo members and omits failover catalog entry[/+] on Aug 8, 2026
  5. self-assigned this
    on Aug 9, 2026
  6. Ingwannu commented on Aug 9, 2026

    @Ingwannu
    Owner

    Maintainer triage: the reported catalog loss is a valid bug, but draft PR #1310 does not yet safely resolve the full issue.\n\nIts current head is 66 commits behind dev and the patch only protects one static OAuth reconciliation path. It does not yet prove preservation of every configured combo member across the OpenRouter/OpenCode Go/Command Code reproduction. It also overloads liveModels: false as operator-ownership provenance; that would incorrectly freeze registry-owned providers such as Kiro and skip updates to broader capability metadata.\n\nThe fix needs an explicit ownership/provenance rule plus regression coverage for both operator-owned static catalogs and registry-owned static providers, followed by an end-to-end combo catalog assertion. Keeping the issue open and not treating #1310 as merge-ready.

  7. Ingwannu commented on Aug 9, 2026

    @Ingwannu
    Owner

    Fixed in #1331 and merged into dev as a9838c1a353cab772265b65c14a473cde5c4441a.

    The landed fix now:

    • includes the sorted combo-retention set in the provider in-flight identity, so gathers with different combo targets cannot coalesce;
    • reapplies configured combo-target retention across live, fresh-cache, stale/cooldown, and discovery-fallback returns without freezing combo-only state into the cache;
    • covers both concurrent-flight separation and warm-cache addition inside the TTL.

    Exact-head typecheck, 173 focused catalog/gather tests, and the full required GitHub CI matrix passed before merge. Closing as completed on the integration branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

account-poolOAuth, credentials, Codex pool, quota, failover, plansbugSomething isn't workingcatalogModel catalog, slugs, visibility, routed entriescliCLI, config inject, packaging flags

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions