docs: record STEP-073 v3 audit
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# STEP-073 — QBIN2 V4 Core 与通用 Field Profile Validator 审计修正 v3
|
||||
|
||||
状态:完成
|
||||
|
||||
日期:2026-09-13
|
||||
|
||||
## 目标
|
||||
|
||||
仅关闭独立审计发现的 Generic Field Profile Validator 协议遗漏:Native 已知 Core semantic 不得被 Contract 与 Frame 联合伪装,且 Direction Circular Quantization 必须有完整的 provider-neutral 结构约束。
|
||||
|
||||
## 完成项
|
||||
|
||||
- [x] 在 Validator 内建立静态、数据表驱动的 Native Core semantic contract:`1=VELOCITY_COMPONENT/MPS/U_EAST`、`2=VELOCITY_COMPONENT/MPS/V_NORTH`、`3=VALIDITY/NONE/NONE/group0`、`10/11=DIRECTION_ANGLE/DEGREE/NONE/group0`。表不依赖 profile/product 名称。
|
||||
- [x] Contract 与实际 Frame 都在原有 descriptor 比较前核对该表;冲突返回结构化 `SemanticContractMismatch`。
|
||||
- [x] Unknown `SCALAR` semanticID 和 unitID 仍为 opaque,继续经过 Contract/Frame descriptor 一致性检查而不加入 Native unit 白名单。
|
||||
- [x] 所有 `DIRECTION_ANGLE` 强制 `DEGREE(4)`、`NONE`、`groupID=0`、`UINT16`、`offset=0`、`scale=360/65536`(允许极小 float32 表示误差);违反返回 `InvalidCoreUnit` 或已知 semantic 的 `SemanticContractMismatch`。
|
||||
- [x] 覆盖已知 semantic 伪装、正确 Direction、Direction component/group/dtype/scale/offset/unit 拒绝、opaque Scalar、既有 plane identity、DEGREE registry 与 ForecastClock HALF 行为。
|
||||
|
||||
## 允许修改
|
||||
|
||||
仅修改 `include/mbgl/particle/field/field_profile_validator.hpp`、`src/mbgl/particle/field/field_profile_validator.cpp`、`test/particle/field_runtime.test.cpp`、本 Step、完成报告与开发记录。
|
||||
|
||||
## 禁止修改确认
|
||||
|
||||
未修改 QBIN2 Decoder、Binding/Projection、Renderer、shader、JNI、`platform/android/**`、`packages/maplibre-particle-rn/**`、`integration/react-native/**` 或现有 V3 生产入口;未实现 parser/header/CRC/packing。
|
||||
|
||||
## 验证
|
||||
|
||||
所有 noisy 命令均经 `build-output-throttle` 的 `run_limited.py` 节流执行:
|
||||
|
||||
- [x] `cmake --build build-linux-opengl --target mbgl-test -j3`:PASS。
|
||||
- [x] `build-linux-opengl/mbgl-test-runner --gtest_filter='ParticleFieldRuntime.*:ParticleFieldProfileValidator.*'`:PASS。
|
||||
- [x] `build-linux-opengl/mbgl-test-runner --gtest_filter='Source.ParticleFieldDataAdapter*:Source.RasterArrayTimeline*:Source.HostField*'`:PASS。
|
||||
- [x] `git diff --check`:PASS。
|
||||
|
||||
未执行 Android Gradle、APK、ADB、真机、Jest 或 iOS/Metal。
|
||||
|
||||
## 当前结果、阻塞与下一步
|
||||
|
||||
本轮所有范围内项完成,无阻塞。本 STEP 在此停止,等待 ChatGPT 独立审计;不进入 STEP-074 或任何 QBIN2 ingress/Decoder 工作。
|
||||
@@ -0,0 +1,46 @@
|
||||
# STEP-073 QBIN2 V4 Core 与通用 Field Profile Validator 审计修正完成报告 v3
|
||||
|
||||
## 结论
|
||||
|
||||
**已完成 / PASS。** 本轮只修复 QBIN2 V4 provider-neutral Core contract 与 Generic Field Profile Validator 的协议一致性遗漏;未进入 Decoder、Binding/Projection、Renderer、JNI、Android、RN 或 V3 生产入口。
|
||||
|
||||
## 逐项结果
|
||||
|
||||
| 项目 | 结果 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| Known Core semantic 固定物理含义 | 已完成 | 静态协议表覆盖 semantic `1`、`2`、`3`、`10`、`11`,同时校验 Contract 和 Frame,错误为 `SemanticContractMismatch`。 |
|
||||
| Unknown SCALAR 可扩展性 | 已完成 | 未增加 Scalar unit 白名单;opaque semantic/unit 的 Contract/Frame 一致组合仍通过。 |
|
||||
| Direction Circular Quantization | 已完成 | 通用 value-class 校验固定 DEGREE=4、NONE、group0、UINT16、offset=0、scale=360/65536,并容忍极小 float32 表示误差。 |
|
||||
| v2 plane identity / DEGREE / HALF | 已完成 | 原有 `(semanticID, groupID)` 唯一性、DEGREE=4 及 ForecastClock HALF 测试继续通过。 |
|
||||
| V3 定向回归 | 已完成 | FieldDataAdapter、RasterArrayTimeline、HostField 过滤回归通过。 |
|
||||
| QBIN2 Decoder、Binding/Projection、Renderer、JNI、Android、RN | 未完成(禁止范围) | 本任务未实现或改动。 |
|
||||
| Android/ADB/Jest/iOS-Metal 验证 | 无法验证(未执行) | 任务明确禁止 Android Gradle、APK、ADB、真机与 Jest;未主张 iOS/Metal 结果。 |
|
||||
|
||||
## 自动化测试
|
||||
|
||||
新增/修正的 C++ 覆盖确认:
|
||||
|
||||
- semantic `1` 的 Contract+Frame 同时伪装为 Scalar 被拒绝;semantic `2` 的错误 component、semantic `3` 的错误 validity descriptor 被拒绝;规则来自 protocol table 而非 profile 名称。
|
||||
- semantic `10` 的合法 Direction 接受;MPS/unit 错误、U_EAST component、非零 group、非 UINT16 dtype、非 canonical scale 及非零 offset 都拒绝。
|
||||
- Unknown Scalar 的 opaque unit 继续接受;既有 semantic/group 唯一性、DEGREE=4、ForecastClock HALF 和 V3 回归持续通过。
|
||||
|
||||
全部 noisy 命令均通过 `build-output-throttle` 执行:
|
||||
|
||||
- `cmake --build build-linux-opengl --target mbgl-test -j3`:PASS。
|
||||
- `build-linux-opengl/mbgl-test-runner --gtest_filter='ParticleFieldRuntime.*:ParticleFieldProfileValidator.*'`:PASS。
|
||||
- `build-linux-opengl/mbgl-test-runner --gtest_filter='Source.ParticleFieldDataAdapter*:Source.RasterArrayTimeline*:Source.HostField*'`:PASS。
|
||||
- `git diff --check`:PASS。
|
||||
|
||||
首次受沙箱构建因既有 ccache 需要写入 `/root/.cache/ccache` 而失败;经授权用完全相同的节流命令重试后 PASS。
|
||||
|
||||
## Git 收尾
|
||||
|
||||
- 开始 HEAD:`1a453a6623b4fae63b67b604d2bd690b1ebc77ef`。
|
||||
- Final 实现 HEAD:`4b8d200831ce464b6fbb141785ecf0245e8c26ca`。
|
||||
- 实现提交:`4b8d200831ce464b6fbb141785ecf0245e8c26ca`,`fix: close STEP-073 QBIN2 V4 validator audit`。本报告、v3 Step 与开发记录以独立 closing docs commit 收尾;两笔提交都只包含本任务允许的文件。
|
||||
- push:在 closing docs commit 后尝试推送 `origin/particle/main`;最终结果以该次 Git 命令输出为准。
|
||||
- 任务开始前已有 STEP-062 文档 modified 与历史 untracked 文件保持原样,未暂存、未删除、未提交。
|
||||
|
||||
## 停止条件
|
||||
|
||||
范围内修正和 Linux 验证已完成。本报告后立即停止,等待 ChatGPT 独立审计,不进入 STEP-074。
|
||||
Reference in New Issue
Block a user