Skip to content

[Feature]: grey out zero-credit models/combos in the served model catalog and picker #1711

Description

@ardjo-s

Area

Catalog / models

Goal

Make the model picker reflect known quota exhaustion without removing entries from the catalog.

When a routed model or combo has zero remaining credit across all of its routable targets, OpenCodex should mark that catalog entry as inactive so picker consumers can grey it out and explain why it is unavailable. The entry should become active again automatically when quota resets or refills.

Current problem

Models and combos with known zero remaining credit can still appear as normal selectable entries in the catalog-backed model picker. Users can therefore select an option that OpenCodex already knows cannot currently serve a request.

In scope

  1. Catalog state. Represent known all-target quota exhaustion in the served model catalog without hiding the model/combo.
  2. Picker semantics. Expose enough stable metadata for picker consumers to render the entry as inactive, ideally with a reason such as no_credit.
  3. Recovery. Remove the inactive state automatically when authoritative quota state shows that credit has reset or refilled.
  4. Honest unknowns. Do not mark an entry exhausted merely because quota data is absent or stale; only positive exhaustion evidence should disable it.

Example shape, if compatible with the catalog contract:

{
  "disabled_reason": "no_credit"
}

The exact field name is an implementation decision; the required product behavior is a stable visible entry that can be rendered inactive with an exhaustion reason.

Out of scope

Relationship

Example

Before: combo/grok-4.5 has known zero credit across every routable target but appears active in the picker.

After: the entry remains visible, is marked inactive with a no-credit reason, and becomes active again after quota recovery.

Alternatives considered

  • Manually checking the dashboard before selecting a model: works but duplicates information OpenCodex already has.
  • Hiding exhausted models entirely: rejected because keeping the entry visible preserves catalog stability and explains why it is unavailable.

Additional context

Checks

  • I searched existing issues and documentation.
  • This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
  • I removed secrets and personal data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    catalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions