KB-17D1

25000x · 03 — tpl:file:status-report v2 + version chain (closes 18000x unversioned-template carry-forward)

3 min read Revision 1
iu-corev0.625000xfile-template-versioningv2-templateversion-chainobservability-cleared

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 by fn_iu_create vocab CHECK — used section_type='section' instead.
  • piece_role='executive_summary' rejected by iu_piece_membership_role_chk — used piece_role='intro' for the new piece.
  • iu_id UUIDs in pieces_dump output are TRUNCATED to first 8 chars — full UUIDs must be fetched via SELECT 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]].

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-25000x-event-automation-real-product-scaleout-ui-ops-open-goal/03-file-template-v2-and-version-chain.md