2.1 KiB
2.1 KiB
P7 协议兼容矩阵与门禁
验证日期:2026-09-20。本批把当前服务端、独立 Go SDK 和机器可读 WebSocket schema 的版本边界固定为可执行检查,并补充一个可追溯历史提交的稳定任务 API 双向演练。
检查内容
scripts/test-protocol-compatibility.sh 检查:
- 服务端和 SDK 的 Worker 子协议均为
pulse.worker.v1,连接路径均为/v1/worker/connect; - 服务端和 SDK 的结果事件子协议均为
orbit.events.v1,连接路径均为/v1/events/connect; - Worker/事件帧构造和 JSON schema 的
protocol_version均为1,schema$id分别固定为 worker.v1 与 events.v1; - HTTP 接口主版本为
/v1,流程定义 schema 版本为1,当前数据库迁移版本为 v28。
实际结果
{"http_api":"/v1","worker_subprotocol":"pulse.worker.v1","event_subprotocol":"orbit.events.v1","worker_frame_version":"1","event_frame_version":"1","workflow_schema_version":1,"status":"current_contracts_match","historical_pairs":"not_verified"}
当前同一 checkout 的 SDK 单元/竞态测试、服务端协议测试和真实 MySQL/HTTP/WSS 集成测试覆盖当前组合。仓库尚未有正式 SDK 或服务端标签,因此“旧 SDK + 新服务端”和“新 SDK + 旧服务端”不能标记为通过;发布候选需建立至少一个带标签的旧版本 fixture 后再补两组矩阵回归。
历史提交演练
scripts/test-historical-sdk-compatibility.sh 以 a50d5fa 为历史 fixture,在 Go 1.27.1 与 MySQL 8.4 一次性环境中完成稳定任务 API 的双向真实服务 smoke:旧服务端运行当前 SDK、当前服务端运行旧 SDK 均通过。完整命令、输出和边界见历史兼容性报告。
该提交不是正式发布标签,且演练范围只覆盖任务受理、幂等、查询、分页和取消;Worker/Event WebSocket、流程、计划及新增接口仍未形成正式标签矩阵,不能宣称全协议跨版本兼容。