feat(vision): routed describer backend — any picker-visible image-capable model (#2188) - #2306
Conversation
…ds (#2188 roadmap 170) Any picker-visible, non-provably-text-only provider row can now be offered as the vision describer through the new 'routed' backend. Adds the VISION_BACKENDS descriptor table, namespaced routed option values, the four-family + namespaced provably-blind probe, PUT coherence rules (namespaced <-> routed), and claude-code override parity. Docs 170/180 revised with three audit rounds folded in.
…roadmap 180) The routed backend describes images by POSTing the proxy's own /v1/chat/completions with the namespaced describer model, so every provider wire the router speaks is a valid describer. Recursion fence: the request carries x-opencodex-vision-describe, detected at the chat surface (bridge rebuilds headers) and honored at the Responses plan site — marked requests strip instead of describing (depth cap 1). Native chat fast path now defers image-bearing text-only-model requests to the Responses pipeline so vision coverage is symmetric. Admission ladder: env token, service token file, first apiKeys entry, sent as x-opencodex-api-key.
…ber verbatim Splits VisionBackend from the legacy SidecarBackend pair (web-search keeps its own union), infers routed for namespaced values in the GUI fallback so a working describer is never rewritten on save, widens the claude-code override select, updates the CLI usage line, and makes GET report a routed backend's namespaced model instead of collapsing to the legacy default.
|
✅ Deterministic PR hygiene checks passed. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (23)
📝 WalkthroughWalkthroughThe vision sidecar now supports a ChangesUnified vision routing
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant ResponsesCore
participant VisionIndex
participant RoutedDescribe
participant ChatCompletions
participant TextOnlyModel
Client->>ResponsesCore: Send image request
ResponsesCore->>VisionIndex: Plan routed vision description
VisionIndex->>RoutedDescribe: Describe image with provider/model
RoutedDescribe->>ChatCompletions: Send terminal multimodal request
ChatCompletions->>ResponsesCore: Propagate terminal marker
ResponsesCore->>TextOnlyModel: Forward caption without image
TextOnlyModel-->>RoutedDescribe: Return description text
RoutedDescribe-->>ResponsesCore: Provide extracted caption
Suggested reviewers: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ READY
Hygiene✅ Deterministic PR hygiene checks passed. |
…sidecar feat(vision): routed describer backend — any picker-visible image-capable model (lidge-jun#2188)
Summary
Adds the "routed" vision-sidecar backend (#2188 roadmap 160-190, revised): any picker-visible, non-provably-text-only provider row can describe images. The describer dispatches through the proxy's own /v1/chat/completions on loopback, so every provider wire the router speaks (xai, Antigravity, volcengine, cursor, zenmux, ...) is a valid describer with ONE executor. Options carry namespaced provider/model values; the provably-blind write gate widens to all vendor families and learns namespaced ids; PUT coherence rejects namespaced-with-legacy-backend and bare-with-routed. Recursion fence: the loopback describe carries x-opencodex-vision-describe, detected at the chat surface and honored at the Responses plan site (depth cap 1); the native chat fast path defers image-bearing text-only-model requests to the Responses pipeline. GUI splits VisionBackend from the legacy pair and infers routed for namespaced values; CLI list/usage updated; GET reports a routed describer verbatim.
Design + 4-round adversarial audit recorded in devlog/_plan/260820_sidecar_selection_unification/160-190.
Verification
Checklist
Screenshot
Summary by CodeRabbit
New Features
provider/modelidentifiers in vision selections.Bug Fixes