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, getGanttConfig
dependenciesField: 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

Activity

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

Metadata

Metadata

Assignees

Labels

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

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions