Skip to content

Vision describer eligibility ignores operator modelCapabilities on native rows #4501

Description

@lidge-jun

Client or integration

Direct HTTP/API client

Area

Catalog / models

Summary

ocx provider edit … --model <id> --text-only writes modelCapabilities[id].inputModalities = ["text"], and the inbound consumer path (isModelTextOnly) honors it, but the describer-selection path does not: modelAcceptsImageInputWithCache (src/vision/eligibility.ts:159 at eb81eaa) calls isModelVisionSidecarConsumer with an object literal that omits modelCapabilities, then falls through to nativeInputModalities(id) ?? true. A native/OpenAI-catalog model the operator declared blind can still be selected as the vision-sidecar describer while inbound requests to it are correctly diverted.

Reproduction

  1. Declare a native model text-only: ocx provider edit openai --model <native-slug> --text-only
  2. Trigger a request that needs a vision sidecar describer.
  3. Observe the declared-blind native model remains eligible as describer (returns advertisesImageInput(nativeInputModalities(id)) ?? true), contradicting the explicit declaration.

Found by the 2.53.0 release regression audit (lane03, commit d5d03f8). Synthesis disposition: follow-up issue — 2.52.0 had no modelCapabilities overlay and noVisionModels still disqualifies, so this is not a release blocker. Workaround: use noVisionModels.

Version

dev @ eb81eaa (post-2.52.0, pre-2.53.0)

Operating system

macOS (any; codepath is platform-independent)

Provider and model

any native/OpenAI-catalog model declared text-only

Logs or error output

N/A

Screenshots and supporting files

N/A — evidence is source-level, cited inline.

Redacted configuration

providers.

.modelCapabilities..inputModalities = ["text"]

Checks

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

Activity

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 entrieslanded-via-maintainerOriginal PR closed after landing via a maintainer merge train

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions