test: expose STEP-051 production feed validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-04 15:16:30 +08:00
parent e3e7c7e219
commit 8a5a91acfc
5 changed files with 77 additions and 4 deletions

View File

@@ -45,3 +45,14 @@ TIME/NORMAL validation 入口现可选择 production-like source(UI 状态标
- Jest:未执行。
当前状态只能记为:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。
## Android Validation Host 入口补充
在现有 Particle Core Layer Validation 页面的 MORE 菜单新增:
- `PRODUCTION FEED`:切换到 STEP-051 已有 `production-fields` source,加载四个 local metadata asset 与既有 binary payload,继续进入 Core Adapter、Snapshot、initial T0/T1、Timeline READY/PLAY 路径。
- `INVALID PROD`:加载 `field-invalid.json`,其中 `fieldId`、`generation`、`validTime` 明确非法,用于观察正式 Adapter rejection/fail-closed;不放宽 contract。
旧 `UNIFORM EAST`、`UNIFORM NORTH`、`VORTEX` 与 TIME 控件仍保留。Host 仅触发低频 style/resource 命令;没有新增 JNI command、Android Timer、Timeline、Window 或 MIX state。状态栏在 production 模式显示 `PRODUCTION · TL ...`,日志仍由 Core 输出 `PRODUCTION_FEED_LOAD`、`SNAPSHOT_SUBMIT` 和 Timeline 事件。
本次没有修改 C++ Core、Timeline、Runtime Field Window、Renderer、Adapter contract、MIX observability 或 Rotation/Viewport。Android Gradle/APK/ADB/实机验证仍由用户执行;状态继续为 `IMPLEMENTED / WAITING_ANDROID_VALIDATION`。

View File

@@ -0,0 +1,52 @@
# STEP-051 Android Validation Host 入口补充 — Codex 完成报告
## 基线
- Starting HEAD:`e3e7c7e219c490ab45ca40794db0bc59fc2c4817`
- branch:`particle/main`
- origin/particle/main 起点:`e3e7c7e219c490ab45ca40794db0bc59fc2c4817`
- 任务性质:STEP-051 内部 Android Validation Host 补充。
## 修改与接线
- `ParticleCoreLayerValidationActivity.kt`:MORE 菜单新增 `PRODUCTION FEED` 与 `INVALID PROD`,分别触发现有 production-like source 和非法 metadata source。
- `activity_particle_core_layer_validation.xml`:增加不可见菜单 target `validationProductionInvalid`。
- Android asset:增加 `field-invalid.json`。
- `STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md`:追加入口说明。
`PRODUCTION FEED` 复用 STEP-051 已有 `production-fields`、`LocalParticleFieldFeed`、正式 Adapter、Snapshot、`submitInitialRuntimeFieldWindow` 和 Core Timeline。没有复制 feed、Timeline、Runtime Window、MIX 或 normalization。`INVALID PROD` 只提供明确非法 local metadata 触发,Adapter contract 未放宽。
日志区分 production-like 路径与 fixture 路径;Core 侧既有低频 `PRODUCTION_FEED_LOAD`、`SNAPSHOT_SUBMIT`、Timeline READY/Boundary 日志继续生效。未增加 JNI method、JNI command、每帧日志或 Android Timer。
## 边界判断
- Core / Timeline / Runtime Field Window / Renderer:未修改。
- ParticleFieldDataAdapter / Descriptor / Snapshot:未修改。
- Duplicate:继续复用当前 source 的既有 `DUPLICATE T1`,production source 激活后由同一 Runtime Window 处理。
- MIX observability:未修改,仍为 `NON-BLOCKING` 技术债。
- Rotation/Viewport:未修改。
## 验证
- Linux OpenGL `mbgl-test-runner` 精确构建:复用 STEP-051 已通过构建。
- 相关定向测试:复用并确认 STEP-051 既有 `Source.LocalProductionFeed*`、`Source.ParticleFieldDataAdapter*`、`Source.RasterArray*` 为 14/14 PASS。
- Android source static inspection:确认 MORE 菜单、resource ID、production asset 路径和旧 fixture 入口均存在。
- JNI signature/registration:本次无 JNI 改动,无需新增注册。
- `git diff --check`:PASS。
- Android Gradle/APK/ADB/App/实机:未执行。
- Jest:未执行、未修改。
## Git 与状态
- commit message:`test: expose STEP-051 production feed validation`
- commit hash:待提交后回填。
- push result:待执行。
- remote branch:`origin/particle/main`
- Final HEAD:待 push 后回填。
- 无关 untracked 文件未修改、未 stage、未提交。
当前 STEP-051 状态保持:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。
## 用户 Android 验收步骤
重新 build/install 一次后:MORE → `PRODUCTION FEED`,观察 `PRODUCTION` 与 `TL READY`;再进入 TIME → `PLAY / RESTART`,验证 MIX、至少两个 boundary、reuse/upload、`simulationRebuild=false`、`trailCleared=false`、Pause/Resume、Duplicate T1。随后可点 MORE → `INVALID PROD`,确认 Adapter reject、保持最后有效 Field、Renderer 持续且不黑屏。