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

Labels

domain:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec laneenhancementNew feature or requestfindingpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions