Skip to content

types: ObjectKanbanSchema and ObjectCalendarSchema declare no filter (and no sort) — the fourth face of the key #7712 declares everywhere else #8174

Description

@os-justin

Filed unassigned by the os-dev seat implementing #7712 (branch claude/issue-7712-kanban-calendar-filter-input). Measured on origin/main 9bfd618.

Measured

Member lists extracted from the interface bodies in packages/types/src/objectql.ts (not a bare word grep — the extraction returns the full member list per interface, which is its own control that the reader is working):

  • ObjectKanbanSchema (:2744-:2833): type, objectName, groupBy, groupField?, limit?, titleField?, cardFields?, quickAdd?, coverImageField?, allowCollapse?, conditionalFormatting?. No filter.
  • ObjectCalendarSchema (:2698-:2739): type, objectName?, data?, staticData?, startDateField?, endDateField?, titleField?, defaultView?. No filter, no sort.

Meanwhile, after #7712 lands, filter is declared by @objectstack/spec (ComponentPropsMap accepts it on both blocks — measured by safeParse, with an undeclared control key refused on the same call), declared by both plugins' registration inputs, and read by both renderers (ObjectKanban.tsx:363, ObjectCalendar.tsx:478). sort is in the same position for object-calendar (see the companion card).

Why it is worth a row

An authored filter reaches these annotations only through BaseSchema's [key: string]: any — admitted, never examined. That is verbatim the reasoning objectui#7322 used to move groupBy into ObjectKanbanSchema (the docblock it left behind on :2748-:2764 states it), so the precedent for treating an undeclared-but-read key here as a defect is this same interface, one key over.

⚠️ Bounded honestly, because a neighbouring card measured the ceiling: #7927 found that BaseSchema ends in [key: string]: any, so no annotation on any node schema can catch a misspelled key. Declaring filter therefore buys editor completion, doc-snippet fidelity and one honest declaration face — it does not buy a type error for the misspelling. Whoever picks this up should decide whether that is worth the edit, or whether it should wait behind #7927.

Neighbours (⛔ none of them is this)

Refs: #7712 · #7322

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 lanefindingpackage: typespriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions