Codex 本地中转 v1.7.3
Codex Provider Hub v1.7.3
本版本由已验证的功能变更说明自动生成。
2026-09-03-update-version-check
- 类型:fix
- 发布级别:patch
- 目标:开发环境“版本与更新”同时展示当前运行版本与检测到的最新版本;检查更新不再误报“已是最新”,可正确提示发现新版本(含不支持就地更新时的手动下载指引)。
- 实际改动:-
local_proxy/updater.py:UpdateInfo新增newer_available(远端有新版),has_update保持“新版且本机有可用产物”的语义;无产物时has_update=False但newer_available=True。 local_proxy/application.py:UpdateController新增_refresh_current_version(),status()/check()每次重算resolve_app_version()并同步current_version;status()同时返回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.py:FakeUpdateController对齐新契约,check与无 controller 用例追加新字段断言。proxy_static/dist:随 pre-push 门禁重新构建并同步提交,生产包包含本次界面修复(含显示修正后的二次构建)。- 显示修正:版本行只显示当前版本号(右侧 225px 列放不下双号文本会被省略号截断);最新版本号在“检查更新”后的结果提示行展示(发现新版本 X / 手动下载 / 已是最新),不改动样式布局。
- 兼容性:- 接口加字段(
update_available、newer_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.vuescript 段抽取为.mjs后node --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