Skip to content

v0.9.0 — 静态表不是目录

Choose a tag to compare

@collegeming collegeming released this 02 Oct 14:47
· 4 commits to main since this release

修复

1. cline-free/gemini-3.8-flash 调用必失败(HTTP 502)

上游已结束该模型的免费推广(实测 2026-10-02):

检查项 结果
recommended-models 的 free 数组 4 条,不含 gemini
GET /api/v1/models(464 条) cline-free/gemini-3.8-flash 零命中
直连 chat/completions 404 {"error":"model not found"}
CPA /v1/models 仍发布 Gemini-3.8-Flash ← 故障

插件的静态回退表(元数据快照)被当成了目录使用。现在静态条目只有在仍被某个在线来源背书时才发布:

  • 免费家族以 recommended-models 为唯一权威(/api/v1/models 永远不含 cline-free/*);
  • 该端点必须真的返回内容才算权威;任一来源不可用时整表照旧发布(列表为空比列表略旧更糟);
  • 被撤下的条目不再发布并记 warn。

上游恢复推广时会自动恢复发布,静态表的 65536 输出上限一并生效,无需改代码。

2. 日志字段白名单导致告警失效

CPA 控制台格式化器只打印 logFieldOrder 白名单内的字段(v8.0.4),自定义 key 不报错、直接消失。{"models": ...} 落盘后只剩 provider=cline,模型名丢失;v0.8.0 引入的 codearts 剥图告警里 images 计数同样从未显示过。两者改为拼进 message:

[warn] cline 静态目录表条目已下线,不再发布:cline-free/gemini-3.8-flash provider=cline
[warn] CodeArts 剥离了请求中的图片(模型为纯文本),共 4 处 model=deepseek-v4.1-flash

3. 发布流水线:五平台产物首次全部构建成功

此前每一次 tag 推送都失败,release 里始终只有 linux/amd64。三个独立原因:

现象 根因
darwin 任务首行退出 macOS 用 bash 3.2,declare -A 报 invalid option 直接终止
darwin/amd64 排队 24h 未跑 macos-13/macos-14 已退役,改用 macos-15-intel/macos-15
windows 15/15 链接失败 Go < 1.27 把输出名不加引号写进 .def,GNU ld 把 0.1.0 当浮点数解析

最后一项的触发条件是点分版本号,不是横杠(LIBRARY a-b-c.dll 正常,x0.1.dll 失败)。改法:Windows 先链接到不含点的 <id>.dll,再改名为 <id>-v<version>.dll;CPA 按文件名推导插件 id,与 .def 内的 LIBRARY 名无关。

本次 release 首次包含全部 5 平台 × 15 插件 = 75 个 zip(此前仅 15 个 linux/amd64)。

验证

  • 发布产物部署后 /v1/models 不再含 Gemini-3.8-Flash,调用返回 400 model_not_found(而非 502)
  • MiMo-V2.6-Flash 等仍在线的免费模型正常 200
  • 带图请求全部 200,not multimodal 计数保持 0,剥图告警正确显示数量
  • cline 新增 3 个回归测试并做反向验证(禁用背书判断后立刻转红)
  • 本地用 CI 同款 go1.26.0 构建 windows/amd64 15/15 成功;linux 回归 15/15
  • CI 运行 37026777370 五个构建任务 + publish 全绿

部署提示

config.yaml 里指向该模型的 oauth-model-alias 条目需一并删除(文档 §3.4 已更新)。若上游恢复推广,再加回即可。