Skip to content

finding(changeset): the pending field-rows/option-description changeset still says the canonical field-level spelling is depends_on — false for this package, and it is release-notes input #15058

Description

@claude

Found while implementing #13916 (the fact-layer rewrite of the same sentence in packages/spec/src/data/field.zod.ts, PR #15055). Filed unassigned, out of scope there, and deliberately not touched by that PR.

The shape

.changeset/field-rows-and-option-description-declared.md is still pending (unreleased; it landed with PR #13669, merge commit 86e765a7). Its options[].description bullet ends:

Per the same inherited ruling, dependsOn is deliberately NOT declared — the canonical field-level depends_on already exists, and the widget-side spelling fix rides the objectui half.

That is the fourth copy of the sentence #13916 was filed about, and it is false about this package in the same way. Measured against the built schema at 9300bca5 (packages/spec/dist/data/index.js):

probe verdict
FieldSchema with dependsOn: ['country'] ACCEPTED
FieldSchema with depends_on: ['country'] REFUSED — unrecognized_keys, "Did you mean depends_ondependsOn?"
SelectOptionSchema with dependsOn REFUSED — unrecognized_keys
SelectOptionSchema with depends_on REFUSED — unrecognized_keys

depends_on is declared nowhere in @objectstack/spec. The spelling the sentence calls canonical is objectui's own BaseFieldMetadata.depends_on (packages/types/src/field-types.ts:128), a consumer-side type.

Why this is worth its own card

A changeset is the input to release notes, and release notes are compiled centrally at release time. This one has not shipped yet, so the correction costs one line now; after the release it is a docs-only PR against a release page (release pages are never edited from a code PR).

Why #13916's PR did not fix it in place

The bounded in-place exemption needs all four of its conditions, and the fourth fails: editing .changeset/** pulls in gate families outside that card's verification surface — dispatch-gates.mjs names check:objectui-changeset and check:pm-half-states as the families a .changeset/ path would match — and that card's PR is otherwise comment-text-only with a skip-changeset label. So: filed, not ridden.

Scope note for whoever takes it

The fix is the fact layer only, exactly as triage split it on #13916: say what is measured. The ruling layer — whether the option face should declare a cascade key at all — is not this card either; it lives with objectstack-ai/objectui#6153, and #14583 records a maintainer ruling dated 2026-09-02 on the field-level spelling half.

Refs: #13916 (the source-side card) · PR #15055 (its rewrite, and where the measurement table comes from) · #14583 · PR #13669 (where the sentence landed).


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

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions