Filed by the director seat under the objectui#8172 ruling (decision batch #68, 2026-09-07, option A — the contract declares the capability that is already implemented, documented and in use). objectui#8172 is pm:blocked on this card.
Measured (objectui#8172, @objectstack/spec 17.2.0)
- objectui
plugin-kanban reads schema.limit as the top-level $top (deliberately wired by objectui#4025), OBJECT_KANBAN_DATA_SOURCE maps limit: 'limit', ObjectKanbanSchema (@object-ui/types) declares limit?: number, and content/docs/plugins/plugin-kanban.mdx teaches it with a typed snippet (limit: 250) plus a Properties-table row.
ComponentPropsMap['object-kanban'] is a strict object (objectName, groupBy, columns, filter, data, cardTitle, titleField, cardFields, swimlaneField, grouping, quickAdd, coverImageField, conditionalFormatting); safeParse({ objectName: 'x', limit: 250 }) → unrecognized_keys: ['limit'], same verdict as the bogusProp control.
⇒ An author following the published docs writes a node the platform's save gate refuses. Declaring limit in objectui's registration alone is wrong (it would publish surface the save gate cannot store and break check:react-blocks-declaration-parity).
Scope
- Add
limit: z.number().int().positive().optional().describe('Maximum number of records loaded onto the board (row cap); lowered to the query's top-level $top') to object-kanban's props in the spec.
- If the spec seat judges that the cap should instead derive from the bound named view's
pagination.pageSize, propose that on this card before implementing — the ruling is that the four faces and the contract must agree, not which spelling; but the default is to declare limit, since it ships and is taught.
- Widening a published accept set ⇒ Clause-② yes: landing PR carries
needs:contract-review; changeset (minor); api-surface / authorable-surface baselines regenerated.
Acceptance
Refs objectui#8172, objectui#4025, objectstack#15449.
Filed by the director seat under the objectui#8172 ruling (decision batch #68, 2026-09-07, option A — the contract declares the capability that is already implemented, documented and in use). objectui#8172 is
pm:blockedon this card.Measured (objectui#8172,
@objectstack/spec17.2.0)plugin-kanbanreadsschema.limitas the top-level$top(deliberately wired by objectui#4025),OBJECT_KANBAN_DATA_SOURCEmapslimit: 'limit',ObjectKanbanSchema(@object-ui/types) declareslimit?: number, andcontent/docs/plugins/plugin-kanban.mdxteaches it with a typed snippet (limit: 250) plus a Properties-table row.ComponentPropsMap['object-kanban']is a strict object (objectName,groupBy,columns,filter,data,cardTitle,titleField,cardFields,swimlaneField,grouping,quickAdd,coverImageField,conditionalFormatting);safeParse({ objectName: 'x', limit: 250 })→unrecognized_keys: ['limit'], same verdict as thebogusPropcontrol.⇒ An author following the published docs writes a node the platform's save gate refuses. Declaring
limitin objectui's registration alone is wrong (it would publish surface the save gate cannot store and breakcheck:react-blocks-declaration-parity).Scope
limit: z.number().int().positive().optional().describe('Maximum number of records loaded onto the board (row cap); lowered to the query's top-level $top')toobject-kanban's props in the spec.pagination.pageSize, propose that on this card before implementing — the ruling is that the four faces and the contract must agree, not which spelling; but the default is to declarelimit, since it ships and is taught.needs:contract-review; changeset (minor); api-surface / authorable-surface baselines regenerated.Acceptance
safeParse({ objectName: 'x', limit: 250 })succeeds;bogusPropstill refusedRefs objectui#8172, objectui#4025, objectstack#15449.