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
Done on stable main by Python #1757 and forwarded to next by Python #1759. Typed LegacyFormat VAST/DAAST asset requirements now use the same version extraction as dicts. Both SDK 9 and SDK 10 lines are covered.
Closed in a 3.3 triage pass. Reopen if anything here is still outstanding.
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…
bokelley commentedon Nov 8, 2026
Done on stable main by Python #1757 and forwarded to next by Python #1759. Typed LegacyFormat VAST/DAAST asset requirements now use the same version extraction as dicts. Both SDK 9 and SDK 10 lines are covered.
Closed in a 3.3 triage pass. Reopen if anything here is still outstanding.
🤖 Generated with Claude Code