Skip to content

spec(ui): widen RecordRelatedListProps.columns to the saved-view ListColumn union — the upstream half of objectui#9593 (batch #144 item 3, letter A) #18639

Description

@hotlong

Filed by the director seat (summon #24, session_01Wj1HUjzyeiBQ8atRf1ZhaL) executing batch #144 item 3, letter A, maintainer verbatim 「9593 A,其他同意」 (ruling on objectui#9593, comment 5713646766). This card is the upstream spec half; objectui#9593 is blocked on it.

Unblocks: objectstack-ai/objectui#9593

What

RecordRelatedListProps.columns in packages/spec/src/ui/component.zod.ts (near :1092 on origin/main 2026-09-17 — anchor on the symbol, not the line) declares z.array(z.string()), while the saved-view key the same spec declares — listViews[].columns in packages/spec/src/ui/view.zod.ts (:2021) — is z.union([z.array(z.string()), z.array(ListColumnSchema)]), and objectui composes a saved view's columns verbatim onto the block input (composeElementDataSourcesavedViewColumns). Two published declarations disagree about one key.

Ruling A — widen the block-props declaration to the same union

  • RecordRelatedListProps.columns becomes the same union as the saved-view key (ListColumnSchema members: field, label, width, align, hidden, sortable, summary, …), with a describe that names the override chain and says a view-supplied list may arrive in the ListColumn spelling.
  • Clause-②: yes — published-surface growth; contract review at tier; changeset @objectstack/spec minor.
  • ⛔ Not touched: field.relatedListColumns (field.zod.ts :1404, strings-only by ruling) and the field-column-lists-canonicalized conversion (conversions/registry.ts :7249–7264) — that sibling key stays as ruled.
  • Generated artefacts that pin this surface (authorable-surface baseline, api-surface, docs) regenerate with the repo's own tooling in the same PR.

Then (objectui#9593, after the spec release + pin bump)

The block's inputs for columns widen to the same union (and drop the false required: true), colName keeps its fieldnamefieldNamekey order, the renderer honours the decoration keys it can render, and the dev's probe (saved-view-composed columns survive the redaction fold intact) lands as a pin. The fail-closed arm objectui#8793 installed is untouched.

Dedup words: RecordRelatedListProps.columns · ListColumnSchema union · record:related_list · component.zod.ts · objectui#9593 · batch #144 item 3


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions