Files
CM95/docs/CM95_PBF生产化阶段_v1_4.md

2.7 KiB
Raw Permalink Blame History

注意:本文件记录 v1.4 初版。生产范围已在 v1.4.1 改为 z0–z12;以 CM95_PBF生产化阶段_v1_4_1.md 为准。

CM95 PBF 生产化阶段 v1.4(历史:z10–z12 初版)

1. 基线

本版本以已经通过 21 张 AOI 双 Gate 的 v1.3 为冻结内核。以下行为不得在本阶段随意改变:

  • cm95_to_navsea_v1.yaml 语义映射;
  • z10/z11/z12 extent;
  • scale ladder / coverage mask;
  • relation20 助航合成;
  • OBJNAM/NOBJNM 直接名称规则;
  • stable FID manifest;
  • hard-gate quantization fallback;
  • encoder 写后 Feature ID 对账。

v1.4 只增加生产编排层。

2. 新增生产闭环

plan-production

从 MySQL 只读读取 chart_cell 与 chart_coverage,按当前 tile policy 中每个 zoom 的 scale ladder 枚举真实需要的 tile。

优先使用真实 coverage polygon;若某 Cell 没有 coverage,则使用 Cell bbox 作为保守 fallback,避免漏图。

生产计划冻结:

  • Dataset fingerprint;
  • mapping SHA256;
  • tile policy SHA256;
  • FID manifest fingerprint/count;
  • profile;
  • zoom;
  • 完整 XYZ job 列表。

任何输入在计划创建后变化,build-production 必须拒绝继续。

build-production

  • SQLite 账本;
  • PASS 自动跳过;
  • 上次异常中断的 RUNNING 自动恢复 PENDING;
  • FAILED 最多重试指定次数;
  • 有限线程并发;
  • 每个 tile 继续使用 v1.3 builder 自带 hard-gate 与 encoder 对账;
  • 空 tile 允许 PASS,但不写 .pbf。

finalize-production

发布前重新读取所有 report 与真实 PBF,要求:

  • 所有计划 job = PASS;
  • hard-gate unmapped = 0;
  • encoder dropped = 0;
  • nav name conflict = 0;
  • planned output = report output = decoded PBF feature count;
  • tile 内同 layer Feature ID 无重复。

同时执行全量 style filter 契约与动态 sprite closure,并生成每个 PBF 的 SHA256/bytes/feature/layer inventory。

3. 产物结构

build/
  production/
    cm95_production_plan_v1.json

  releases/
    <release_id>/
      production_run_v1.sqlite
      production_run_summary_v1.json
      release_manifest_v1.json

      pbf/
        delivery/
          {z}/{x}/{y}.pbf

      reports/
        delivery/
          {z}/{x}/{y}.json
          {z}/{x}/{y}.trace.jsonl

release_id 由 Dataset fingerprint + plan hash 确定,相同输入得到相同 release identity。

4. 当前阶段不做

  • 不选择 HTTP/Nginx/FastAPI serving;
  • 不改变 NavSea 客户端;
  • 不改 importer/schema;
  • 不增加新正式 source-layer;
  • 不改变 v1.3 safety semantics;
  • 不自动清理旧 release。

Serving 在完整 Dataset production release PASS 后再单独决定。