feat(providers): add qwen3.8-max to Token Plan model list - #9383
Conversation
The stable qwen3.8-max has graduated from preview and is listed in the Bailian model catalog, but the Token Plan preset still only ships qwen3.8-max-preview. Mirror the preview entry's capabilities (1M context, thinking mandatory, image + video understanding) and pin the new entry in the preset unit tests. Closes #9376
|
|
|
Thanks for the PR! Template looks good ✓ Problem: observed gap, not theory — the linked open issue #9376 requests exactly this addition, and Direction: aligned. Keeping the preset list in sync with graduated models is routine maintenance, and the wire layer already supports this family — Size: core paths touched ( Approach: the change is the minimal possible — one list entry mirroring the preview spec (1M context, thinking mandatory, image+video) placed before Risk: no elevated risk signals — neither changed file matches a high-risk path from the revert history. One real-world caveat the author already flags honestly: accounts whose Token Plan endpoint hasn't exposed Moving on to code review. 🔍 中文说明感谢贡献! 模板完整 ✓ 问题:已观测到的缺口,不是理论问题——关联的 open issue #9376 明确请求此改动, 方向:对齐。预置列表与转正模型保持同步属于常规维护,且 wire 层已支持该模型族—— 规模:触及核心路径( 方案:改动已是最小集——新增一个列表条目,规格与 preview 一致(1M 上下文、强制思考、图像+视频),置于 风险:无升级风险信号——两个改动文件均未命中 revert 历史中的高风险路径。作者已如实指出一个现实风险:个别账号的 Token Plan 端点可能尚未开放 进入代码审查 🔍 — Qwen Code · qwen3.8-max Reviewed at |
Code reviewMy independent proposal for "add the graduated No blockers. Notes from the walk:
Testing evidence: this is an unattended CI run — no PR code was built or executed here; the signal below is the PR's own CI fetched via the API. The pinned unit test asserts the exact template id list, so the suite genuinely fails if the entry is removed — the test pins the change rather than passing alongside it. Live behavior against a real Token Plan endpoint was not verified by anyone (no key available — author's claim, clearly attributed) — see the sandboxed-lane note below. Final CI results for
One row per check name (latest run); skipped checks omitted; failures sort first. / 每个检查名一行(取最新一次运行),省略 skipped,失败项排在最前。 The main ubuntu unit suite was still running when this review was written — no polling, no guessed outcomes; the finalize job rewrites the table above when CI lands. Sandboxed verification would settle part of this: 中文说明代码审查针对"把转正的 无阻塞项。审查要点:
测试证据: 本次为无人值守 CI 运行——未在本地构建或执行任何 PR 代码;下方信号取自 PR 自身 CI(通过 API 获取)。被固定的单元测试断言了精确的模板 id 列表,删除该条目测试即失败——测试真正固定了改动,而不是与之无关地通过。对真实 Token Plan 端点的线上行为无人验证过(无可用 key——此为作者自述,已明确标注归属),见下方沙箱验证说明。 CI 状态:主 ubuntu 单测套件在撰写本评论时仍在运行——不轮询、不猜测结果;CI 落定后 finalize 任务会就地更新上方表格。桌面壳(ubuntu/windows)、密钥扫描、依赖 CVE 审计均已通过;macOS/Windows 测试与 CLI 集成测试显示为 skipped。 沙箱验证可以落定其中一部分: — Qwen Code · qwen3.8-max Reviewed at |
|
Confidence: 5/5 — a textbook small data-sync PR: requested by an open issue, identical precedent already merged, tests pin the entry, every downstream consumer verified. Reflecting honestly: this is the kind of PR the gate should wave through quickly. The problem is real (issue #9376, model graduated in the Bailian catalog), the fix is the minimum possible diff — 7 lines of data plus 5 lines of test — and I verified every claim in the description against the code rather than taking any on faith: the wire layer prefix-matches the family, the ACP manifest already keys on the stable id, the IDE companion derives its template from the same preset so nothing drifts, and the default model doesn't move. My independent proposal matched the PR one-for-one; I found nothing to cut and nothing to add. The one thing nobody can verify from here — per-account endpoint availability of Verdict: approve. The ubuntu unit suite is still running on this commit, so approval is deferred until CI lands green on 中文说明置信度:5/5 —— 教科书式的小型数据同步 PR:由 open issue 提出、同样的先例已合并、测试固定了条目、所有下游消费方均已核验。 如实反思:这正是门禁应当快速放行的那类 PR。问题真实存在(issue #9376,模型已在百炼模型大全转正),修复是最小可能的 diff——7 行数据 + 5 行测试——且描述中的每一项声明都是我对代码核验过的,而非照单全收:wire 层按前缀匹配该模型族,ACP manifest 已按正式版 id 建键,IDE companion 从同一预置取模板因此任何地方都不会漂移,默认模型不移动。我的独立方案与 PR 完全一致;没有可砍的,也没有要补的。唯一无法从这里核验的——各账号端点是否已开放 结论:批准。该提交上的 ubuntu 单测套件仍在运行,因此批准推迟到 CI 在 — Qwen Code · qwen3.8-max Reviewed at |
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship — CI landed green after the review. ✅
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed — no blockers. Suggestions are inline.
Test Plan (not a blocker): src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory.
中文说明
已审查——无阻断问题。 建议见行内评论。
Test Plan(非阻断):src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.13)
|
@qwen-code /takeover |
|
🤝 Takeover engaged: the autofix loop now manages this PR — it will address new review feedback and resolve base conflicts until the label is removed or the round cap is reached. Remove the 中文说明🤝 已接管:autofix 循环现在管理此 PR —— 将持续处理新的评审反馈与 base 冲突,直到移除标签或达到轮次上限。移除 |
|
🤖 Addressed the latest review feedback (round 1/100). What changed, and what I pushed back on: · 已处理最新评审反馈(第 1/100 轮)。改动内容与我反驳保留之处如下: Autofix review round summary — PR #9383Feedback points and dispositions
Changes
Commit: Conflict notesNone — Verification
中文说明Autofix 审查轮次总结 — PR #9383反馈点及处理
变更内容
提交: 冲突说明无 — 验证
Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 Re-review when you have a moment. After round 100 this bot stops and leaves the PR for a human. · 有空请复审;第 100 轮后本 bot 停止并将 PR 交给人工。 🧠 Handled by Qwen Code · model/模型 |
doudouOUC
left a comment
There was a problem hiding this comment.
Review Summary
Verdict: APPROVE — No blockers found. The PR correctly adds qwen3.8-max to the Alibaba Token Plan preset model list.
What was reviewed
- 2 files, +16/-0: adds
qwen3.8-maxto the Token Plan model list and pins itsgenerationConfigin tests - 13 review dimensions examined (issue fidelity, correctness, security, reuse, abstraction, consistency, cross-file tracing, performance, test coverage, adversarial audits, build & test)
Key findings
- Issue fidelity: The PR correctly implements the request from #9376 — adds
qwen3.8-maxwithcontextWindowSize: 1000000,enableThinking: true,thinkingMandatory: true, andmodalities: { image: true, video: true } - Test coverage: The test pins the full
generationConfig(not justmodalities), making it non-vacuous — mutation testing confirms it catches regressions in any field - Downstream compatibility: All existing consumers (
buildGenerationConfig,requiresThinking, pipeline, modality defaults) already handle the model family; the DashScope provider already recognizesqwen3.8-maxvia prefix matching - No security concerns: Static data addition, no user-controlled input, no new code paths
- Build: The only build failure (
packages/audio-capture) is a pre-existing environment issue (node-gyp/Python not available on this Windows machine), not caused by this PR
Existing comments addressed
The prior inline Suggestion (R1-1, about pinning the full generationConfig) was already addressed by the autofix — the current test assertion covers all fields.
Reviewed by Qwen Code /review
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
Not reviewed: reverse audit — stopped before round 1 by the review time budget.
Test Plan (not a blocker): src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory.
中文说明
仅完成部分审查,审查缺口已披露。
未审查:反向审计——评审时间预算不足,未能开始第 1 轮。
Test Plan(非阻断):src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.13)
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round — no action needed (PR #9383)Triage result: no code changes this round. The only feedback newer than the last evaluation is the automated reviewer's round-2 review ( Disposition of each item:
Verification: no code was changed, so no build/lint/typecheck gate was required; as evidence for the dispositions above, one focused check was run:
中文说明Autofix 评审轮次 — 无需改动(PR #9383)分诊结果: 本轮不做任何代码改动。自上次评估以来唯一的新反馈是自动评审器的第 2 轮评审( 各项处置如下:
验证: 本轮未改动代码,因此无需运行 build/lint/typecheck 门禁;作为上述处置结论的证据,运行了一项聚焦检查:
Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
|
Released in v0.21.15. |
|
It does not matter much because most users will never want to disable thinking with their coding agent, but qwen3.8-max GA supports thinking disabled/hybrid thinking mode, so the thinkingMandatory part of this PR is wrong. Thinking was mandatory only for the preview release qwen3.8-max-preview. See: https://help.aliyun.com/en/model-studio/deep-thinking
https://docs.qwencloud.com/developer-guides/clients-and-developer-tools/qwen-code
|
wenshao
left a comment
There was a problem hiding this comment.
Test Plan (not a blocker): src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory.
中文说明
Test Plan(非阻断):src/providers/__tests__/presets/alibaba-token-plan.test.ts — no such file or directory。
— gpt-5.6-sol via Qwen Code /review (v0.22.0)
| id: 'qwen3.8-max', | ||
| contextWindowSize: 1000000, | ||
| enableThinking: true, | ||
| thinkingMandatory: true, |
There was a problem hiding this comment.
[Critical] Stable qwen3.8-max supports hybrid thinking, but this preset marks it as mandatory. When a Token Plan user explicitly disables reasoning through includeThoughts: false, reasoning: false, ACP/WebShell settings, or enable_thinking: false, this flag makes the pipeline bypass its normal reasoning_effort: 'none' path and send thinking enabled anyway. Remove thinkingMandatory: true from the stable entry and keep it only for qwen3.8-max-preview.
Witness from an isolated probe:
PR preset: qwen3.8-max request contained enable_thinking: true and no reasoning_effort after an explicit opt-out
After removing thinkingMandatory: the same request emitted reasoning_effort: 'none' and passed
中文说明
稳定版 qwen3.8-max 支持混合思考模式,但该预置将其标记为强制思考。当 Token Plan 用户通过 includeThoughts: false、reasoning: false、ACP/WebShell 设置或 enable_thinking: false 明确关闭推理时,此标志会使管线绕过正常的 reasoning_effort: 'none' 路径,仍然发送启用思考的请求。请从稳定版条目移除 thinkingMandatory: true,仅在 qwen3.8-max-preview 上保留。
隔离探针结果:稳定版预置在明确关闭推理后仍发送 enable_thinking: true 且没有 reasoning_effort;移除 thinkingMandatory 后,同一请求发送 reasoning_effort: 'none' 并通过。
Please add a preset-derived stable-model test where includeThoughts: false must emit reasoning_effort: 'none', then remove the fix and confirm that test fails.
— gpt-5.6-sol via Qwen Code /review (v0.22.0)
…-max Resolve five conflicts; main had superseded most of this branch: - modalityDefaults.ts (+ its test): keep main's newer classification — qwen3.8-max is image-only there (QwenLM#10195/QwenLM#10278), not image+video. - alibaba-token-plan.ts: keep this branch's deepseek-v4-flash entry (the part main never landed) and drop its duplicate qwen3.8-max record; main's later QwenLM#9383 entry, with thinkingMandatory, is authoritative. The matching branch assertion is dropped with it. - vscode-ide-companion subscriptionPlanDefinitions.{ts,test.ts}: take main's version, which now derives the plan list from the shared preset instead of the hand-kept copy this branch was updating. core: alibaba-token-plan + modalityDefaults 62 passed; vscode-ide-companion subscriptionPlanDefinitions 3 passed.
What this PR does
Adds the stable
qwen3.8-maxmodel to the ModelStudio Token Plan preset model list, placed right before the existingqwen3.8-max-previewentry, and extends the preset unit test to pin the new id and its multimodal capabilities.Why it's needed
qwen3.8-maxhas graduated from preview and is listed in the Bailian model catalog (https://help.aliyun.com/zh/model-studio/models), but the Token Plan preset still only ships the preview, so Token Plan users cannot select the stable model from/model. The wire layer already fully supports the family (tieredreasoning_effortviaisTieredEffortWireModel, modality defaults, and the ACP model-configuration manifest), so only the preset list was out of sync.Reviewer Test Plan
How to verify
packages/core:npx vitest run src/providers/__tests__/presets/alibaba-token-plan.test.ts— expects the template id list to containqwen3.8-maxbefore the preview entry and its modalities to equal{ image: true, video: true }.npm run typecheckat the repo root andnpx eslinton both changed files pass./modelshows[ModelStudio Token Plan] qwen3.8-max.Evidence (Before & After)
N/A — preset data change covered by unit tests; no live Token Plan key available for TUI verification.
Tested on
Environment (optional)
npm ci + vitest on macOS (node v25).
Risk & Scope
qwen3.8-maxyet would get a provider-side error if they select it; the list entry itself is additive and the default model staysqwen3.7-plus(first entry unchanged).computeModelListVersion.Linked Issues
Closes #9376. Related: #8432, #9368.
中文说明
What this PR does
在 ModelStudio Token Plan 预置模型列表中加入正式版
qwen3.8-max,位置放在现有qwen3.8-max-preview之前,并扩展预置单元测试以固定新模型 id 及其多模态能力。Why it's needed
qwen3.8-max已从 preview 转正并列入百炼模型大全,但 Token Plan 预置仍只带 preview,导致 Token Plan 用户无法在/model中选择正式版。wire 层已完整支持该模型族(isTieredEffortWireModel的分档reasoning_effort、模态默认值、ACP 模型配置 manifest),只有预置列表没跟上。Reviewer Test Plan
How to verify
packages/core下运行npx vitest run src/providers/__tests__/presets/alibaba-token-plan.test.ts,预期模板 id 列表在 preview 之前包含qwen3.8-max,且其 modalities 为{ image: true, video: true }。npm run typecheck与对两个改动文件的npx eslint均通过。/model显示[ModelStudio Token Plan] qwen3.8-max。Evidence (Before & After)
N/A —— 预置数据变更,由单元测试覆盖;无可用 Token Plan key,未做 TUI 实测。
Tested on
macOS ✅;Windows⚠️ 未测;Linux ⚠️ 未测。
Environment (optional)
macOS 上 npm ci + vitest(node v25)。
Risk & Scope
qwen3.8-max,选择后会收到服务端报错;列表条目本身是纯新增,默认模型仍为qwen3.7-plus(首条目未变)。computeModelListVersion机制收到常规模型列表更新提示。Linked Issues
Closes #9376。相关:#8432、#9368。