25000x · 03 — tpl:file:status-report v2 + version chain (closes 18000x unversioned-template carry-forward)
25000x · 03 — File template v2 + version chain (closes 18000x carry-forward)
Goal
Close 18000x's last cross-template observability gap: tpl:file:status-report/v1 was the only template flagged template_without_version=true because it had a registry entry (mig 031) but no version chain (mig 032). 25000x creates tpl:file:status-report/v2 reusing 5 pieces + minting 1 new executive_summary piece, then registers both versions in the chain so v1 auto-supersedes and v2 becomes current.
v2 composition
| Position | Role | iu_id (8) | Source |
|---|---|---|---|
| 0 | title | 09c8ee5f | reused from v1 |
| 1 | intro | new piece 3b176d97 |
minted at compose time — "Executive summary" canonical_address iu_core/template/25000x/file-status-report-v2/executive-summary |
| 2 | intro | a824a6b7 | reused from v1 (per-section intro) |
| 3 | body | 55e901a3 | reused from v1 |
| 4 | appendix | 32c213e3 | reused from v1 |
| 5 | reference | 8d46db70 | reused from v1 |
- v2 collection_id:
8f9c8a29-3962-4b60-b557-4358dcfac7f6 - v2 manifest_digest:
378497f617b4… - pieces_minted=1, pieces_attached=6, active_piece_count=6
Result
| Family | Version | Status | is_root | is_current | digest_drift_from_previous | digest12 |
|---|---|---|---|---|---|---|
tpl:file:status-report |
v1 | superseded | t | f | f | 2d3d37b60fd3 |
tpl:file:status-report |
v2 | current | f | t | t | 378497f617b4 |
family_chain_length=2 after fn_iu_collection_register_template_version(v2_id, family, 'v2', 2, v1_id, actor).
Observability view v_iu_template_observability: template_without_version=false for both rows (was true on v1 before this phase).
Live discoveries during apply
section_type='summary'rejected byfn_iu_createvocab CHECK — usedsection_type='section'instead.piece_role='executive_summary'rejected byiu_piece_membership_role_chk— usedpiece_role='intro'for the new piece.iu_idUUIDs in pieces_dump output are TRUNCATED to first 8 chars — full UUIDs must be fetched viaSELECT id FROM information_unit WHERE canonical_address LIKE ...before authoring the apply SQL.
File produced
ops/25000x-event-automation-real-product-scaleout-ui-ops-finalization/01_file_template_v2_and_version_chain.sql — applied LIVE within one BEGIN/COMMIT with iu_core.composer_enabled gate-toggled inside TX per [[feedback-in-tx-gate-toggle-reversibility]].