Conversation
- 修复 kimi/minimax/qwen 共 20 条 apply_patch_tool_type: function→freeform (codex 0.144+ 的枚举仅剩 Freeform,function 会致整份 catalog 解析失败) - 补充近期发布模型:deepseek-v4.1-flash 及官方别名、grok-4.7、mimo-v2.6 系列、glm-5.3-flashx、MiniMax-M2.7、qwen3-coder 系/3.8-27b、 gemini-3.1-pro;修正 minimax M3 窗口与 mimo v2.5 输出上限 - slug 匹配大小写不敏感:内置查找链(find_catalog_entry)与前端文档 导入/同步(slugMatchesIgnoreCase),供应商 Model Key 大小写不统一 - VENDOR_METADATA_JSONS 接入 compatibility 查找链:60 条供应商元数据 填名即生效,未配窗口时采用供应商真实窗口(BigPizzaV3#2191 语义),粘贴导入 优先级不变(pasted_metadata_overrides_embedded_vendor_metadata) - 新增 e2e_codex_real_cli:真实 codex 加载生成的 catalog + 阴性对照 重构:gpt56/astra/vendor 合并为单一 VENDOR_METADATA_JSONS 查找数组; 精调层基座优先取运行时官方 models_cache(官方热更新流入未被精调 覆盖的字段),新增 compat_overlay_composes_with_runtime_cache_base。
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 22, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 22, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。 交互重构(评审反馈):顶部状态行取消,全部收纳到底部操作行—— slug + [匹配:来源|回退:gpt-5.5] + [自定义] 标签 + 重新匹配/清除 按钮(按匹配态切换);JSON 粘贴实时写回模型行的窗口/压缩比输入框; 导入按钮去掉 imported 高亮(元数据自动匹配后无需强调)。
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 22, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。 交互重构(评审反馈):顶部状态行取消,全部收纳到底部操作行—— slug + [匹配:来源|回退:gpt-5.5] + [自定义] 标签 + 重新匹配/清除 按钮(按匹配态切换);JSON 粘贴实时写回模型行的窗口/压缩比输入框; 导入按钮去掉 imported 高亮(元数据自动匹配后无需强调)。 逻辑修正(评审反馈):重新匹配=放弃自定义回到内置(清除该 slug 的 自定义配置,自定义标签随之消失);builtin 查询补运行时官方缓存层 与生成链一致;标签描边加深;行内导入按钮边框按状态着色(命中绿/ 自定义蓝/回退无色)。
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 22, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。 交互重构(评审反馈):顶部状态行取消,全部收纳到底部操作行—— slug + [匹配:来源|回退:gpt-5.5] + [自定义] 标签 + 重新匹配/清除 按钮(按匹配态切换);JSON 粘贴实时写回模型行的窗口/压缩比输入框; 导入按钮去掉 imported 高亮(元数据自动匹配后无需强调)。 逻辑修正(评审反馈):重新匹配=放弃自定义回到内置(清除该 slug 的 自定义配置,自定义标签随之消失);builtin 查询补运行时官方缓存层 与生成链一致;标签描边加深;行内导入按钮边框按状态着色(命中绿/ 自定义蓝/回退无色)。 场景覆盖(评审反馈):导入区按行索引跟随(模型改名后保持打开,标签 与内置预填实时跟随新名字,未编辑的内置底稿自动重预填);来源标签抽 为纯函数 metadataSourceTags 并覆盖场景矩阵——自定义已覆盖时不再显示 「回退」(避免误导为仍在用 gpt-5.5),命中+自定义并列显示。
Contributor
Author
|
暂勿合并,还需要修改部分内容 |
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 22, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。 交互重构(评审反馈):顶部状态行取消,全部收纳到底部操作行—— slug + [匹配:来源|回退:gpt-5.5] + [自定义] 标签 + 重新匹配/清除 按钮(按匹配态切换);JSON 粘贴实时写回模型行的窗口/压缩比输入框; 导入按钮去掉 imported 高亮(元数据自动匹配后无需强调)。 逻辑修正(评审反馈):重新匹配=放弃自定义回到内置(清除该 slug 的 自定义配置,自定义标签随之消失);builtin 查询补运行时官方缓存层 与生成链一致;标签描边加深;行内导入按钮边框按状态着色(命中绿/ 自定义蓝/回退无色)。 场景覆盖(评审反馈):导入区按行索引跟随(模型改名后保持打开,标签 与内置预填实时跟随新名字,未编辑的内置底稿自动重预填);来源标签抽 为纯函数 metadataSourceTags 并覆盖场景矩阵——自定义已覆盖时不再显示 「回退」(避免误导为仍在用 gpt-5.5),命中+自定义并列显示。 修正(评审反馈):清除自定义后按实际内置命中恢复标签(命中→重新 匹配可用,不再硬编码回退);内置预填窗口改 context_window 优先—— 官方 gpt 系预填 codex 默认运行窗口 272000 而非能力上限 872000, 导入不再改变默认行为;索引字段同步。
dongyu23
added a commit
to dongyu23/CodexPlusPlus
that referenced
this pull request
Sep 23, 2026
内置元数据(PR BigPizzaV3#2280 的 60 条精调/供应商 + 官方静态资产)对用户不可见、 只能靠记忆判断是否命中。本提交让内置数据在管理器可见、可基于其编辑: - model_suffix: VENDOR_METADATA_SOURCES 升级为 (来源名, JSON) 数组;新增 builtin_model_metadata(slug)(剥后缀/大小写不敏感,精调→供应商→官方 bundled 逐层,未命中即回退 gpt-5.5)与 builtin_model_metadata_index() (全量索引,官方 sync 增量自动纳入) - commands: query_builtin_model_metadata / builtin_model_metadata_index - 导入区打开时:顶部状态行显示匹配结果(命中带来源,未命中说明回退模板 与 272000 窗口);无已导入配置且命中时把内置条目预填为可编辑底稿 (预填 ≠ 导入:不保存则不落盘,生成时本就用内置;保存后成为用户配置 覆盖内置,优先级语义不变) - 模型列表行级 badge:内置(带来源 title)/自定义/回退 三态 - i18n 英文对照 + 样式;Rust +2 测试、前端 +2 测试 基于 BigPizzaV3#2280,建议先合 BigPizzaV3#2280 再评审本提交。 来源徽标收纳进导入区展开体(slug 展示行内,水平同行),模型列表 折叠态不再溢出显示。 交互重构(评审反馈):顶部状态行取消,全部收纳到底部操作行—— slug + [匹配:来源|回退:gpt-5.5] + [自定义] 标签 + 重新匹配/清除 按钮(按匹配态切换);JSON 粘贴实时写回模型行的窗口/压缩比输入框; 导入按钮去掉 imported 高亮(元数据自动匹配后无需强调)。 逻辑修正(评审反馈):重新匹配=放弃自定义回到内置(清除该 slug 的 自定义配置,自定义标签随之消失);builtin 查询补运行时官方缓存层 与生成链一致;标签描边加深;行内导入按钮边框按状态着色(命中绿/ 自定义蓝/回退无色)。 场景覆盖(评审反馈):导入区按行索引跟随(模型改名后保持打开,标签 与内置预填实时跟随新名字,未编辑的内置底稿自动重预填);来源标签抽 为纯函数 metadataSourceTags 并覆盖场景矩阵——自定义已覆盖时不再显示 「回退」(避免误导为仍在用 gpt-5.5),命中+自定义并列显示。 修正(评审反馈):清除自定义后按实际内置命中恢复标签(命中→重新 匹配可用,不再硬编码回退);内置预填窗口改 context_window 优先—— 官方 gpt 系预填 codex 默认运行窗口 272000 而非能力上限 872000, 导入不再改变默认行为;索引字段同步。 补充场景覆盖:JSON→行写回规则抽为纯函数 importDocumentSyncPatch (相同值不写/null 不动行/空预览 no-op)并测试;来源标签补脏数据 防御(matched 无 entry、自定义 fallback 文案);Rust 补运行时缓存 命中与大小写变体去重测试。workspace 1470 全过。
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #2279
问题详解
现状:内置元数据只覆盖官方模型
main 分支参与 catalog 生成的元数据共 4 个文件、12 条:
codex-models.json(gpt-5.5/5.4/5.4-mini/5.3-codex/5.2/codex-auto-review)、gpt56 compat(sol/terra/luna)、astra compat、deepseek(v4-flash/v4-pro)。除此之外的所有主流模型——Kimi、Qwen、GLM、豆包、MiniMax、小米 MiMo、Grok、Gemini、StepFun、Mistral、NVIDIA、Meta Muse、Thinking Machines、gpt-oss——没有任何内置元数据。用户把这些模型名填进
model/ 模型列表时走 gpt-5.5 兜底模板克隆,产生四类问题:1. 上下文窗口被系统性写低。 兜底模板窗口 272000,而 kimi-k3 / qwen3.8-max / MiniMax-M3 / doubao-seed-evolving / mimo-v2.6 / glm-5.3 等主流模型真实窗口均为 1M。用户只能逐个手填
[1M]后缀或每模型窗口补救,且不知道要补的仍然会漏。2. Codex UI 降级为裸 slug。 无 display_name / description / 思考档位,界面显示
kimi-k3而非 "Kimi K3";model_ui_metadata无数据,renderer-inject.js的 displayName/档位覆盖全部失效。3. 供应商事实字段缺失。
max_output_tokens(如 kimi-k2.7-code 仅 32K、deepseek 384K)、input_modalities(多模态标记)等全部没有。4. 社区配置存在静默致命坑(最严重)。 元数据缺失迫使用户粘贴社区流传的 model.js / JSON。经 openai/codex 源码核验(0.144+ 的
ApplyPatchToolType枚举仅剩Freeform),Kimi/Qwen/MiniMax 系社区配置广泛使用的apply_patch_tool_type: "function"会导致 codex 整份model_catalog_json反序列化失败、静默回落官方模型列表——用户自定义的窗口与元数据全部失效,且无任何报错提示。codex 的 catalog 解析是文件级的,一条坏值废掉整份文件。附带问题
GLM-5.3-FlashX),上游 API 对大小写宽容,本地漏配models_cache.json([Bug]: codex++生成的model-catalogs文件与codex官方文件差异巨大,请更新模版 #2141)与 compat 精调层存在字段级冲突:原实现精调命中时基座只取静态资产,官方热更新对 gpt-5.6 系完全进不来方案
1. 统一精调层
VENDOR_METADATA_JSONS把 gpt56/astra compat 与新增的 15 家供应商元数据(56 条)合并为单一
include_str!数组,compatibility_metadata_entry一次find_map完成查找(各文件 slug 两两不相交,已脚本验证;顺序仅表达优先级:产品级精调在前)。deepseek 文件同时在官方 DeepSeek Responses 专用路径优先处理,数组内覆盖经中转使用 deepseek 模型的场景。2. 与官方自动更新机制的协同(字段级裁决)
精调覆盖冲突字段(窗口/Fast 档/展示名),未被精调覆盖的字段从官方缓存流入——官方 App 热更新不再被精调层屏蔽,产品特性也不被官方数据冲掉。
3. 大小写不敏感匹配
新增
find_catalog_entry:先精确、后eq_ignore_ascii_case回退,统一接管静态资产与运行时缓存查找;前端model-metadata.ts的文档导入/同步同步改为忽略大小写(同文档内多个大小写变体视为歧义报错)。4. 完全向后兼容
粘贴导入的 metadata 仍在 catalog 生成后覆盖(优先级更高,
apply_model_metadata_overrides原语义);窗口四字段保护(#2191)、sync_official_models.py的只增不删语义、deepseek 专用路径均不变。数据来源
56 条供应商元数据逐家按官方文档/平台核实:DeepSeek 官方价格页与更新日志、MiniMax 开放平台模型表、MiMo 官方发布、智谱官方价目(FlashX)、阶跃 Step 5 Preview 发布、Qwen3.8 全量开源报道、Gemini 3.1 Pro 规格、xAI Grok 4.7 发布等;其中 20 条
apply_patch_tool_type: function → freeform修复即针对上述第 4 类问题。测试
单元测试(+5):
vendor_metadata_chain_matches_all_providers(5 家代表 slug 的窗口/展示/档位逐字段断言)、vendor_metadata_chain_matches_case_insensitively、compat_overlay_composes_with_runtime_cache_base(字段级裁决双向断言)、catalog_metadata_matches_slug_case_insensitively、pasted_metadata_overrides_embedded_vendor_metadata(粘贴覆盖优先级)。E2E(新增
tests/e2e_codex_real_cli.rs,#[ignore]手动跑):debug models全部加载;阴性对照:注入一条function后 codex 整份解析失败(坐实问题 4)全量:
cargo test --workspace1466 passed / 0 failed;npm run check(tsc)干净;本 PR 触碰文件 fmt/clippy 清洁。行为变化