Skip to content

v0.3.0 — provider schema 校验层(实测发现 catalog 键致命)

Latest

Choose a tag to compare

@yuyang2230 yuyang2230 released this 09 Oct 07:36

这次改了什么

新增 lib/schema.js:读取 ZCode 自带的 provider 配置,判定我们这份 personal 覆盖结构在该版本下是否仍然成立,不成立时明确告警,而不是等到派活时报一句含糊的 Model creation failed。

一个推翻设计的实测发现

第一版实现试图「镜像」ZCode 内置目录的键(modelRules / templateModelRules / providerConfigRules.templateRules 等)。用真实 CLI(ZCode 3.14.5,schema revision 30)做二分实测发现:

只要多加任何一个 catalog 键,model creation 就失败。personal 覆盖是严格 schema。

所以「镜像填充」恰好是错的。最终实现只输出已验证的 personal 键,把内置目录仅当作兼容性信号使用。

三条被测试锁死的实测事实

  1. providerOrder[0] 决定路由到我们的 provider
  2. modelConfigRules.manualProviderModelRules 必须存在(空数组即可)
  3. catalog 键出现在 personal 覆盖里 = 致命

验证

  • 191 条断言,4 套测试全绿(全部 mock spawn,CI 零计费)
  • 真实派活 20.7 秒返回,sqlite 查库确认 provider_id=dsh-glm-coding-plan / GLM-5.3-Flash
  • npm run check 现在会输出 schema 兼容性结论

使用变化

不需要改任何配置。升级 ZCode 后跑一次 npm run check,若 personal 结构已变更会直接告警并告诉你该改哪里。