Files
orbit/docs/reports/phase-7-compatibility.md

27 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P7 协议兼容矩阵与门禁
验证日期:2026-09-20。本批把当前服务端、独立 Go SDK 和机器可读 WebSocket schema 的版本边界固定为可执行检查,并补充一个可追溯历史提交的稳定任务 API 双向演练。
## 检查内容
[`scripts/test-protocol-compatibility.sh`](../../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。
## 实际结果
```json
{"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`](../../scripts/test-historical-sdk-compatibility.sh) 以 `a50d5fa` 为历史 fixture,在 Go 1.27.1 与 MySQL 8.4 一次性环境中完成稳定任务 API 的双向真实服务 smoke:旧服务端运行当前 SDK、当前服务端运行旧 SDK 均通过。完整命令、输出和边界见[历史兼容性报告](phase-7-historical-compatibility.md)。
该提交不是正式发布标签,且演练范围只覆盖任务受理、幂等、查询、分页和取消;Worker/Event WebSocket、流程、计划及新增接口仍未形成正式标签矩阵,不能宣称全协议跨版本兼容。