fix: pass validation reason into STEP-051 style builder
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-04 15:36:16 +08:00
parent c94c9c5bd4
commit 9760009b3b
3 changed files with 49 additions and 2 deletions

View File

@@ -56,3 +56,12 @@ TIME/NORMAL validation 入口现可选择 production-like source(UI 状态标
旧 `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`。
## Android Validation Host Kotlin 编译修复
- 错误:`ParticleCoreLayerValidationActivity.kt:418` 的 `Unresolved reference 'reason'`。
- 根因:`loadValidationStyle()` 调用 `validationStyle()` 时未透传已有的 `reason` 参数。
- 修复:将调用改为 `validationStyle(active, enabled, reason)`,并将函数签名增加 `reason: String`。
- `PRODUCTION FEED → field-00.json` 与 `INVALID PROD → field-invalid.json` 的判断逻辑保持不变。
- 未修改 Core、Timeline、Runtime、Renderer 或 production metadata contract;Android build 尚待用户手工复验。
- STEP-051 状态仍为:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。

View File

@@ -0,0 +1,38 @@
# STEP-051 Android Validation Host Kotlin 编译修复 — Codex 完成报告
## 基线
- Starting HEAD:`c94c9c5bd4cce0322c9e7beb95e67385ae085720`
- branch:`particle/main`
- 任务范围:仅修复 `reason` 参数透传。
## 修复
在 `ParticleCoreLayerValidationActivity.kt` 中:
- `loadValidationStyle()` 调用改为 `validationStyle(active, enabled, reason)`。
- `validationStyle()` 签名增加 `reason: String`。
- 保留 `INVALID_PRODUCTION_METADATA` 判断:正常入口使用 `field-00.json`,`INVALID PROD` 使用 `field-invalid.json`。
- 未新增全局 reason、状态变量、Timer 或第二套 production state。
未修改 Core Adapter、Descriptor、Snapshot、Snapshot Submit Bridge、Timeline、Runtime Field Window、RasterParticleLayer、Renderer、JNI、Network 或 Provider Framework。
## 检查与边界
- 所有 `validationStyle(` 调用点:已检查,唯一调用点传入三个参数。
- `PRODUCTION FEED` / `INVALID PROD` 菜单:仍存在。
- `git diff --check`:PASS。
- Android Gradle/APK/ADB/App:未执行。
- Jest:未执行、未修改。
- Rotation/Viewport:未修改。
- 无关 untracked 文件:未修改、未 stage、未提交。
## Git
- commit hash:待提交后回填。
- commit message:`fix: pass validation reason into STEP-051 style builder`
- push result:待执行。
- remote branch:`origin/particle/main`
- Final HEAD:待 push 后回填。
当前 STEP-051 状态保持:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。用户后续手工执行 Android OpenGL Debug build,首要门槛为 `BUILD SUCCESSFUL`。

View File

@@ -228,7 +228,7 @@ class ParticleCoreLayerValidationActivity : AppCompatActivity() {
styleReady = false
styleLoadEpoch += 1
Log.i(TAG, "ParticleGPU: event=STYLE_LOAD epoch=$styleLoadEpoch reason=$reason")
maplibreMap.setStyle(Style.Builder().fromJson(validationStyle(active, enabled))) {
maplibreMap.setStyle(Style.Builder().fromJson(validationStyle(active, enabled, reason))) {
styleReady = true
if (timeWindowMode) timelineState = "READY"
status.text = statusText()
@@ -396,7 +396,7 @@ class ParticleCoreLayerValidationActivity : AppCompatActivity() {
return "$mask · $runtime · $fields$playback · MIX ${(timeMix * 100).toInt()}% · $particleCount · W ${"%.1f".format(lineWidth)} L ${"%.3f".format(particleLength)} O ${(particleOpacity * 100).toInt()} T ${(trailOpacity * 100).toInt()} F ${(trailFade * 100).toInt()} C ${if (speedColorEnabled) "ON" else "OFF"}"
}
private fun validationStyle(active: Boolean, enabled: Boolean): String {
private fun validationStyle(active: Boolean, enabled: Boolean, reason: String): String {
val fixtureId = fixtureId()
val nextFixtureId = if (timeWindowMode) {
if (fixtureMode == FIXTURE_UNIFORM_NORTH) "vortex" else "uniform-north"