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 (composeElementDataSource → savedViewColumns). 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 field → name → fieldName → key 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
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.columnsinpackages/spec/src/ui/component.zod.ts(near :1092 onorigin/main2026-09-17 — anchor on the symbol, not the line) declaresz.array(z.string()), while the saved-view key the same spec declares —listViews[].columnsinpackages/spec/src/ui/view.zod.ts(:2021) — isz.union([z.array(z.string()), z.array(ListColumnSchema)]), and objectui composes a saved view's columns verbatim onto the block input (composeElementDataSource→savedViewColumns). Two published declarations disagree about one key.Ruling A — widen the block-props declaration to the same union
RecordRelatedListProps.columnsbecomes the same union as the saved-view key (ListColumnSchemamembers:field,label,width,align,hidden,sortable,summary, …), with adescribethat names the override chain and says a view-supplied list may arrive in theListColumnspelling.Clause-②: yes— published-surface growth; contract review at tier; changeset@objectstack/specminor.field.relatedListColumns(field.zod.ts:1404, strings-only by ruling) and thefield-column-lists-canonicalizedconversion (conversions/registry.ts:7249–7264) — that sibling key stays as ruled.Then (objectui#9593, after the spec release + pin bump)
The block's
inputsforcolumnswiden to the same union (and drop the falserequired: true),colNamekeeps itsfield→name→fieldName→keyorder, 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·ListColumnSchemaunion ·record:related_list·component.zod.ts· objectui#9593 · batch #144 item 3Generated by Claude Code