67 lines
1.6 KiB
Markdown
67 lines
1.6 KiB
Markdown
# CM95 PBF 生产化阶段 v1.4.4
|
||
|
||
## 状态
|
||
|
||
目标:解决 v1.4.3 全量 production 重建后剩余 45 个 `MVT encoder dropped features`。
|
||
|
||
v1.4.3 实测:
|
||
|
||
- jobs: 20,115
|
||
- PASS: 20,070
|
||
- FAILED: 45
|
||
- FSHHAV hard-gate: 已解决
|
||
- 剩余失败:全部 encoder drop
|
||
|
||
## 根因
|
||
|
||
v1.4.3 的 MVT 编码前预量化检查只能近似模拟 mapbox-vector-tile 的实际 geometry clean-up。
|
||
实际 encoder 内部仍可能把部分 line/polygon 清理为空,因此第一遍 encode/decode 仍发现 planned ID 缺失。
|
||
|
||
## 修复
|
||
|
||
采用两阶段真实 encoder reconciliation:
|
||
|
||
1. encode + decode;
|
||
2. 比较 planned IDs 与 actual IDs;
|
||
3. 对 dropped ID:
|
||
- 普通几何:显式 quantization omission;
|
||
- safety-preserving layer:point fallback;
|
||
4. 重建 planned set;
|
||
5. 重新 encode + decode;
|
||
6. 最终仍不一致则 fail-closed。
|
||
|
||
不会把 depth contour / baseline line 等普通线性对象伪造成 hazard point。
|
||
|
||
## Production plan 完整性修复
|
||
|
||
`builder_contract_version` 现在属于 immutable plan 内容,因此 builder 输出语义改变时 Plan ID / Release ID 会改变。
|
||
|
||
v1.4.4:
|
||
|
||
`cm95pbf-builder/0.4.4-encoder-reconcile`
|
||
|
||
这防止同一个 release 目录混用不同 encoder reconciliation 逻辑。
|
||
|
||
## Release Gate
|
||
|
||
允许:
|
||
|
||
- quantization omissions
|
||
- safety point fallbacks
|
||
- encoder probe candidates
|
||
|
||
禁止:
|
||
|
||
- final encoder_dropped_features
|
||
- hard_gate_unmapped
|
||
- planned/report/decode count mismatch
|
||
- unexpected encoder output IDs
|
||
|
||
## 恢复策略
|
||
|
||
从 v1.4.3 release 迁移:
|
||
|
||
`cm95-d1-bfa67dd5625f-289c62fbf758`
|
||
|
||
预期复用 20,070 PASS,只重建 45 FAILED。
|