Skip to content

Adopt zagg#299 template-hash leaf naming (coordinated breaking change)Β #11

Description

@espg

πŸ€– from Claude

Tracking issue for the moczarr side of englacial/zagg#299 (template-hash leaf naming, multi-product hive stores β€” a breaking store change, pre-1.0 per the zagg#262 rationale). Opened per the phase-6 plan on #1 (item 5): the coordination zagg#299 asks for ("coordinate the rename with moczarr before its vectors harden") needs a home on this side.

Blocked on zagg landing englacial/zagg#299. Nothing here moves until the zagg-side decisions (per-product manifest shape, sidecar shard_key validation, hash truncation length) are final and the writer ships.

Blast radius in moczarr (mirrors zagg#299's list)

  • Leaf basename {full_id}.zarr β†’ {hash}.zarr (windowed: {full_id}_{window}.zarr β†’ {hash}_{window}.zarr). The morton id survives only as the digit-tree path; the basename becomes product identity.
  • convention.py surface: check_node_invariant (asserts full_id == head + digits via the basename β€” loses its self-validation; placement validation moves to the sidecar's recorded shard_key), split_leaf_name, and leaf_path all assume the current basename grammar.
  • Per-product manifests: morton_hive.json becomes per-product ({hash}.morton_hive.json or a products map β€” open question on zagg#299); moczarr's manifest/coverage readers follow whichever shape zagg lands.
  • SERC fixture + golden vectors regenerate: tests/data fixture stores and the read-side golden parity vectors are pinned to {full_id}.zarr basenames and must be regenerated from the flipped zagg writer in the same PR.
  • One coordinated breaking PR here, landed in lockstep with (immediately after) the zagg writer flip β€” not piecemeal.

What is already insulated

Phase 6 (the cross-resolution join, #1) is deliberately basename-agnostic: parent_cells/join_coarse operate on coordinate values, and phase-6 tests go through open_hive outputs only β€” never raw leaf paths or basenames β€” so the join layer needs no changes when the rename lands.

Refs #1 (phase-6 plan, item 5). Blocked by englacial/zagg#299.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions