fix(zai): declare glm-5.3-flash image input on the Chat rows - #4304
Conversation
noVisionModels only said what Flash is not, so the catalog fell through to the text floor and client exports advertised a native VLM as text-only. Closes #4296.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
✅ Deterministic PR hygiene checks passed. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe registry now declares positive input modalities for GLM 5.x models. ChangesGLM 5.x modality declarations
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to The metadata correction is narrowly scoped and verified; no actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 38a4bded07
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Z.AI's OpenAI path returns 400 code 1211 for bracketed model ids. | ||
| modelSuffixBracketStrip: true, | ||
| noVisionModels: ZAI_GLM_5X_SIDECAR_VISION_MODELS, | ||
| modelInputModalities: ZAI_GLM_5X_INPUT_MODALITIES, |
There was a problem hiding this comment.
Document image support for the Chat presets
This changes user-visible catalog and client-export behavior for both zai and zhipu-bigmodel-coding: their pickers now permit native image attachments to glm-5.3-flash. The provider guide currently documents this capability only inside the separate BigModel Responses section, so users of either Chat preset have no corresponding documentation; update docs-site/ to describe the newly exposed Chat-path behavior.
AGENTS.md reference: src/AGENTS.md:L29-L29
Useful? React with 👍 / 👎.
리뷰 · 우선순위 66 / 80설명 이 PR은 Z.AI / BigModel Coding Plan의 Chat 경로 두 줄( 지금 같은 레지스트리 안의 Responses 형제 줄( 고치는 방법은 짧습니다. 테스트는 src/providers/registry.ts · ZAI_GLM_5X_INPUT_MODALITIES - 실질 결함은 보이지 않는다. 사이드카 목록을 text로 펼치고 Flash만 image를 더하는 구조가 Responses 줄·이슈 제안과 같다. 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
|
Merging into Head merged: CI at that head: all 25 checks green, including Local gates: |
Summary
glm-5.3-flashis a native VLM, but the two Chat-path Z.AI rows described it only by what it is not. They list the text-only siblings innoVisionModelsand declared nomodelInputModalitiesat all, which keeps Flash out of the vision sidecar but never tells the catalog what the model can read.configuredInputModalitiesreturnedundefined, the catalog fell through to the["text"]floor, and every client export — ZCode, Pi, OMP — listed a native multimodal model as text-only, so the picker refused to attach an image.The Responses sibling row already declared this positively, so one registry described the same model two different ways.
This adds one shared positive declaration and points both Chat rows at it. The values come from the upstream catalog, not from inference:
and docs.z.ai/devpack/latest-model says the same in prose: "GLM-5.3 is a text-only model, so uncheck Support Images; GLM-5.3-FLASH is a multimodal model, so Support Images can be checked".
Nothing else moves.
isModelVisionSidecarConsumerchecksnoVisionModelsfirst and returns early, so adding["text"]for models already on that list changes no behavior; the advertised value stays["text", "image"]because the sidecar appendsimage. Flash is on neither path now, which is the point. The bracketed aliases are looked up by their exact catalog id rather than a stripped one, so they carry their own text-only entries.glm-4.6,glm-5andglm-5.1stay undeclared and keep their existing fallback.Upstream also lists video and file for Flash. Neither the internal modality vocabulary (
text/image/audio) nor the export vocabulary (text/image) can express them, soimageis where this stops.The vendored snapshot behind
src/generated/model-metadata.tshas noglm-5.3-flashrow at all. That file is byte-synced bytests/codex-integration/model-metadata-sync.test.tsand refreshing it is a separate deliberate commit; registry declarations win over that fallback, so the defect closes here.Closes #4296.
Verification
bun run typecheck— clean.bun test tests/providers/provider-registry-parity.test.ts tests/codex-integration/catalog-vision-sidecar-modalities.test.ts— 68 pass, 0 fail.Checklist
No
structure/ordocs-site/update is required: neither states the Chat rows' modality, so neither becomes false. Planning unit:devlog/_plan/260912_zcode_protocol_and_catalog/020_wp3_glm53_flash_modalities.md.Summary by CodeRabbit
New Features
Tests