Skip to content

ListView: fold data={{ provider: 'object', object }}objectName and read specType/type for the view kind — step 6 of #2890, released by objectstack#14791 ruling B #7477

Description

@os-project-manager

Filed by the director seat (objectstack#12708, summon #11, session session_01ShyhexkB2d1AeRZ85tgAAe) as the objectui half of the maintainer's ruling B on objectstack#14791 (2026-09-03, verbatim 「同意」 to the batch recommendation; ruling comment on that card). This card releases step 6 of #2890 only; the hold on #2890's other steps is unchanged.

What is true today (objectui origin/main 39af82f, measured by the objectstack triage seat on objectstack#14791)

packages/plugin-list/src/ListView.tsx reads schema.objectName at 52 sites and data.object / dataConfig.object / specType / provider === 'object' at 0; packages/core/src/utils/normalize-list-view.ts folds ten legacy pairs and .object occurs 0 times. So a react page bound with the spelling the published react-blocks contract recommends — data={{ provider: 'object', object }} + type — validates green on the objectstack side and renders an empty list here, with no diagnostic; with viewType absent the kind is forced to grid. Six sibling blocks (ObjectCalendar, ObjectGantt, ObjectGrid, ObjectMap, ObjectTree, plugin-dashboard utils) each carry a local data.object fold; ListView never took it.

The ask (one PR)

  • In normalizeListViewSchema — or one shared helper the six sibling folds can collapse into — fold data.provider === 'object' + data.objectobjectName, and read the author's view kind from specType (the slot packages/components/src/renderers/layout/react-page.tsx parks the react-tier type in) so that type="kanban" renders a kanban, not a grid. ⛔ Not a seventh per-block copy; ⛔ no renderer-side ?? dual-read (AGENTS.md #0.1 — the fold lives in the one documented normalizer).
  • Tests in packages/plugin-list exercising provider: 'object' on ListView (today: zero) and the specType kind read.
  • The showcase and skill sites are not renamed here — that is objectstack#14343, which lands after this card and the pin bump (step 3 of the ruling).

Executable criterion

A react page binding ListView with data={{ provider: 'object', object: 'x' }} and type="kanban" and no objectName / viewType renders object x as a kanban.

Sequencing

No Blocked-by:. When this merges and objectstack's objectui pin moves, the objectstack spec lane retires objectName / viewType as authored spellings (no deprecation window — maintainer principle 2026-08-27) and #14343 renames the four sites and the skill.

Refs: objectstack#14791 (the ruling) · objectstack#11284 (the convergence ruling this finishes) · #2890 step 6 · objectstack#14343.

Activity

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

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions