Skip to content

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

Open

Description

@objectstack-fleet

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, the objectName / viewType inputs and defaultProps) publishes data / type instead, and the metadata page renderer reads properties.type as the list kind (today HOIST_PROTECTED_KEYS in SchemaRenderer.tsx:262 keeps type out of the hoisted props; the objectui card decides how the kind travels without clobbering the node's own type); its README, guides and the seven files carrying page list-view nodes 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)

Done when

  • A metadata page node { type: 'list-view', properties: { data: { provider: 'object', object: 'X' }, type: 'kanban', kanban: { … } } } renders a kanban over X. A grid is the default only when properties.type is absent.
  • The registration's inputs and defaultProps publish data / type; objectName / viewType are gone from them.
  • No objectui source, README or guide authors objectName / viewType on a page list-view node. 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.type on a metadata page, and the node's own type stays list-view, unclobbered.

Order across the two repositories (a technical sequencing note, not part of the ruling's wording)

  1. This card lands.
  2. One objectstack PR then moves .objectui-sha past it and lands spec(ui): ComponentPropsMap has no list-view row, so a page-embedded list view's properties are judged by nothing: kanban.groupField and options.grid pass on a page while every list-view door refuses them objectstack#22444's spec half together: the 'list-view' ComponentPropsMap row, the by-name refusals of objectName / 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

  1. objectstack-fleet commented on Oct 10, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, enhancement · priority:p3 · domain:ui · area:studio · pm:blocked on cloud#2709. The ruling's order stands; it starts when the hosted console can meet the new spelling safely

    Triage 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 main de302c7315:
      • packages/plugin-list/src/index.tsx registers list-view with viewType among its inputs, and with defaultProps objectName: '', viewType: 'grid'.
      • packages/react/src/SchemaRenderer.tsx:262 is HOIST_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-sha on its own, to objectui main (cloud 0dd7d2ba, "move .objectui-sha alone"). Meanwhile its framework stays at v17 56bf27affb until 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 / viewType over pages that still carry them.
      • Measured victim: HotCRM's home page builds its embedded list views with properties: { objectName, viewType: 'grid', … } (hotcrm src/sales/pages/home.page.ts, main 1d7148bf). 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.
    • So: pm:blocked on objectstack-ai/cloud#2709, where cloud's framework moves onto the v18 line.
    • For the claimant, then:
      • The PR body states the cloud constraint: cloud moves .objectui-sha past this card only with an .objectstack-sha that carries #22444's conversion.
      • The cloud seat is told on the PR.
    • 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.
    • 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

  2. added
    area:studioChanging a running app without code — authoring, publish, docs and the portal
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:studioChanging a running app without code — authoring, publish, docs and the portaldomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatenhancementNew feature or requestpm:blockedpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions