V4.4.6 — 安装兼容、终局恢复与交互状态修复
修复
- #288/#294/#296:接受 Hermes 附件投递有无
record_delivery=_record_delivery的两种已验证契约,仍拒绝未知参数和重复调用。修正拆分账本 hook 的运行时识别,保证最终投递顺序。兼容测试固定在 Hermes 0.21.3 源码2179a279ae04bfadf8efbc49a01ca0abfb738000,不以版本号代替源码验证。 - #298:卡片 PATCH 和终局重试耗尽后,使用稳定 UUID 在原会话/话题补发一次完整终局卡片;保留 Gateway ACK 所有权,避免原生正文重复。
terminal_delivery_state与last_terminal_delivery提供恢复结果。飞书整体不可用时补发仍可能失败,诊断会保留该状态。 - #301/#285:识别明确的迭代/预算耗尽原因,覆盖 legacy 与 native incomplete 路径,不把未完成任务标成成功。#289:失败时保留可见的部分回答。不会修复 Hermes/provider 停止执行本身。
- #280:交互结束或过期后显示原问题、编号选项和结果;#282:拒绝或不确定的回调显示明确反馈,不引导重复授权。未宣称真实手机端首次点击问题已经复现或全部解决。
- #276:完整性诊断给出沿用当前路径、正确 shell 引用的只读 doctor 命令,不放松安全 fence。
- CodeQL init/analyze 同步更新到 4.38.0,并分组后续依赖更新。
验证与升级
精确合并提交 83392fbacf4c2389accfacc326430ee718bb4efc 的本地全量测试:3605 passed、5 skipped。PR 跨平台 CI、合并提交 CodeQL 与 发布安装包门禁 均通过;覆盖 Windows、PowerShell、Docker、SDK 和当前 Hermes source-only 安装/重复安装/恢复。
Annotated tag v4.4.6 指向上述合并提交。三个平台安装包的 SHA-256 校验和、包内文件与合并源码一致性均已核验。公开 tag 官方安装脚本在隔离的无 .git Hermes 0.21.3 目录完成安装与 setup;普通包从 site-packages 加载,版本 4.4.6,direct_url 来源为公开 tag 和上述提交,79 个 Python 文件与源码一致。服务启动在此隔离验收中跳过。
使用官方安装方式将 HFC 更新至 v4.4.6。Hermes 已升级的环境应使用安装器的 --accept-hermes-upgrade 流程,经 doctor 确认后重启 Gateway 使新 hook 生效;仅重启 sidecar 不会重新加载 Gateway hook。不要手动删除完整性标记。
仍在跟踪
#293 CardKit streaming_mode 和 #295 持久暂停/恢复尚未实现。#282 移动端首次点击、#283 长时间空卡、部分 Topic/@/Docker 现场需继续定位;见 逐项处理记录。本版没有执行真实移动端验收或生产升级。
致谢
感谢 tidytorch(#286/#291)、Jentlezhi(#292)的实现与测试,保留原始作者提交;感谢 sp960817、Cyber-Yichen、shichenshuo-star、ywarmy 的安装证据,7360403-coder 的终局投递分析,以及 mouyong 的状态、交互与诊断反馈。历史贡献者继续保留在中英文 README。