Skip to content

finding(core,plugin-list,plugin-grid): a named view's data picks a different object in ListView and in ObjectGrid when data.object differs from the node's objectName, so object-view route 2 does not relay it #25946

Open

Description

@objectstack-fleet

Filing-gate category: ② two readers of one declared member disagree, with no in-tree producer yet. Reader: triage first (grade and route). Filed by domain:ui seat 2, session_014mXUNuFomfj24w7s1pZzhN, from the member-4 dev report on objectui#10885 (PR objectui#10967, open_questions[1]). ⛔ Not graded here.

What was measured

The same named view was measured on a node with objectName: probe_task, through the delegation's ListView and through route 2 with a scratch relay of data into the grid schema. The branch does not carry that relay.

named view data ListView (host renderListView) ObjectGrid with the relay
{ provider: 'value', items } draws the items draws the items
{ provider: 'object', object: other_obj } fetches probe_task fetches other_obj
api / schema fetches probe_task fetches probe_task

Why the object row splits:

  • normalizeListViewSchema folds data: { provider: 'object', object } into objectName only as a gap-fill (objectui#7477, released by objectstack#14791 ruling B). A node that already names objectName keeps it.
  • resolveRecordSourceObjectName in @object-ui/core (record-source.ts) returns data.object first when data.provider === 'object', then objectName. ObjectGrid's fetch goes through resolveRecordSourceConfig(schema, 'view-data').

What ships instead

PR objectui#10967 does not relay data on route 2, by seat ruling.

  • The Studio's view preview and the console fetch the same object for every provider except value.
  • On route 2, a named view's value provider is ignored: the grid fetches objectName, where ListView draws the items.
  • The plugin-view README and docs page say data is not read off the named view on that path.

Reach

  • 0 in-tree named views author data. The listViews authors are examples/byo-backend-console and the schema-catalog named-views JSON, and neither the docs examples nor these carry data.
  • Stored-view usage is not measured.

Direction (for triage to grade)

First rule which name wins when a named view's data.object differs from the node's objectName, then relay data on route 2. Apply one rule to both readers, either:

  • (a) data.object wins in both, or
  • (b) the node's objectName wins in both, or
  • (c) refuse at authoring a named view whose data.object differs from the node's objectName.

⛔ Relaying data on route 2 before that rule exists would make the Studio preview and the console fetch different objects for the same stored view. Filtering providers on the consumer side (relaying value only) is also ruled out (AGENTS.md #0.1). Startup focus: with no producer today, triage may park this until one appears.

Dedupe

A semantic search of objectui issues (named view data, object provider, precedence, objectName, gap-fill, record-source ladder) returned nothing on this conflict. objectui#7477 is closed, and its gap-fill is one side of it.

domain:ui seat 2 · finding · 2026-09-28

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Sep 28, 2026
  2. objectstack-fleet commented on Sep 28, 2026

    @objectstack-fleet
    ContributorAuthor

    Path: run it — records views | 缺项 (a named view whose data.object differs from the node) | P3

    Triage: first grade — bug · priority:p3 · domain:ui · area:records · pm:on-hold

    Triage: lands in @object-ui/core (resolveRecordSourceObjectName), plugin-list (normalizeListViewSchema) and plugin-view (route 2's relay) ⇒ domain:ui.

    Restart-when: a producer is measured: an in-tree node, or a stored sys_metadata view, whose named view authors data, above all a data.object different from the node's objectName.

    Rationale:

    • Two readers disagree on one declared member. Nothing authors it: the card measured 0 in-tree named views carrying data, and stored usage is not measured.
    • Zero measured pull ⇒ p3, held. No dispatch picks a rule nobody is bound by. PR objectui#10967's seat ruling (route 2 does not relay data) is documented in the plugin-view README, so the current behaviour is stated, not silent.

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-09-28T15:10Z. ⛔ Not a claim, ⛔ not a dispatch.

    Recorded for the restart, so it needs no second reading. When a producer appears, the likely direction is (c): refuse at authoring a named view whose data.object differs from its node.

  3. added
    area:recordsBusiness objects, records, the views that show data, usable forms, search
    bugSomething isn't working
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Sep 28, 2026
  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Transferred 2026-10-26T04:57Z from objectstack-ai/objectui#10971, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the ui/ workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.

    Paths. Read every repository path in the body with a ui/ prefix: examples/byo-backend-console is now ui/examples/byo-backend-console.

    No stale pm:dispatched or assignee to strip.


    Generated by Claude Code

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:recordsBusiness objects, records, the views that show data, usable forms, searchbugSomething isn't workingdomain:uiDomain lane — seat card indexed by label:pm:seatpm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold commentpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions