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
Remove legacy bare-key fallback for v1.0 component envelope fields #4082
Remove the legacy bare-key fallback for v1.0 component envelope fields once all known v1.0 producers emit only the @-prefixed names.
Background
#4037 renamed the v1.0 component envelope fields to @catalogId, @metadata, @accessibility, and @checks, so they no longer collide with custom catalog properties of the same bare name (#4012, #1376). #4044 switches the specification, catalogs, agent SDKs, and conformance suites to emit only the @ names.
During the transition, the core SDKs still accept the legacy bare catalogId, metadata, accessibility, and checks on v1.0 components when the component schema doesn't declare a custom property with that name. This keeps v1.0 payloads written before the rename working while producers move to the new names.
What to remove
On v1.0 surfaces only (v0.8, v0.9, and v0.9.1 are unaffected):
TypeScript: the bare-key branch in splitComponentEnvelope and componentMixinLayout (typescript/core/web_core/src/catalog/component_envelope.ts), and the bare accessibility and checks mirrors in GenericBinder and the host accessibility helpers.
Python: the legacy fallback in get_custom_envelope_properties (python/a2ui_core/src/a2ui/core/catalog/catalog.py), the MessageProcessor normalization, and the bare checks handling in the node resolver and generic binder.
Dart: the legacy branch in _normalizeV1Component (dart/a2ui_core/lib/src/processing/processor.dart) and the matching catalog helpers.
Swift: the bare-key branch in ComponentEnvelope (swift/core/Sources/A2UICore/Validation/ComponentEnvelope.swift), the bare checks alias in NodeResolver.cachedSchema, and the bare checks path in PayloadValidator.schemaInstance.
Agent SDKs: the bare-key reading in the Express, Atom, and Elemental decompilers (Python, TypeScript, Dart).
Conformance: turn the "legacy bare key on v1.0" cases into rejection cases, and drop them from the v0.9-lowered runners' v1.0-only lists.
After removal, a bare catalogId, metadata, accessibility, or checks on a v1.0 component is an ordinary component property, validated against the component schema like any other.
When
After the known v1.0 producers have moved to the @ names. Each SDK's envelope helper has a TODO pointing at this issue.
Activity
fix(core): address review feedback on v1.0 envelope dual-read