Skip to content

finding(examples): the two plugin-form catalog entries still steer around role / status, and the constraint that made them is being lifted #6537

Description

@os-support-ai

Filed unassigned while implementing #6317. Not claiming. Recorded as a consequence, not folded into that card — its declared file face is the fixture and its mirror.

Blocked-by: #6317

What was measured

The two plugin-form catalog entries author an explicit field list that omits role and status:

  • examples/schema-catalog/src/schemas/plugin-form/object-form-record.json"fields": ["name", "email", "department"]
  • examples/schema-catalog/src/schemas/plugin-form/object-form-tabbed-sections.json — sections over ["name", "email"] and ["department", "created_at"]

The five plugin-grid / plugin-view entries over the same object do not steer around them — every one of them puts role and status on screen.

The asymmetry is not a design choice about forms. It is the workaround #6317 describes: a select field with no options renders "No options available" in a form, because ObjectForm copies the field's options through verbatim (formField.options = field.options || [], packages/plugin-form/src/ObjectForm.tsx), while ObjectGrid synthesises options for an option-less select from the distinct values in the loaded rows, so a grid cell was never affected.

Measured through the catalog test's own render path, an object-form over users with no fields restriction:

before: "NameEmailRoleNo options availableDepartmentStatusNo options availableCancelUpdate"
after: "NameEmailRoleAdminAdminMemberViewerDepartmentStatusActiveActiveInvitedSuspendedCancelUpdate"

and the record's own values join the form's control values:

before: ["Alice Johnson", "alice@example.com", "Engineering"]
after: ["Alice Johnson", "alice@example.com", "admin", "Engineering", "active"]

Why it is worth recording

Once the fixture and its mirror both declare the options (the host has since 4b0b12630; the mirror catches up in #6317), the reason those two entries avoid role / status is gone. A plugin-form entry that renders a working picker is a strictly better demonstration of the component the page exists to show, and the current field lists read as an authoring choice while they are really a workaround for a fixture gap that no longer exists.

Nothing is broken today — both entries render correctly and every catalog case is green. This is a constraint that has been lifted, not a defect.

Possible fix

Add role and status back to the two entries' field lists (and to a tabbed section), then re-measure their tile text. Severity left to triage.


Generated by Claude Code

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