fix(provider): treat deepseek-flash as native multimodal - #4467
fix(provider): treat deepseek-flash as native multimodal#4467jaychou0642-create wants to merge 1 commit into
Conversation
Closes lidge-jun#4436. - Remove 'deepseek-flash' from first-party DeepSeek's 'noVisionModels'. - Declare native 'text' and 'image' input in 'modelInputModalities'. - Keep compatibility aliases ('deepseek-chat', 'deepseek-reasoner', 'deepseek-v4-flash') and Zen gateway routes unchanged. - Update docs and structure SSOT files accordingly. - Add focused registry and end-to-end vision sidecar regression tests.
|
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 (13)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe DeepSeek registry now treats ChangesDeepSeek native vision routing
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to DeepSeek Flash image requests are classified for native forwarding while existing override and legacy-routing behavior remains covered. No actionable merge risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 3 files. (10 skipped: 10 unsupported.)
✨ Finishing Touches🧪 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 |
|
✅ Deterministic PR hygiene checks passed. |
✅ READY
Review readiness checklist
✅ 4/4 boxes ticked. This pull request is already Ready for Review. |
리뷰 · 우선순위 68 / 80설명 지금 이 PR이 하는 일은 그 처방과 거의 같다. first-party 엔트리에서 우선순위 68은 “기본 DeepSeek 모델의 이미지 경로가 틀려 있던 실사용 버그” 무게와, 범위가 레지스트리+테스트+문서라 위험이 낮은 점의 균형이다. #4462(서브에이전트 v1 기본)와 파일 겹침이 거의 없어 기차에 끼워도 부담이 작다. 다만 PR base가
심볼 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
…epseek-flash-vision Lane I3 of the contributor carry train: the remaining #3775 catalog defect, and the deepseek-flash native-multimodal fix carried from #4467 by jaychou0642-create. #4467 was found by the dispatch-time ownership re-check rather than by the candidate harvest — it was opened after the harvest and before this lane, by the person who filed #4436 — so it is carried with a Co-authored-by trailer instead of being reimplemented. That check exists because lane I1 implemented #4442 fresh while contributor draft #4465 had already proposed it. The #3775 link is an implementation with no source branch. It bounds custom native-id effort lists on gateways, which is what #3804 deliberately left open pending Desktop gateway evidence; the original report is that evidence, since Desktop names gpt-6-astra in the 400 rather than the provider prefix. #4349 and the #4409 ladders do not fix this catalog projection. Cross-platform CI run 34751593123 concluded success on 9f318cb, the exact head merged here, and it covers both links because the lane is cumulative. #4499 carries no ci check of its own under the owner-authorized tip-only CI economy for this batch.
|
Closing as landed, with your credit attached. Treating deepseek-flash as native multimodal is on dev via #4500 (merge commit 94063d0, verified as an ancestor of origin/dev). Your Co-authored-by trailer is in the landed commit itself rather than only in a description, so it counts on your contributor graph. Worth saying how this was found: the train that landed it works from a scored inventory of open pull requests, and yours was opened after that snapshot was taken. The lane was originally planned to implement #4436 from scratch. A dispatch-time re-check for an owning pull request caught yours first, so it was carried instead. That check exists because the same thing had already happened once — a contributor draft was superseded without credit — and it will not be the last time a snapshot is stale. Thanks for filing both the issue and the fix. |
lidge-jun#4436 has an owning contributor pull request, lidge-jun#4467 by jaychou0642-create, opened after the candidate harvest and before this lane. Lane I3 carries it with a trailer instead of implementing the fix fresh. This is the wave-1 lidge-jun#4465 lesson applied as a dispatch-time check rather than a note.
Summary
Closes #4436.
deepseek-flashas native multimodal by default:deepseek-flashfrom first-party DeepSeek'snoVisionModelsinsrc/providers/registry.ts.modelInputModalities: { "deepseek-flash": ["text", "image"] }.deepseek-v4-flash-vision-expand first-party compatibility aliases (deepseek-chat,deepseek-reasoner,deepseek-v4-flash) unchanged.noVisionModelsor explicitmodelCapabilitiesoverrides.deepseek-flashinnoVisionModelscan simply remove the entry to unlock native vision.runtime.md,subagents.md,transports/inventory.md,providers/xai-grok.md).Verification
bun test tests/providers/provider-registry-parity.test.ts: 52 pass, 0 fail (coversdeepseek-flashnative modality, sidecar bypass, and legacy saved config upgrade/override behavior).bun test tests/vision/vision-sidecar-e2e.test.ts: passed all relevant cases including new tests provingdeepseek-flashpreserves images on bothopenai-chatandopenai-responseswires with zero sidecar calls.bun test tests/vision/vision-eligibility.test.ts: 18 pass, 0 fail.bun test tests/vision/vision-text-only-predicate.test.ts: 9 pass, 0 fail.bun run structure:check: passed.bun run privacy:scan: passed.git diff --check: passed.Checklist
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
All CI tests are green on my local testing.
I pushed my PR to the latest dev commit.
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit