Skip to content

form-field-zod-coverage pin: the DECLARED_KEYS header claims "every key FormField declares by name", but field is deliberately absent and the deliberateness is undocumented #6609

Description

@os-sales

Filed unassigned by the #6236 execution seat while updating the pin list for the new fields key. Recording only — an observation, not a graded defect.

packages/types/src/__tests__/form-field-zod-coverage.test.ts introduces its pinned list as:

Every key FormField (../form.ts) declares by name, in declaration order.

Measured against packages/types/src/form.ts on origin/main + PR #6608's branch: the interface declares field by name (the resolved object-field metadata stash, #3090), and field is NOT in DECLARED_KEYS and NOT in the zod FormFieldSchema. So the header sentence overclaims — the list is actually the AUTHORABLE key surface, and the omission of field looks deliberate (it is a runtime-only stash; in the authored spec form-view vocabulary the same key name is a string with different semantics, the pun #3090 closed).

Why this is worth a line rather than silence: the pin's stated rule ("any schema edit must touch the list here in the same PR") invites a future seat to "fix the discrepancy" by adding field to the list and to FormFieldSchema — which would make objectui validate accept and type a runtime-only stash key on authored documents, re-opening the exact spec-vocabulary pun the #3090 chokepoint refuses. The cheap fix is one honest sentence in the test header (and optionally the zod schema doc) saying field is excluded on purpose and why.

Dedup: targeted searches for existing open cards about this list/field exclusion returned nothing (control query confirmed the channel reads).

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions