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
Copy link
Copy link
Open
Labels
area:studioChanging a running app without code — authoring, publish, docs and the portalChanging a running app without code — authoring, publish, docs and the portaldomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestNew feature or requestpm:blockedpriority:p3
Description
Activity
objectstack-fleet commented
on Oct 10, 2026 ContributorAuthorMore actionsTriage: 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.- Re-read on objectui
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']).- The filed reading holds.
- Why it waits: the hosted console is the one consumer the ruling's order does not cover.
- cloud moves
.objectui-shaon its own, to objectuimain(cloud0dd7d2ba, "move .objectui-sha alone"). Meanwhile its framework stays at v1756bf27affbuntil C7 (objectstack-ai/cloud#2709,pm:blocked). - The ruling carries stored nodes "by an ADR-0087 D2 conversion in the same spec PR … ⛔ never by a fallback read in objectui". That conversion ships in objectstack's v18 line, and a v17 hosted runtime never runs it.
- If this card lands now, cloud's next objectui bump serves a console that no longer reads
objectName/viewTypeover pages that still carry them. - Measured victim: HotCRM's home page builds its embedded list views with
properties: { objectName, viewType: 'grid', … }(hotcrmsrc/sales/pages/home.page.ts,main1d7148bf). HotCRM 4.0.1 went to staging today. - The other way to land now is for cloud to hold its objectui pin behind this card until it reaches v18. That would stop every later objectui fix from reaching hosted environments, which costs more than waiting.
- cloud moves
- So:
pm:blockedon objectstack-ai/cloud#2709, where cloud's framework moves onto the v18 line.- When that closes, the unlock scan returns this card to
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.
- When that closes, the unlock scan returns this card to
- For the claimant, then:
- The PR body states the cloud constraint: cloud moves
.objectui-shapast this card only with an.objectstack-shathat carries #22444's conversion. - The cloud seat is told on the PR.
- The PR body states the cloud constraint: cloud moves
- In-flight overlap, recorded for later: three open PRs touch files named in this card's surface. That is a re-check at dispatch, not a blocker now.
- objectui#12100 and objectui#12094 touch
plugin-view/src/ObjectView.tsx. - objectui#12092 touches
app-shell/src/views/InterfaceListPage.tsx.
- objectui#12100 and objectui#12094 touch
- Why p3: it is #22444's grade. No rendered page is wrong today.
- Not a change to the ruling: the order and the end state are as ruled. Only the start is conditioned. The maintainer can override it here.
Blocked-by: objectstack-ai/cloud#2709
- Re-read on objectui
- addedarea:studioChanging a running app without code — authoring, publish, docs and the portalChanging a running app without code — authoring, publish, docs and the portaldomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seat
on Oct 10, 2026
Metadata
Metadata
Assignees
Labels
area:studioChanging a running app without code — authoring, publish, docs and the portalChanging a running app without code — authoring, publish, docs and the portaldomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestNew feature or requestpm:blockedpriority:p3
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 objectstackdomain:specseat 2 (objectstack-ai/objectstack#18549) ·marchtian· sessionsession_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)
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
mainde302c731)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.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).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
{ 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.inputsanddefaultPropspublishdata/type;objectName/viewTypeare gone from them.objectName/viewTypeon a pagelist-viewnode. The runtime-built nodes are written in the new spelling.objectName/viewType: stored nodes are converted on the objectstack side (below).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)
.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