From 2041e7f661b3d2061fe42fe8d8e856e342320892 Mon Sep 17 00:00:00 2001 From: k2safe Date: Thu, 24 Sep 2026 12:41:30 +0800 Subject: [PATCH] test: record remote error catalog and compatibility acceptance --- performance/errorCatalogAcceptance.md | 12 ++++++- .../errorCatalogCompatibilityRemote.json | 31 +++++++++++++++++++ performance/errorCatalogRemote.json | 29 +++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 performance/errorCatalogCompatibilityRemote.json create mode 100644 performance/errorCatalogRemote.json diff --git a/performance/errorCatalogAcceptance.md b/performance/errorCatalogAcceptance.md index b0b9e5c..e003f0d 100644 --- a/performance/errorCatalogAcceptance.md +++ b/performance/errorCatalogAcceptance.md @@ -29,4 +29,14 @@ 共享幂等新增用例使用 JSON 序列化的内存替身,验证字段在持久化边界上保留;未为本特性运行外部 Redis 服务。没有进行 Linux soak、代理长测或完整业务迁移验收。业务项目仍需升级框架/CLI,并逐步将散落错误改为目录调用。 -远程固定版本验收在发布后追加,已发布标签保持不可变。 +## 远程固定版本验收 + +发布后两条独立远程验收均通过;各自从全新 module cache 安装远程 CLI,生成的消费者依赖固定版本,没有本地 replace。 + +- 发布标签:`v0.10.0-preview`;源码:`ebfd279f9ada059bcb5d229e463759122b8a3669`。 +- module 校验和:`h1:bbBDhMtp6ax+krphTGu9M1xnHGFORSg/ahFxWbEILyQ=`,两条验收结果一致。 +- 错误目录远程消费者:实际生成代码编译、HTTP 200 失败、同码不同提示、状态覆盖、未知标识兜底、cause 隔离、raw 输出、中间件提前返回、重生成保护与 race 测试通过;耗时 14.15 秒,详见 [错误目录远程记录](errorCatalogRemote.json)。 +- 迁移兼容性消费者:标量转换、int64 精度、动态 JSON、原始请求体验签、路由体积限制、上传临时文件清理、下载及重生成保护通过;耗时 14.48 秒,详见 [兼容性远程记录](errorCatalogCompatibilityRemote.json)。 +- 验收 fixture 哈希与当前文件一致;临时目录及缓存已清理。 + +结果在 main 单独追加,已发布标签保持不可变。 diff --git a/performance/errorCatalogCompatibilityRemote.json b/performance/errorCatalogCompatibilityRemote.json new file mode 100644 index 0000000..0cf6dd7 --- /dev/null +++ b/performance/errorCatalogCompatibilityRemote.json @@ -0,0 +1,31 @@ +{ + "passed": true, + "frameworkVersion": "v0.10.0-preview", + "frameworkSum": "h1:bbBDhMtp6ax+krphTGu9M1xnHGFORSg/ahFxWbEILyQ=", + "freshModuleCache": true, + "noLocalReplace": true, + "durationSeconds": 14.48, + "checks": [ + "remoteCLIInstall", + "scalarContractValidation", + "manualProjectGeneration", + "int64MaxValueOnWire", + "dynamicJSON", + "rawBodySignature", + "routeBodyLimits", + "multipartTempCleanup", + "unwrappedDownloads", + "handwrittenFilesPreserved", + "generatedConsumerRaceTests", + "fixedRemoteModuleChecksum" + ], + "sourceHashes": { + "scripts/verifyCompatibilityRelease.py": "90e487d3203ed4eb4bc721da8086356413345b3e05193e473250a834aeb8d293", + "cmd/go-omni/apigen/compatibility_test.go": "98cf5fbe6cb6413c12f709806d385726f3dec1468575f76967786de4707667ba", + "examples/contracts/compatibility.api": "3ede909e7f60386012e55c916a8e4887dd08562e7f023665f663288c809873d4", + "cmd/go-omni/apigen/testdata/compatibility/consumer_test.go": "0a99ffd6a5cc16d47ae8208d9140c8d6afd9c19106fac8e5e61096cb90d8c463", + "cmd/go-omni/apigen/testdata/compatibility/hooks.go": "435baf37c7f8adffd18d4be0353a791124e0bc5dcb79abdcc345276b6f9867f4", + "cmd/go-omni/apigen/testdata/compatibility/echo.go": "9e13cb18a0951974e723a1fd915c0f4610d823c95eadb752c3d1cd75c44fa293", + "cmd/go-omni/apigen/testdata/compatibility/download.go": "e7f4bcdb34c90ec63fdab1f3c4e524964ac153944352d8a9053a9f19b74030fd" + } +} diff --git a/performance/errorCatalogRemote.json b/performance/errorCatalogRemote.json new file mode 100644 index 0000000..e04468d --- /dev/null +++ b/performance/errorCatalogRemote.json @@ -0,0 +1,29 @@ +{ + "passed": true, + "frameworkVersion": "v0.10.0-preview", + "frameworkSum": "h1:bbBDhMtp6ax+krphTGu9M1xnHGFORSg/ahFxWbEILyQ=", + "freshModuleCache": true, + "noLocalReplace": true, + "durationSeconds": 14.15, + "checks": [ + "remoteCLIInstall", + "errorCatalogValidation", + "generatedErrorConstructors", + "http200BusinessFailure", + "duplicatePublicCodeDistinctMessages", + "perErrorHTTPStatus", + "unknownErrorFallback", + "causeNotExposed", + "rawSuccessAndWrappedFailure", + "earlyMiddlewareCatalog", + "handwrittenFilesPreserved", + "generatedConsumerRaceTests", + "fixedRemoteModuleChecksum" + ], + "sourceHashes": { + "scripts/verifyErrorCatalogRelease.py": "53b00d6069296903ba8392c68dfd6d9ae6d8c83e9b82555e55e8be0ec0f2b828", + "cmd/go-omni/apigen/errorCatalog_test.go": "9053ca2b103c32d6374ca013580b9f9f18d2319e15e445477a5c61795b32f2ae", + "examples/contracts/errors.api": "bfbe0e81c6d0f87981f511f21d4d3e138cdf9287c5f6615856ac04a825b14435", + "cmd/go-omni/apigen/testdata/errorCatalog/consumer_test.go": "804cee8cdbca5fe05e6340b8ac21e5bbb7d2a5c38fa6b06b121fc745aaea62ac" + } +}