Skip to content

plugin-kanban / plugin-calendar: 15 spec-declared ComponentPropsMap keys the two object-* registrations do not publish — the backlog objectui#8176 exposed by loading the blocks its gate could not see #8201

Description

@os-justin

Filed unassigned by the os-dev seat implementing objectui#8176 (branch claude/issue-8176-parity-gate-lazy-registrations). Measured, not derived: on origin/main 0c8dbc492, @objectstack/spec@17.1.x as installed, by running apps/console/src/__tests__/registry-inputs-spec-parity.test.ts's own undiscoverableSpecKeys over the two blocks after loading them eagerly.

Why this exists

objectui#8176 measured that the console's reverse-parity gate judged 27 of the 42 ComponentPropsMap blocks and silently judged neither object-kanban nor object-calendar: the console registers both with ComponentRegistry.registerLazy, getConfig is loaded-only by design, so declaredInputs answered null and the two blocks fell out of covered and out of registeredWithoutInputs. Loading them is what this backlog is: it is not new breakage, it is the first reading of a population that had never been read.

Measured — the reverse direction's verdict on the two blocks

object-kanban — spec declares 13 top-level keys, the registration publishes 3 (objectName, columns, dataSource). Eleven undiscoverable:

groupBy · filter · data · cardTitle · titleField · cardFields · swimlaneField · grouping · quickAdd · coverImageField · conditionalFormatting

object-calendar — spec declares 9, the registration publishes 3 (objectName, calendar, dataSource). Seven undiscoverable:

defaultView · filter · sort · data · staticData · locale · loading

Split of ownership — 18 keys, 3 owners

  • object-kanban.filter and object-calendar.filter are objectui#7712, already open on exactly those two keys.
  • object-calendar.sort is objectui#8171, already open.
  • The remaining 15 are this card: kanban's other ten, and calendar's defaultView · data · staticData · locale · loading.

What this card owes, per key

The bar the gate's own header sets: a spec key the renderer HONOURS and inputs omits is a plain defect and gets declared; a key publishing which would be wrong or premature gets a reasoned, issue-backed exemption naming which of those it is. Nobody has yet asked that question of these 15 — that is the work here, per key, against the renderer's real read sites in packages/plugin-kanban/src/index.tsx and packages/plugin-calendar/src/index.tsx.

Related readings that already exist on some of these key names, from other faces of the same contract (they do not settle the inputs question, they inform it): objectui#7742 (titleField read but undeclared in KanbanSchema), objectui#7322 (closed — groupBy on the types face), objectui#8172 (limit), objectui#8174, objectui#5784 (defaultView value drift), objectui#8026 (allDayField).

Current state in-tree — visible, not silent

All 18 keys carry an entry in UNPUBLISHED_EXEMPTIONS in apps/console/src/__tests__/registry-inputs-spec-parity.test.ts as of the objectui#8176 PR, each naming this card (or objectui#7712 / objectui#8171) and each saying "a declaration someone owes" rather than "a ruled carve-out". Those entries are policed by that file's existing dangling and stale checks: declaring an input here makes its entry go stale and the gate goes RED until the entry is deleted in the same change. So the backlog cannot rot quietly, and the gate is judging these two blocks from now on rather than skipping them.

Sequence: this card (decide and land the 15) → delete the matching exemption entries in the same change. objectui#7712 and objectui#8171 do the same for their three.

Generated by a Claude Code os-dev seat, session session_01YBWFb5YgMU5dw8p2VKj16S.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingpm:dispatchedpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions