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
Filed unassigned by the os-dev seat implementing #7712 (branch
claude/issue-7712-kanban-calendar-filter-input). Measured onorigin/main9bfd618.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?. Nofilter.ObjectCalendarSchema(:2698-:2739):type,objectName?,data?,staticData?,startDateField?,endDateField?,titleField?,defaultView?. Nofilter, nosort.Meanwhile, after #7712 lands,
filteris declared by@objectstack/spec(ComponentPropsMapaccepts it on both blocks — measured bysafeParse, with an undeclared control key refused on the same call), declared by both plugins' registrationinputs, and read by both renderers (ObjectKanban.tsx:363,ObjectCalendar.tsx:478).sortis in the same position forobject-calendar(see the companion card).Why it is worth a row
An authored
filterreaches these annotations only throughBaseSchema's[key: string]: any— admitted, never examined. That is verbatim the reasoning objectui#7322 used to movegroupByintoObjectKanbanSchema(the docblock it left behind on:2748-:2764states it), so the precedent for treating an undeclared-but-read key here as a defect is this same interface, one key over.BaseSchemaends in[key: string]: any, so no annotation on any node schema can catch a misspelled key. Declaringfiltertherefore 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)
ObjectCalendarComponentProps.schemais typedObjectGridSchema | CalendarSchema, so noobject-calendarnode is assignable — the documented direct-React usage cannot compile #7311 —ObjectCalendarComponentProps.schemais typedObjectGridSchema | CalendarSchema, so noobject-calendarnode is assignable at all. That is the prop; this is the node schema.KanbanSchemacarries three zero-read members (allowCollapse,cardTemplates,columnWidths) and the board reads an undeclaredtitleField— enforce-or-remove on the shape objectui#7664 declared #7742 / finding(types):ObjectKanbanSchemarequiresobjectNameon both faces while the renderer reads an undeclared inlinedataahead of the fetch — the record-source ladder class (#7313) on a fourth view schema #7780 — member censuses over the same two interfaces, on different keys.BaseSchemacloses with[key: string]: any(packages/types/src/base.ts:467), so NO annotation on any node schema can catch a misspelled metadata key — measured green by a planted probe while the type, optionality and payload-member probes all went red #7927 — theBaseSchemaindex signature that caps what any of this can catch.Refs: #7712 · #7322