Skip to content

fix(models): 统一上下文窗口覆盖与导入规则 - #2512

Open
nk33-dev wants to merge 8 commits into
BigPizzaV3:mainfrom
nk33-dev:codex/model-window-overrides
Open

nk33-dev wants to merge 8 commits into
BigPizzaV3:mainfrom
nk33-dev:codex/model-window-overrides

Conversation

@nk33-dev

@nk33-dev nk33-dev commented Oct 13, 2026 •

Copy link
Copy Markdown

问题

手工配置的模型窗口在目录生成、外部目录覆盖和渲染端描述符中使用不同的匹配方式。模型 ID 只差大小写或历史键带窗口后缀时,显式窗口可能不生效;注入元数据未携带内置窗口,显示结果可能退回宿主默认值。导入 models.json 也会覆盖已经手填的窗口。

修复

  • 将现有 vision 的模型键回退规则复用到目录生成与外部目录覆盖:精确匹配、剥合法后缀、大小写不敏感回退,保留模型 ID 原写法。
  • 渲染端窗口按手工 modelWindows、供应商顶层 contextWindow、内置元数据顺序解析;同时写入 camelCase 与 snake_case 字段。
  • 导入文档仅补空窗口列;值不同则提示保留当前值,清空后可采用文档值。
  • 保留 Fast 能力声明、原生 catalog 必填字段、自动压缩默认值、模型排序及来源发现流程。

验证

基于上游 45f1c151,Windows 隔离 worktree:

  • cargo test -p codex-plus-core --test model_suffix --test model_catalog --lib --locked --offline:Core lib 707 passed / 3 项既有 ignored;model catalog 14 passed;model suffix 35 passed。
  • npm test:548 passed,1 项既有 skipped。
  • npm run check、npm run vite:build、renderer 组装与 git diff --check HEAD 通过。
  • 回归覆盖大小写匹配、窗口后缀、手工与供应商级优先级、内置窗口、未声明窗口以及文档导入保留手工值。

未运行完整工作区测试和 clippy,也未进行真实供应商请求、桌面宿主窗口显示及 macOS/Linux 原生验证。上游已有全仓格式差异,此 PR 保留相关文件的现有格式。

@BigPizzaV3

Copy link
Copy Markdown
Owner

当前 PR 没有任何可用的 CI check。请补跑 Windows artifacts 和 macOS DMG CI 后再继续审核,并确认模型窗口覆盖、导入规则和旧配置兼容测试均通过。

@nk33-dev

Copy link
Copy Markdown
Author

已按要求对当前 head 4ec4a792 在 fork 中手动运行同一份 PR build artifacts workflow:

Windows job 已通过前端全量测试、TypeScript check、workspace Rust tests、release build 与 NSIS 打包;覆盖模型窗口大小写归一、后缀窗口、导入文档同步规则,以及旧设置迁移路径。上游自动 pull_request run 仍处于 fork 审批等待状态,上述链接是当前 head 的手动 dispatch 结果。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants