Filed by the domain:ui execution seat (session session_01NRRumy89BYdW9ogbcdHTho) from the contract review of PR #7355 (#6576 / #6914), where the dev deliberately did NOT extend the unions and flagged it for the reviewer. Recorded as a finding rather than folded into that PR: adding two arms to AnyComponentSchema widens what validateSchema / objectui validate accept — a published accept-set change (Clause-②) the #6576 ruling did not name. Dedupe: semantic search returns #6318 (53 in-repo schema files fail safeValidateSchema — the symptom family, not this cause), #7311 (a prop-type union on the calendar), #6939, #7004; none names the two new types or the union membership. Control query hit.
The fact (on PR #7355's head e5b24a3bb; unchanged by design from origin/main)
packages/types/src/objectql.ts now exports ObjectGallerySchema (type: 'object-gallery') and ObjectDataTableSchema (type: 'object-data-table'), with zod mirrors in objectql.zod.ts. Neither is a member of the ObjectQLComponentSchema unions (TS or zod) nor of AnyComponentSchema. Consequence, unchanged from before the PR: a JSON document whose root or child node is type: 'object-gallery' or type: 'object-data-table' has no arm in AnyComponentSchema, so validateSchema / safeValidateSchema / objectui validate report it as matching no arm — exactly as they did when no schema type existed. The renderer registry does register both keys (ObjectGallery.tsx:609; the dashboard registers object-data-table), so the nodes render but cannot be validated by name.
Why it is a finding, not a rider
What would settle it (for triage)
One ruling: do Object*Schema types join ObjectQLComponentSchema / AnyComponentSchema as a rule? If yes, the PR adds the two arms (and a pin that a minimal object-gallery / object-data-table document validates, and that a wrong-typed base member on such a node is refused), the fixture census under examples/ and packages/*/catalog is re-run through the widened union, and the remaining five keys get their own cards. If no, the two types stay prop-type anchors only and the docs say the nodes are not validator-addressable.
Refs: #6576 / PR #7355 · #6914 · #6318 · #7004 · #5155 (the inherited index-signature ceiling on all extenders).
Filed by the
domain:uiexecution seat (sessionsession_01NRRumy89BYdW9ogbcdHTho) from the contract review of PR #7355 (#6576 / #6914), where the dev deliberately did NOT extend the unions and flagged it for the reviewer. Recorded as a finding rather than folded into that PR: adding two arms toAnyComponentSchemawidens whatvalidateSchema/objectui validateaccept — a published accept-set change (Clause-②) the #6576 ruling did not name. Dedupe: semantic search returns #6318 (53 in-repo schema files failsafeValidateSchema— the symptom family, not this cause), #7311 (a prop-type union on the calendar), #6939, #7004; none names the two new types or the union membership. Control query hit.The fact (on PR #7355's head
e5b24a3bb; unchanged by design fromorigin/main)packages/types/src/objectql.tsnow exportsObjectGallerySchema(type: 'object-gallery') andObjectDataTableSchema(type: 'object-data-table'), with zod mirrors inobjectql.zod.ts. Neither is a member of theObjectQLComponentSchemaunions (TS or zod) nor ofAnyComponentSchema. Consequence, unchanged from before the PR: a JSON document whose root or child node istype: 'object-gallery'ortype: 'object-data-table'has no arm inAnyComponentSchema, sovalidateSchema/safeValidateSchema/objectui validatereport it as matching no arm — exactly as they did when no schema type existed. The renderer registry does register both keys (ObjectGallery.tsx:609; the dashboard registersobject-data-table), so the nodes render but cannot be validated by name.Why it is a finding, not a rider
validate/checkprint only TOP-LEVEL zod issues, so every union-shaped schema reports a bare "Invalid input" and the per-arm guidance is never seen #7004 (union arm selection invalidate's printer) and 53 in-repo schema files carry a registered ObjectUI type but failsafeValidateSchema#6318 (the in-repo fixture population that currently failssafeValidateSchema).object-*keys without a named schema type before PR fix(types): anchor ObjectGalleryProps / ObjectDataTableProps schema to exported schema types that extend BaseSchema (#6576, #6914) #7355 (object-master-detail-form,object-metric,object-pivot,object-table,object-timelineremain); whether union membership should follow "has a named schema type" is a rule to state once, not per type.What would settle it (for triage)
One ruling: do
Object*Schematypes joinObjectQLComponentSchema/AnyComponentSchemaas a rule? If yes, the PR adds the two arms (and a pin that a minimalobject-gallery/object-data-tabledocument validates, and that a wrong-typed base member on such a node is refused), the fixture census underexamples/andpackages/*/catalogis re-run through the widened union, and the remaining five keys get their own cards. If no, the two types stay prop-type anchors only and the docs say the nodes are not validator-addressable.Refs: #6576 / PR #7355 · #6914 · #6318 · #7004 · #5155 (the inherited index-signature ceiling on all extenders).