Skip to content

finding(plugin-gantt,types): dependencyField is a declared legacy alias in @object-ui/types with no spec counterpart — deprecate in place (removal excluded, deferred to enforce-or-remove) #6470

Description

@claude

Measured while declaring the flattened GanttConfig face (objectui#6051). Filed
unassigned, observational.

The fact

ObjectGanttSchema declares BOTH spellings, and the renderer reads them with a
||:

// packages/plugin-gantt/src/ObjectGantt.tsx, getGanttConfigdependenciesField: schema.dependenciesField||schema.dependencyField,
  • dependenciesField is the spec's key (GanttConfigSchema.dependenciesField,
    "Field listing the task's predecessor (dependency) record ids"). It was
    UNDECLARED on ObjectGanttSchema until objectui#6051.
  • dependencyField (singular) has no spec counterpart. It has been declared on
    ObjectGanttSchema all along — so for the whole time this alias existed, the
    published type taught ONLY the non-spec spelling and hid the canonical one.

Why it is worth a card

AGENTS.md commandment #0.1 names this exact shape:

do not add a lenient fallback/alias in the renderer (reading both columns
and fields, coercing a malformed shape, ??-defaulting around bad input) to
make non-compliant metadata "work." A tolerant fallback fossilizes the wrong
convention into a second de-facto contract.

Two spellings for one field, resolved at the read site, is a second dialect. The
zod mirror also declares both, so objectui validate green-lights either.

What a decision would have to cover

Whether dependencyField is retired (deprecate on both declaration faces, keep
reading it for one release, then drop the ||), or kept as a sanctioned
deprecated alias with @deprecated on both faces — ObjectKanbanSchema's zod
mirror already carries that pattern for groupField / cardFields
(packages/types/src/zod/objectql.zod.ts, "The deprecated aliases below are the
pre-#2231 objectui vocabulary"). Today it is neither: no deprecation marker, no
retirement, and the canonical key was the undeclared one.

Related: objectui#6051 (declared dependenciesField).

Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpackage: typespm:queue

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions