5.7 KiB
5.7 KiB
STEP-097 B 阶段独立验收与版本阻塞报告 v1
状态:PARTIAL / BLOCKED_NATIVE_AAR_COMPATIBILITY。B 不判 PASS,C 不启动。本报告按实际验证结果更新,不以 Codex 终态代替验收。
基线与执行
- 日期:2026-09-26;Mac 仓库
particle/mainHEADb1239ac3b1554943200e6fbf14321459ccc86527;实施工作树 dirty,尚未 commit/push。 - Integration
main已由 RDC fetch 核验,本地及远端均为318f8ccf911ac3136c3086a1d14e61f83e2d4bce;Contract C-001 未改。 - Codex 两次均使用 GPT-6 Luna High,
codex exec --json;分别收到turn.completed、退出码 0;完整 JSONL/status.json 位于artifacts/maplibre-particle/step097-b10-codex/和step097-b-fixture-codex/。 - 工作范围:08 JSON、09 数值 ingress、10 Android owner/map destroy、20 Test Host 版本配对;用户未跟踪 STEP-098 及正式 .13 发布资产未触碰。
代码和独立证据
- 08:按真实字节长度解析,拒绝 NUL、重复键、非法 strategy/schema,失败清旧计划;已存在定向 GTest。
- 09:有效 cell 数值及 scale/offset 有限性验证在提交 Store 前执行;合法 validity=0 保留,坏高 revision 不覆盖旧场。
- 10:新 View attachment owner、generation guard 与 map destroy observer;附 Android owner/JUnit 和 MapLibreMap 真正 onDestroy 测试。
- 20:Test Host package.json 与 lock 均精确为 RN
13.4.1-particle.13;正式 tarball SHA-2563a726db06cb967fe56de77ca4a72feed98cd642a2d1b73fd51b1531d15ef7539与 release manifest 一致,lock integrity 的 SHA-512 与实包一致。 - Mac Core 增量构建 PASS;B 四项定向 GTest 4/4 PASS;原 broad 134 项中 2 项旧 UInt8→Int16/UInt16 4-byte fixture 不合法,修正为合法 8-byte 小端四样本后重新构建,broad 134/134 PASS。未放宽生产数值校验或既有断言。
- 原始日志:
artifacts/maplibre-particle/step097-b-rdc/core-*.log。
阻塞门槛
- B10 新增
MapLibreMap.addOnDestroyListener()为 Android SDK 新方法;正式 .13 release source commitddf20dec9fe9cd05b77274827b6825829500dd5a没有此方法。 - Test Host 默认及 RN 模块 Gradle 仍消费已发布原生 AAR
13.4.1-particle.13。所以新 RN Kotlin bridge 直接调用该方法时,现有默认正式消费组合不具备此符号;不能用本工作树 Native 源码 JUnit 冒充 .13 RN consumer 编译通过。 - 需要选择不增加已发布 ABI 依赖的完整生命周期方案,或者另走正式新 Native/RN 同版发行与配对验证。未经上游决定不得改写 .13 tag、manifest/AAR,也不得以反射或私有绕道掩盖版本问题。
2026-09-26 RDC 补充独立实测(Mac,覆盖上方旧测试数字)
- B10 Codex 的持久化
status.json:gpt-6-luna/high,75 条 JSONL 事件,turn.completed,exit 0;旧 fixture 修正任务同样turn.completed/ exit 0。两次交付本身不代表验收。 - 本轮 Mac 原生测试 runner 增量编译 exit 0;六项 B 定向 GTest 6/6 PASS,完整扩展 filter 139/139 PASS;旧 fixture 仅修正 16-bit 四样本合法长度,未放宽生产校验或原断言。证据:
artifacts/maplibre-particle/step097-b-rdc/validation-{build-core,focused-gtest,broad-gtest}.log与validation-status.json。 - Mac 使用现有 OpenJDK 17 和 Android SDK:
:MapLibreAndroid:testOpenglDebugUnitTest --tests org.maplibre.android.maps.MapLibreMapDestroyListenerTest2/2 PASS;:MapLibreAndroid:compileOpenglDebugJavaWithJavacexit 0。JUnit XML 位于platform/android/MapLibreAndroid/build/test-results/testOpenglDebugUnitTest/;证据在android-validation-status.json、validation-native-{destroy-junit,compile}.log。 - Owner Kotlin 单测使用独立临时 JVM 项目,源码及测试副本 SHA-256 与本工作树对应文件分别一致:生产
36b437a0bc1573bafcf1a99ee37d4c438b72ea9ad5a9847fb0021f8093a3296a,测试4c27cc3e82c0570b78b27aec46d565359eff11e18c2ff292e4188c158e8a4407;JUnit 4/4 PASS,0 fail/skip。第一次 offline 插件 marker 缺失,第二次正常解析并通过;详见owner-jvm-status.json和validation-owner-jvm-retry.log。这是 owner helper 的 JVM 回归,不冒充 RN Host 集成。 git diff --checkexit 0,正式 .13 release commitddf20dec9的MapLibreMap.java无addOnDestroyListener(),而当前 RN Bridge 调用该方法且 Gradle 精确锁定旧 .13;因此 默认 RN consumer 编译仍未通过/不可宣称 PASS,此阻塞不因上述单元测试通过而解除。- Linux 独立工作树的 Gradle 仍有原进程,状态未确认完成,不能以 Mac 测试代替 Linux 结果;须等待并单独记录最终退出状态。
- 当前结论维持
PARTIAL / BLOCKED_NATIVE_AAR_COMPATIBILITY。STEP-097 整体未关闭;C、STEP-098、正式发布均 NOT RUN。未授权改写 .13 tag/manifest/产物,不把当前不兼容代码推入正式消费基线。
Git 阻塞检查点(2026-09-26,后续事实)
- 为避免将当前无法和正式 .13 AAR 配对编译的新 RN bridge 提交进
particle/main,RDC 以b1239ac3b1554943200e6fbf14321459ccc86527创建独立 worktree,逐文件 SHA-256 比对 21 个 B 源码/测试/文档,并 scoped commit/push 到step097-b-blocked-20260926。 - 首个 checkpoint commit:
e463ba04ce956a54eed02b77f981eeeedd9a5534;独立远端回读相符。主线origin/particle/main=b1239ac3b1554943200e6fbf14321459ccc86527不变。原 Mac dirty B 工作树及用户 STEP-098 不变;发布资产无差异。 - Git 保存成果不等于 B 验收通过;B 仍
PARTIAL / BLOCKED_NATIVE_AAR_COMPATIBILITY,待 Integration / 发行流程明确新 Native/RN 同版配对或实现不依赖新 ABI 的可靠替代方案。不得启动 C、STEP-098 或覆盖 .13。