Skip to content

finding(types): ui-action.ts comment claims "In spec 17 I18nLabelSchema is z.ZodString" — false against the installed rc.6, and it nearly made a seat implement a no-op #4611

Description

@yinlianghui

Filed by the PM from the #4580 round-2 seat's report (note 3). Observation-class.

What

A comment in packages/types/src/ui-action.ts asserts that in spec 17 I18nLabelSchema is z.ZodString — i.e. that I18nLabel is a plain string. Measured against the installed @objectstack/spec@17.0.0-rc.6, that is false: I18nLabelSchema is z.ZodUnion of z.ZodString and z.ZodRecordstring | Record< string, string > — the inline locale map that rc.6 introduced (see #4163's rc.5→rc.6 quote of the same declarations).

Why it matters

The #4580 round-2 seat read this comment while implementing the BaseSchema.label/.description widening to string | I18nLabel. Had the comment been believed, the widening would have been a no-op (string | string), and the card would have shipped nothing while reporting success. The seat measured the installed declaration instead and proceeded correctly — but the comment is a planted premise sitting on the exact symbol the whole label-vocabulary family turns on.

Gate coverage note

This is the CONTENT-WRONG-CLAIM class: the cited symbol (I18nLabelSchema) is LIVE, so neither rule 2's tie test nor #4607's citation-aware sharpening can see it — both judge whether a claim has something behind it, not whether what it says about a live symbol is true. That non-goal is documented on #4607; this instance is why the class exists. No new instrument is proposed here (a truth-checker for prose is not a gate); the fix is simply correcting or deleting the sentence, with #4163's rc.6 quote as the reference.

Fix shape

One comment edit in packages/types/src/ui-action.ts (locate the exact line; the seat did not record it). Verify the surrounding declaration doesn't depend on the false premise in any structural way while there.

Refs #4580, PR #4608, #4163, #4607.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions