Skip to content

CX-Codex 2.4.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 13:48
· 74 commits to main since this release
5b11193

CX-Codex 2.4.1:聊天恢复与移动端可靠性

这一版集中修复聊天消息在弱网、切后台、锁屏、页面重建和服务重启期间的确认与恢复问题,同时收紧长会话滚动、项目侧边栏和 Android 任务提醒的状态归属。

本次版本重点

  • 消息先落地,再等待网络:发送后立即显示同一条本地消息;服务确认不明确时保留为“确认中/等待网络”,刷新或回到前台后按稳定消息标识继续核对,不会静默丢失或自动重复发送。
  • 连接与恢复状态统一:连接、重启、断开和错误由同一管理器收敛;旧连接的迟到回调不能污染新连接,前台恢复会主动补齐通知和当前会话。Android 首次离线启动后恢复连接时,也会立即补拉尚未加载的会话列表。
  • 重启窗口继续自动发送:新会话已经创建、首条 turn 尚未开始时即使 7420 重启,恢复链路也会复用原 thread 和消息标识继续启动,不要求用户手动重试,也不会创建第二个会话。
  • 长会话滚动更可控:用户离开底部后停止自动追随,并持续提供“回到底部”;回到 24px 阈值内才恢复跟随,输入框在手机端保持可用。
  • 消息刷新字段更完整:同一消息的附件,以及命令卡片的命令和工作目录发生变化时会正确替换旧投影,避免后端已更新但页面仍停留在旧内容。
  • 项目侧边栏适配新版 Codex:正确解析 Codex 26.715 的本地项目 ID、名称和目录,保留置顶顺序,不再显示 local-* 或 UUID 伪项目。
  • Android 任务恢复增强:原生监控、持久 Runtime Store、SSE/轮询、网络恢复、完成通知和任务浮窗继续以同一会话/轮次身份收敛;最新回复、精确会话跳转和完成已读边界更稳定。

深度休眠通知边界

高优先级 FCM 深度 Doze 唤醒是可选能力,不会因为源码中包含 FCM 路径就自动可用:

  1. Android APK 需要项目自己的 google-services.json
  2. 7420 服务需要匹配项目的外部服务账号凭据。
  3. 真实设备必须完成注册,并订阅一个正在运行的任务。
  4. 发布前应执行 npm run verify:mobile-push-readiness -- --require-ready

默认 GitHub Release 工作流不内置上述项目专属配置。未配置 Firebase 时,前台服务、SSE、有限轮询、网络恢复和手动刷新仍可使用,但不能宣称官方 APK 已验证深度 Doze 实时唤醒。

升级注意事项

  • 本版包含 Android 原生代码;要获得原生监控和通知改动,需要安装新 APK,网页热更新不能替代 APK 升级。
  • 从 debug APK 切换到正式签名 APK 时,Android 可能要求先卸载旧包。
  • 对公网开放服务前,请继续按安全加固文档配置认证、HTTPS、反向代理和访问范围。

发布验证要求

  • 使用锁文件完成干净 npm ci,生产依赖审计不得存在已知漏洞。
  • 前端、CLI、服务端模块、前端归一化和 Android 单元测试通过。
  • 完整 7420 回归覆盖桌面、折叠屏、手机、持久发件箱、恢复状态、侧边栏、长会话与任务通知。
  • 正式制品必须在干净 Git 工作区通过 verify:release、制品烟测、校验和及 GitHub Actions;未完成真机 FCM/Doze 验证时必须保留上面的能力边界。