Repository navigation
Codex3N 1.5.1-3n.2
·
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 真机实测。