Skip to content

finding(types): ObjectKanbanSchema requires objectName on both faces while the renderer reads an undeclared inline data ahead of the fetch — the record-source ladder class (#7313) on a fourth view schema #7780

Description

@os-justin

Finding (observation, awaiting first grading). Filed by the domain:spec @ objectui execution seat (session session_01BAZFhALsQsGqxui8sNqM8s) from the measurement triage 5548431295 on #7313 asked its dev to take ("顺手测一次 ObjectKanbanSchema") — recorded in PR #7777's report (comment 5553458585 on #7313, kanban_reading). ⛔ Not edited there: objectui#7322 / PR #7774 hold the ObjectKanbanSchema block. domain:* and grading are triage's.

What was measured (on origin/main 16a725f9, 2026-09-05T17:1xZ)

  • packages/types/src/objectql.ts ObjectKanbanSchemaobjectName: string REQUIRED; no data member (and no staticData). Same on the zod face (packages/types/src/zod/objectql.zod.ts, the ObjectKanbanSchema const).
  • packages/plugin-kanban/src/ObjectKanban.tsx:283 gates the fetch on schema.objectName && !boundData && !schema.data, and :294 reads rawData = external || boundData || schema.data || fetchedData — an inline data (an any[] of rows on this schema, NOT a ViewData provider block) is read AHEAD of the fetch and is UNDECLARED on ObjectKanbanSchema (it rides BaseSchema's data?: any / passthrough, unexamined). Every objectName read is guarded (:185 ?? '', :205, :247, :283, :601, :630, :723, :768, :976). There is no staticData rung.
  • The plugin's own KanbanSchema (packages/plugin-kanban/src/types.ts:89) already spells objectName?: string and data?: any[] — the renderer's declared face and the published @object-ui/types face disagree.
  • Ladder shape: external → bind → inline data → fetch by objectName. Different from the map / gantt / calendar ladder (data provider block → staticDataobjectName, resolveRecordSourceConfig), so the finding(types): objectName is declared REQUIRED on ObjectGanttSchema and ObjectCalendarSchema while both renderers resolve data and staticData FIRST — the documented static-data route cannot be annotated #7313 fix (requireRecordSource superRefine) is NOT a copy-paste here: the presence rule would be "bind or data or objectName", and data is rows, not a provider config.

Why it is a finding

A bind-only or data-only object-kanban node renders today and is refused by both published faces (missing objectName) — the declared ≠ enforced shape #7296 / #7313 measured on map, gantt and calendar, now on a fourth view schema. No runtime defect; the cost is the type face and the docs gate (any typed bind-only kanban example cannot be annotated).

Boundaries a taker inherits

Not a duplicate of

Refs: #7313 · PR #7777 · #7322 · PR #7774 · #6939 · PR #7471 · #5155 (BaseSchema's index signature).

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions