You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
canonical_formats: structural VAST/DAAST entries never match a LegacyFormat model, because version extraction reads dicts only #1750
project_v1_format_to_declaration never matches the registry's VAST or DAAST structural entries when it is handed a LegacyFormat model. _v1_version_constraints (adcp/canonical_formats/v1_to_v2.py) reads versions only from a dict:
_v1_asset_types right above it handles both dicts and models, so the asset types reach structural_match but the versions do not. Three of the seven structural entries in the bundled registry require a version, so all three fail for a model input:
static/schemas/source/registries/v1-canonical-mapping.json (3.2.7), match modes: "structural — match against the format's slot shape, asset types, and version constraints. The PRIMARY fallback for v1 wire traffic".
The same declaration projects to video_vast as a dict and to nothing as a model. Any caller that holds a typed LegacyFormat (for example one read back from list_creative_formats) gets a fail-closed result for a VAST or DAAST format with no canonical that no glob names.
Expected
Read vast_version / vast_versions / daast_version / daast_versions from a model the same way as from a dict: from each individual asset's requirements (VastAssetRequirements, DaastAssetRequirements; daast_versions is a DaastVersions root model). The pinned LegacyFormat has no top-level version member, so the top-level lookup applies only to dict input.
changed the title [-]canonical_formats: structural VAST/DAAST entries never match a Format model, because version extraction reads dicts only[/-][+]canonical_formats: structural VAST/DAAST entries never match a LegacyFormat model, because version extraction reads dicts only[/+]on Oct 30, 2026
Activity
[-]canonical_formats: structural VAST/DAAST entries never match a Format model, because version extraction reads dicts only[/-][+]canonical_formats: structural VAST/DAAST entries never match a LegacyFormat model, because version extraction reads dicts only[/+]fix(formats): match a peer slot's VAST/DAAST version in the structura…