Repository navigation
plugin-list: a page list-view node is written data / type, and the metadata page reads properties.type as the list kind (objectstack-ai/objectstack#22444, ruling C) #12099
Description
Filing gate: ② a card a maintainer ruling names. objectstack-ai/objectstack#22444, ruling 6100463199 (batch #313 item 1, letter C, maintainer 「同意」 2026-10-10T17:51Z): "objectui moves first". Filed by objectstack domain:spec seat 2 (objectstack-ai/objectstack#18549) · marchtian · session session_016njDy8ozy9B9Ns5Y8kAWEK, as the ruling's execution section asks. ⛔ Not a claim. objectui triage sets the lane, grade and order.
The ruling, verbatim (the part this repository carries)
C — the page carrier converges on the spec spelling; one list view has one set of property names wherever it is embedded. objectui moves first:
plugin-list's page registration (packages/plugin-list/src/index.tsx, theobjectName/viewTypeinputs anddefaultProps) publishesdata/typeinstead, and the metadata page renderer readsproperties.typeas the list kind (todayHOIST_PROTECTED_KEYSinSchemaRenderer.tsx:262keepstypeout of the hoisted props; the objectui card decides how the kind travels without clobbering the node's owntype); its README, guides and the seven files carrying pagelist-viewnodes follow.
and, from the same record: "Stored page nodes authored with the old spelling are carried by an ADR-0087 D2 conversion in the same spec PR … ⛔ never by a fallback read in objectui."
What is true today (read on objectui main de302c731)
packages/plugin-list/src/index.tsx:87registerslist-view. ItsinputspublishviewType(enum) andoptions, and itsdefaultPropsareobjectName: '',viewType: 'grid',options: {}.packages/react/src/SchemaRenderer.tsx:262:HOIST_PROTECTED_KEYS = new Set(['type', 'id']). A metadata page node'sproperties.typeis never hoisted, so the spec's list kind key has no channel on that carrier today.- The objectstack spec's
ListViewSchemaspells the bindingdata: { provider: 'object', object }and the kindtype. objectstack's react layer retiredobjectName/viewTypeonListViewwith no window ([finding] The #11284 convergence shipped only its producer half: the react-blocks contract deprecatesobjectName/viewTypeon ListView in favour ofdata={{ provider: 'object', object }}/type, and the lint blesses that spelling — but objectui's ListView reads neither, so the canonical spelling validates green and renders an empty list objectstack#14791, maintainer ruling 2026-09-07;REACT_RETIRED_OVERLAY_PROPS.ListView). - The ruling counts about 7 files and 45 mentions of the old spelling on page
list-viewnodes (README, guides,InterfaceListPage.tsx, plugin-viewObjectView.tsxamong them). That is the ruling's own grep reading, not re-measured by this filing seat.
Done when
- A metadata page node
{ type: 'list-view', properties: { data: { provider: 'object', object: 'X' }, type: 'kanban', kanban: { … } } }renders a kanban overX. A grid is the default only whenproperties.typeis absent. - The registration's
inputsanddefaultPropspublishdata/type;objectName/viewTypeare gone from them. - No objectui source, README or guide authors
objectName/viewTypeon a pagelist-viewnode. The runtime-built nodes are written in the new spelling. - ⛔ No fallback read of
objectName/viewType: stored nodes are converted on the objectstack side (below). - Pins: kanban through
properties.typeon a metadata page, and the node's owntypestayslist-view, unclobbered.
Order across the two repositories (a technical sequencing note, not part of the ruling's wording)
- This card lands.
- One objectstack PR then moves
.objectui-shapast it and lands spec(ui):ComponentPropsMaphas nolist-viewrow, so a page-embedded list view'spropertiesare judged by nothing:kanban.groupFieldandoptions.gridpass on a page while every list-view door refuses them objectstack#22444's spec half together: the'list-view'ComponentPropsMaprow, the by-name refusals ofobjectName/viewType, and the ADR-0087 D2 conversion of stored page nodes. Landing the pin move and the conversion in one PR means no stored node meets a console that reads only the new spelling before its conversion exists.
objectstack-ai/objectstack#22444 waits on this card (Blocked-by: there).
Dedupe: REST list of the 100 most recently created objectui issues, open and closed, titles matched for list-view|viewType|objectName|HOIST → 4 hits (#12071, #12065, #12063, #12052). All are rounds of objectui#6152's reader retirement, not this subject. Dedupe words: page list-view objectName viewType data type · properties.type list kind metadata page · plugin-list registration inputs defaultProps.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 10, 2026
Triage: first grade,
enhancement·priority:p3·domain:ui·area:studio·pm:blockedon cloud#2709. The ruling's order stands; it starts when the hosted console can meet the new spelling safelyTriage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-10T18:53Z. ⛔ Not a claim, ⛔ not a dispatch.mainde302c7315:packages/plugin-list/src/index.tsxregisterslist-viewwithviewTypeamong itsinputs, and withdefaultPropsobjectName: '',viewType: 'grid'.packages/react/src/SchemaRenderer.tsx:262isHOIST_PROTECTED_KEYS = new Set(['type', 'id'])..objectui-shaon its own, to objectuimain(cloud0dd7d2ba, "move .objectui-sha alone"). Meanwhile its framework stays at v1756bf27affbuntil C7 (objectstack-ai/cloud#2709,pm:blocked).objectName/viewTypeover pages that still carry them.properties: { objectName, viewType: 'grid', … }(hotcrmsrc/sales/pages/home.page.ts,main1d7148bf). HotCRM 4.0.1 went to staging today.pm:blockedon objectstack-ai/cloud#2709, where cloud's framework moves onto the v18 line.pm:queue, and the ruling's order runs as written: this card, then spec(ui):ComponentPropsMaphas nolist-viewrow, so a page-embedded list view'spropertiesare judged by nothing:kanban.groupFieldandoptions.gridpass on a page while every list-view door refuses them objectstack#22444's PR with the pin move and the conversion..objectui-shapast this card only with an.objectstack-shathat carries #22444's conversion.plugin-view/src/ObjectView.tsx.app-shell/src/views/InterfaceListPage.tsx.Blocked-by: objectstack-ai/cloud#2709