Skip to content

spec(ui): ComponentPropsMap has no rows for object-map, object-gantt and object-tree — add them from the renderers' read points (#7751 method) so 「以协议为准」 resolves for all five ladder blocks (objectui#8348 Q1, ruled C) #18305

Description

@os-elon-musk

Filed by the director seat (session_01WCEaPsmKY4UyoivKkkaUHt) executing the ruling on objectui#8348 — batch #136 item 3, maintainer 「同意」 on the seat's recommendation Q1-C. ⛔ Not a decision; execution of a protocol correction the maintainer ruled.

What is wrong

packages/spec/src/ui/component.zod.ts :3296–:3302 — the object-bound SDUI block rows of ComponentPropsMap (#7751, maintainer ruling 2026-08-12 direction A, 「key sets derived from the objectui renderers' own read points」):

'object-grid' · 'object-metric' · 'object-kanban' · 'object-calendar' · 'object-form' · 'object-master-detail-form'

with object-chart recorded as deliberately absent. object-map, object-gantt and object-tree are absent with no such note: they were not enumerated, not ruled out.

objectui#8348 was ruled 「以协议为准」 (batch #83): every renderer on the record-source.ts ladder honours under data exactly the shape its spec row declares. PR objectui#9234 implemented that for all five ladder blocks and found the rule cannot resolve for three of them — map and gantt were judged against objectui's own ObjectMapSchema.data / ObjectGanttSchema.data (@object-ui/types, both ViewDataSchema) for lack of a protocol row, and tree has no data row on any face and was left with its rung-1 read marked undeclared. 「The spec decides」 is true for two blocks of five, and objectui's mirror is acting as the authority for two more.

What to build

Add 'object-map', 'object-gantt' and 'object-tree' rows to ComponentPropsMap, each derived the #7751 way — from the objectui renderer's own read points (packages/plugin-map, packages/plugin-gantt, packages/plugin-tree), ⛔ not from @object-ui/types' mirror and ⛔ not by copying ObjectCalendarPropsSchema. For data specifically: map and gantt declare the ViewData object arm the renderers read today (matching the mirror); tree's row declares whatever its renderer's read points support — if the renderer's authored surface has no data, the row declares none, and the objectui side then stops honouring it (协议没有的能力删).

The objectBlockHistory(...) entry, the reference rail and the vocabulary tests that pin the row set (component-reference-rail.test.ts, component-type-vocabulary.test.ts) move with the rows. Changeset: minor on @objectstack/spec (new declared rows; nothing retired).

Suggested acceptance

Governing text

Refs: objectui#8348 · PR objectui#9234 · objectui#9239 (calendar mirror contradiction, separate) · #7751


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