Skip to content

Codex 本地中转 v1.7.3

Choose a tag to compare

@github-actions github-actions released this 03 Sep 05:13
· 22 commits to main since this release
7d4284f

Codex Provider Hub v1.7.3

本版本由已验证的功能变更说明自动生成。

2026-09-03-update-version-check

  • 类型:fix
  • 发布级别:patch
  • 目标:开发环境“版本与更新”同时展示当前运行版本与检测到的最新版本;检查更新不再误报“已是最新”,可正确提示发现新版本(含不支持就地更新时的手动下载指引)。
  • 实际改动:- local_proxy/updater.pyUpdateInfo 新增 newer_available(远端有新版),has_update 保持“新版且本机有可用产物”的语义;无产物时 has_update=Falsenewer_available=True
  • local_proxy/application.pyUpdateController 新增 _refresh_current_version()status()/check() 每次重算 resolve_app_version() 并同步 current_versionstatus() 同时返回 has_update 与别名 update_available,并透传 newer_available
  • local_proxy/server.py:无 controller 时的降级 payload 补齐 update_available/newer_available/latest_version/release_url/notes
  • proxy_static/src/components/RuntimeView.vue:版本行只显示当前版本号;兼容读取 update_available ?? has_update;检查文案三分支(可更新/手动下载/已是最新);更新按钮仅 有更新且 supported 时显示。
  • proxy_static/classic/index.html + proxy_static/classic/app.js:同上口径,版本行只显示当前版本,check 兼容两字段并区分手动下载分支,更新按钮沿用 has_update && supported(兼容别名)。
  • tests/test_updater.py:新增无产物时 newer_available=True 断言、newer_available 跟踪用例、UpdateController 契约用例(别名/刷新/透传)。
  • tests/test_server.pyFakeUpdateController 对齐新契约,check 与无 controller 用例追加新字段断言。
  • proxy_static/dist:随 pre-push 门禁重新构建并同步提交,生产包包含本次界面修复(含显示修正后的二次构建)。
  • 显示修正:版本行只显示当前版本号(右侧 225px 列放不下双号文本会被省略号截断);最新版本号在“检查更新”后的结果提示行展示(发现新版本 X / 手动下载 / 已是最新),不改动样式布局。
  • 兼容性:- 接口加字段(update_availablenewer_available),保留 has_update,旧客户端不受影响。
  • current_version 仍为纯三段 SemVer 字符串,无配置、数据库或迁移变化。
  • 风险:- 开发机无 Git/无标签/浅克隆时 resolve_app_version() 必须回退而不阻塞启动;已捕获 OSError/SubprocessError 并校验严格 tag 格式。
  • Linux 开发机无可用产物时需走手动下载分支,避免再次误报最新。
  • GitHub API 失败时 check 返回 502,前端显示检查失败而非最新。
  • 验证结果:- .venv\Scripts\python.exe -m unittest tests.test_updater tests.test_version tests.test_server:36 tests OK。
  • .venv\Scripts\python.exe -m unittest discover -s tests -p "test_*.py":534 tests OK(33s)。
  • node --check proxy_static/classic/app.js:通过;RuntimeView.vue script 段抽取为 .mjsnode --check:通过。
  • Get-ChildItem tests -Filter *.test.js | ForEach-Object { node --test $_.FullName }:全部通过,0 fail。
  • 行为核验:resolve_app_version('0.1.7')1.6.2;模拟 v1.6.2 发布包:1.6.1→has_update True/newer True(提示发现新版本),1.6.2→False/False(已是最新),无产物→has False/newer True(手动下载分支)。
  • 显示修正后复验:全量 534 单测 OK(38s),JS 全量 0 fail,版本行恢复单行当前版、无截断风险(样式未动)。
  • rebase 到 origin/main b99fd2f#68)后复验:全量 543 单测 OK,JS 全量 0 fail;dist 在新基线上重新构建并验证 bundle 含修复。
  • PR:pending