docs: close STEP-053 Android validation

This commit is contained in:
OpenAI Codex
2026-09-04 20:24:17 +08:00
parent c188d6b590
commit e98805524b
2 changed files with 40 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
# STEP-053 Windy-style Canonical Field 与 Host→MapLibre Submission Contract
- 状态:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`
- 状态:`CLOSED / PASS`
- Starting HEAD:`285d23a58f6ecb16f360748df688d9d03dad6b3d`
- 分支:`particle/main`
- 目标:让已经取得并规范化规则二维 U/V Field 的外部 Host,以低频 `metadata + contiguous binary payload` 提交给 MapLibre Native,并复用 STEP-049/051 的 Adapter、Snapshot、Timeline、Runtime Window 与 Renderer。
@@ -119,3 +119,34 @@ Android Validation Host 原有 STEP-053 控件和 JNI/API 已存在,但 MORE
- 未新增 JNI forwarding,复用既有 `MapLibreMap → NativeMapView → RasterArraySource::submitHostField()` 薄桥。未修改 Adapter、Timeline、Runtime Field Window、Renderer 或任何 provider/network 逻辑。
Android Gradle、APK、ADB 和设备验收仍由用户手工执行;状态继续为:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。
## Android Host Submission 最终验收
用户已在 Android Validation Host 完成综合技术验收:`STEP-053 Android Host Submission Validation: PASS`。
| 验收项 | 结果 |
| --- | --- |
| `HOST FIELD` 与 STEP-051 `PRODUCTION FEED` 路径分离 | PASS |
| canonical `production-wind-t00` ~ `production-wind-t03` | PASS |
| Host Submission → Adapter → Snapshot → Timeline → Runtime Window → GPU Renderer | PASS |
| T0/T1 Initial Window、T2/T3 Next Submission | PASS |
| `PLAYBACK_PLAY`、Automatic MIX | PASS |
| production→production Window Boundary(至少 2 次) | PASS |
| `OLD_T1 → NEW_T0` reuse、only NEW_T1 upload | PASS |
| 正常 boundary `simulationRebuild=false`、`trailCleared=false` | PASS |
| `HOST DUPLICATE` / `DUPLICATE_NOOP` | PASS |
| `HOST INVALID` / Adapter fail-closed / last valid field retained | PASS |
| Renderer continuity(`ParticleRender stateSeed=CONTINUE`)、无黑屏、无 crash | PASS |
两次已确认的连续 boundary 为:
`production-wind-t00 / production-wind-t01 → production-wind-t01 / production-wind-t02`,以及
`production-wind-t01 / production-wind-t02 → production-wind-t02 / production-wind-t03`。
正常 boundary 的 `fieldUploadCount` 从 `4 → 5 → 6`,每次只增加一个 NEW_T1 upload。`simulationResetCount=1` 仅来自旧 fixture `uniform-east / uniform-east` 首次切换到 Host `production-wind-t00 / production-wind-t01` 的允许初始化(该切换可出现 `simulationRebuild=true` 与 `trailCleared=true`);它不是 production→production boundary 回归。
用户正式风场数据集为 `NOT PROVIDED / NOT VALIDATED`。这不阻止本 Step 关闭:STEP-053 的目标是冻结并验证 Host→MapLibre canonical Field Submission Contract,已由本地 canonical T0~T3 驱动实际 Timeline、Runtime 和 GPU Renderer 完成验证。后续正式数据只是在同一 contract 下替换或追加验证。
Validation UI 的 MIX 文本可能滞后、WAITING/INVALID 视觉不够明显,继续归类为 `NON-BLOCKING observability`,不是 Core、Timeline、Runtime 或 Renderer 缺陷。本次仅文档收尾,未修改功能代码,也未执行 Android Gradle/APK/ADB/Jest。
最终状态:`CLOSED / PASS`。

View File

@@ -390,3 +390,11 @@
- STEP-053 Host submission API/JNI 和 Host 控件已在 `b31f80c...` 存在;为让手工入口与 STEP-051 `PRODUCTION FEED` 一眼区分,MORE 现显示 `PRODUCTION FEED → HOST FIELD → INVALID PROD → HOST DUPLICATE → HOST INVALID`。
- `HOST FIELD` 继续只读取既有 T0~T3 metadata/binary assets 并逐片调用正式 `MapLibreMap.submitRasterArraySourceHostField()`;新增低频 `HOST_FIELD_DATASET_LOAD` 日志,Native 继续输出带 fieldId/generation/validTime 的 Host submit 事件。
- Host duplicate 与 Host invalid 均重用同一 Host submission contract,不通过 style reload 伪造验证。未修改 Adapter、Timeline、Runtime Window、Renderer、JNI/Core 语义或任何网络/provider 逻辑;状态仍为 `IMPLEMENTED / WAITING_ANDROID_VALIDATION`。
## 2026-09-04 — STEP-053 Android 技术验收最终收尾
- STEP-053 正式 `CLOSED / PASS`。用户 Android 综合验收确认 `HOST FIELD` 与 STEP-051 `PRODUCTION FEED` 路径分离;canonical `production-wind-t00`~`t03` 真实经过 Host Submission、Adapter、Snapshot、Timeline、Runtime Window 和 GPU Renderer。
- T0/T1 initial、T2/T3 next、PLAY、automatic MIX 和两次 production→production boundary 全部 PASS;两次 boundary 均为 `OLD_T1 → NEW_T0` reuse、only NEW_T1 upload、`simulationRebuild=false`、`trailCleared=false`。
- `fieldUploadCount=4 → 5 → 6` 证明正常 boundary 每次仅上传一个 NEW_T1。唯一 `simulationResetCount=1` 属于旧 fixture 切到 Host dataset 的允许初始化,不是正常 production boundary 回归。
- `HOST DUPLICATE` 返回 `DUPLICATE_NOOP` 且 upload/reset 不增长;`HOST INVALID` 经 Adapter reject fail-closed,last valid field 与 Renderer continuity(`stateSeed=CONTINUE`)保持,无黑屏、无 crash。
- 用户正式风场数据集仍未提供、未验证,但不阻塞 contract 阶段关闭;后续可在同一 canonical contract 下追加。MIX 文本滞后及 WAITING/INVALID 视觉为 `NON-BLOCKING observability`,本次未修改功能代码或执行 Android/Jest。