更新与版本发布
补编设计稿,编写日期:2026-10-20。本文规定待实现的发布流程,不证明已有构建流水线、签名包、更新器或回滚系统。
实际实施状态以阅读导航为准;技术约束以项目根目录 AGENTS.md 为准。
适用范围与基线
- 本文覆盖 Web、API、Windows Agent、共享协议及数据库迁移的版本管理、兼容、验证、发布和恢复。
- 本文不授权生产发布、远程设备更新或真实数据恢复;实际执行需要明确环境、范围及负责人。
- 架构与参数以设计决策与参数基线为唯一来源。
- D01 约束首版单 API 实例、单 worker;D02 约束持久化待分发与恢复;D06、D07 约束协议和逻辑执行开始边界。
- 试点范围使用 P01,任务期限使用 P02,离线检测使用 P03,数据保留使用 P09,备份恢复目标使用 P10。
- 本文不重复定义参数值,不承诺建议容量或恢复目标已经通过实测。
- 首次环境准备与生产门禁参见部署指南。
开工前决策与上线前条件
| 阶段 |
必须明确的内容 |
尚未具备时的处理 |
| 开工前 |
各组件版本字段、协议来源、兼容判定和发布清单结构 |
先完成契约设计,避免不同组件各自定义版本规则 |
| 开工前 |
Agent 安装形态、受控测试设备和 D05 运行边界 |
不编写隐蔽安装或未经授权的设备更新流程 |
| 开工前 |
任务状态、执行许可与崩溃恢复规则 |
不以自动重试替代结果核实 |
| 上线前 |
可信签名或受保护发布清单的信任来源、保管和撤销方式 |
不向真实设备分发来源无法验证的包 |
| 上线前 |
兼容矩阵、数据库备份、恢复演练、回滚责任人 |
不批准生产发布 |
| 上线前 |
停止接收任务的窗口、通知责任和监控阈值 |
不假定单实例更新能够无中断 |
生产签名与正式环境资料尚未准备好,不妨碍本地契约设计;但会阻止对真实环境宣称具备受信发布能力。
版本与发布清单
| 对象 |
必须记录的内容 |
校验用途 |
| Web |
发布版本、源代码提交、构建来源、资源摘要 |
确认页面与 API 契约匹配 |
| API |
发布版本、镜像 digest、协议兼容范围、数据库要求 |
确认服务运行内容及可连接的 Agent 范围 |
| Agent |
发布版本、包摘要、来源证明、运行依赖和协议范围 |
验证安装包来源、完整性与设备适用性 |
| 共享协议 |
协议版本、任务 Schema 版本、消息与错误码定义 |
执行 D06,拒绝未知或不兼容消息 |
| 数据库 |
Alembic revision、迁移顺序、前后兼容与恢复方法 |
决定允许启动的应用版本及回退条件 |
- 发布清单还应包含变更说明、已知限制、必要配置变更、验证证据、发布人及核准记录。
- 发布产物不可静默覆盖;相同版本发现内容不一致时停止发布并调查。
- 容器镜像固定到具体版本或 digest;生产清单不得仅使用浮动标签作为可追溯依据。
- 包摘要用于完整性验证;没有可信签名或受保护清单的哈希不能单独证明发布者身份。
- 仓库只保留安全的示例配置和发布元数据,不包含真实密钥、用户数据、备份或设备凭据。
协议和数据库兼容规则
- Agent 握手时报告协议及执行能力版本;服务端按已发布兼容矩阵决定允许连接、仅允许对账或拒绝。
- 对已连接 Agent 的任务分发仍需检查任务类型与 Schema 版本,不能因握手成功接受任意字段。
- 新字段需通过明确版本协商;未知类型、未声明字段及不支持的版本应使用稳定错误码拒绝。
- 用户和设备权限由当前服务端策略决定,不因运行旧 Agent 而放宽;缺少安全校验能力的版本不能继续接收新执行任务。
- 数据库迁移采用兼容优先方案:先增加兼容结构,再切换读写,确认旧版本退出后才考虑清理。
- 仅声明“存在 downgrade”不能证明可回滚;必须核查字段转换、数据损失和旧程序读取新数据的能力。
- UUID、UTC、JSON、索引、外键和唯一约束按根规范迁移;兼容结论须来自 MySQL 8.4 验证。
- 无法兼容回退的数据库变更必须先给出恢复方案、允许的数据损失范围和核准条件。
发布前验证材料
- 提供真实构建、类型与 Lint 检查结果,并列出执行环境、组件版本及未验证范围。
- 提供受影响的单元、集成、契约和授权异常路径测试;文档审查不能替代这些证据。
- 提供任务重复投递、撤销、取消竞争、连接中断、进程崩溃及迟到结果的状态验证。
- 提供 MySQL 8.4 迁移与兼容验证,记录是否可以回退应用、是否需要恢复数据库及相应影响。
- 提供 Windows 标准用户安装、启动、凭据保护、独立浏览器执行和卸载验证。
- 提供 D04 浏览器实际网络目标限制的验证,覆盖适用的重定向、DNS 变化和页面附带请求。
- 提供备份与异机恢复演练结果;恢复表现未达到 P10 时明确差距和处置决定。
- 对本期未开放的聊天、模型、Skill、MCP、桌面与 Shell 能力给出禁用证据,不能以菜单不可见代替后端禁用。
服务端发布流程
| 顺序 |
动作 |
必须保留的证据 |
| 准备 |
冻结发布清单,确认兼容范围与回滚条件 |
构建来源、版本、检查结果和负责人 |
| 排空 |
停止接收新执行请求,暂停新的分发,允许已有结果回报 |
排空前后的任务数量、状态和执行许可记录 |
| 核对 |
核实运行中、取消中和未知结果任务 |
继续等待、人工核实或延期发布的决定 |
| 保护 |
按 P10 备份数据库及必要配置 |
备份时间、完整性检查与恢复可用性 |
| 迁移 |
使用独立迁移身份执行经验证的兼容迁移 |
实际 revision、执行结果与错误处理记录 |
| 更新 |
停止旧实例并更新 API、Web 与入口配置 |
版本匹配,保证没有并行的旧分发器 |
| 验证 |
检查存活、就绪、登录、连接及受控业务探测 |
真实验证结果与观察到的异常 |
| 恢复 |
先恢复连接与对账,再逐步允许新任务和分发 |
授权重检、待分发恢复与观察结果 |
- 首版遵循 D01,不承诺滚动无停机;更新窗口和用户影响必须在实施前明确。
- 服务端停止不能证明设备上的任务已经停止;不得把连接中断统一改写为
cancelled 或重新执行。
- 已经发放执行许可的任务按 D07 核对;撤销和暂停无法撤回已经发生的副作用。
- 若将来启用高风险能力,高风险任务执行中不得强制更新或重启 Agent;首版也应避免在任务结果未确认时强行替换进程。
- 就绪与存活接口目前按部署指南规划,实际发布流程只能使用届时已经实现并验证的检查。
Agent 可信发布与分批更新
- 首版可采用人工、可见安装的签名包,或由可信受保护发布清单验证来源的安装包;本期不默认实现自动升级。
- 选择签名方案时说明信任根、证书或公钥分发、签名验证、撤销和轮换方法;选择发布清单方案时说明清单来源与访问保护。
- 在执行任何安装内容前先验证来源、完整性和兼容范围;校验失败应停止,而不是允许用户忽略后继续自动安装。
- 更新包与发布清单走有效 TLS;同时验证 TLS 与包来源,不能认为加密下载自动等于可信软件来源。
- 先在受控测试设备验证,再按批准的批次扩大;批次规模结合 P01 与风险决定,不预设未经确认的生产比例。
- 每批观察设备重连、版本、权限拒绝、浏览器任务结果及异常指标;未达到条件时暂停下一批。
- 更新前持久保存任务日志与必要配置,保护设备凭据;新版本不得读取或迁移无关个人浏览器数据。
- 更新后核对任务和事件,不能把本地执行记录清空当作修复方法;凭据丢失时按重新配对流程处理。
- 回退包同样验证来源与兼容;不能为恢复可用性恢复已被撤销的设备秘密或关闭安全策略。
- 自动下载、后台安装、批量远程升级和自动回滚只有实现并验收后才能列为功能,文档流程本身不构成这些能力。
暂停和回滚判定
| 现象 |
即时处理 |
后续判定 |
| 签名、清单或包摘要异常 |
停止安装和扩大发布,保留产物证据 |
调查来源与发布链路,必要时撤销信任 |
| 授权绕过或撤销失效 |
停止新执行并隔离受影响版本 |
修复或回退,复核已执行任务及审计 |
| API 不就绪或迁移错误 |
保持新分发关闭,避免反复重启执行 |
按数据库兼容情况选择修复、回退或恢复 |
| Agent 大量离线或执行异常 |
暂停下一批,保存本地和服务端记录 |
按 P03 区分连接问题与执行结果不明 |
| 任务出现未知结果 |
禁止自动重试相关任务 |
人工核实并保留依据,不能仅靠回退版本解决 |
- 应用回退只在旧版本兼容当前数据库和协议时进行;恢复镜像不自动回退数据库。
- 若必须恢复数据库,先隔离旧写入者与分发器,核准恢复时间点和数据损失范围,再实施恢复。
- 恢复后先重新核验账户状态、权限撤销、设备凭据、任务事件和 Agent 记录,避免恢复历史权限或重复副作用。
- 无法取得可靠的备份后撤销事实时,保持登录和新执行关闭,失效全部旧用户会话与设备凭据,重新核准身份和授权后再配对;结果未知的任务和未确认停止的执行名额保持冻结。
- 已发生的业务副作用无法通过程序回退自动撤销;需要业务补偿时另外授权,并保留核实与执行审计。
- 回滚失败或恢复时间超过目标时升级给负责人员;不能通过禁用 TLS、放开授权或直接改写任务终态恢复表面健康。
发布结束与证据归档
- 记录最终部署版本、数据库 revision、设备版本分布、发布范围、暂停或回滚情况及已知限制。
- 保存适用检查结果、操作记录和恢复依据;数据保留按 P09,备份按 P10,秘密继续脱敏并受访问控制。
- 更新 README 的实际运行命令、兼容矩阵与实施状态导航,使部署说明与真实交付能力一致。
- 只有真实环境检查通过才能说明相应环境发布成功;模拟通过、安装包生成或文档补齐不得表述为功能已经上线可用。