Skip to content

Codex3N 1.5.1-3n.2

Choose a tag to compare

@nk33-dev nk33-dev released this 07 Oct 12:37
· 304 commits to personal since this release

修复

  • 注入面板的「当前供应商 API Key」不再一直停在「正在读取当前供应商…」:面板每次打开都会按当前缓存状态重画,必要时补拉一次,后端不可用时显示失败文案而不是永久加载。
  • 手工配置的上下文窗口不再被替换成 256K:注入侧每模型元数据带上内置窗口,Rust 侧窗口查表统一走「原名 → 去后缀 → 大小写不敏感」三级回退,目录合并改为手工配置在前、上游发现项追加并按大小写不敏感去重;导入 models.json / model.json 只补空列,手工填过的窗口不被文档值覆盖(面板会提示两者不一致)。
  • 恢复管理器里的多 Key 编辑区:可新增、改名、删除、设为当前 Key,保存后不再丢失。
  • 自动压缩比例「留空」的含义统一为「不写 auto_compact_token_limit,沿用 Codex 自身默认行为」,不再在失焦、回读、导入回填时补 90%。
  • 下发给注入页的设置剥掉全部密钥字段(apiKey / *ApiKey / apiKeys),Key 列表改由 /relay-api-keys 只回 id 与名称。管理器自身的设置编辑器不受影响。
  • 保存设置时拒绝把已有供应商的 Key 写成空,避免重建路径静默清空密钥。

性能

  • 设置读取在只读热路径上按落盘指纹缓存(mtime + len 失效,本进程写入立即失效),代理每个请求、看门狗每轮、注入页的目录请求不再重复解析 settings.json。
  • HTTP client 按(是否环回, User-Agent)池化复用,keep-alive 生效,上游请求不再每次都新建 client 重做 TCP + TLS 握手。系统代理只在构建 client 时读取,因此传输层失败时会清空池子自愈(代理端口变更最多失败一次,不需要重启)。
  • 注入脚本在重试循环外只构建一次(此前每次尝试都重新拼装几百 KB 的字符串)。
  • 请求体只解析一次;failover 只在确实还有候选或冷却重试时才复制请求体,单候选的常规请求不再整份复制(带图片的请求可达数 MB)。
  • 诊断日志复用文件句柄,每条日志从 stat + open + write + close 降到一次 write。
  • 管理器供应商卡片加 memo,回调保持同一身份,无关状态刷新不再重画整个列表。

验证

cargo fmt --check、cargo check --workspace、cargo test --workspace、管理器 npm test 与 npm run check、注入产物 assemble-renderer-inject.mjs --check 全部通过。

未在真机验证

  • 自动压缩比例留空改为「不写 auto_compact_token_limit」后,Codex 实际采用的压缩阈值没有在真实会话里确认过(窗口列一直是同语义)。
  • 应用供应商后 config.toml 的 model_catalog_json 与 model-catalogs/<id>.json 的内容(目标模型与手工窗口)没有在真机复核,只有单元与集成测试覆盖。
  • 跨平台仅编译与单测覆盖,未做 macOS / Linux 真机实测。