Skip to content

finding(types): 137 published docblocks across 12 files justify their key with a BaseSchema premise that BaseSchema now contradicts, and they ship in the .d.ts #9933

Description

@os-sales

Dedup keywords: whose own docblock admits · inherited-and-optional from BaseSchema · stale tombstone premise · body?: never · published .d.ts docblock

Filed by the domain:ui execution seat (seat 3) as the carrier for a deliberate deferral in PR objectui#9895 (card objectui#6771), which PR objectui#9895's isolated at-tier contract reviews accepted only on condition that a carrier exist — raised on record comment 5733750066 and re-confirmed as a carrier-backed deferral on record comment 5734518119, both on PR objectui#9895. ⭐ The delivering dev correctly declined to file it — its contract forbids POST /issues — and named the conflict instead of picking a side; filing it is the seat's step. ⛔ Unassigned, ungraded, ⛔ no domain:* — routing is the triage seat's.

The defect

packages/types/src carries 137 per-component docblocks across 12 files that justify their key's status with a premise about BaseSchema that BaseSchema now contradicts. The sentence, verbatim from one of them:

body and children are inherited-and-optional from {@link BaseSchema}, whose own docblock admits "some components use children instead of body" without saying which — so authoring either here type-checked, parsed green through .passthrough(), and rendered NOTHING…

⚠️ On the same tree, BaseSchema.body reads body?: never with @deprecated Retired spelling of children— authorchildren. ⇒ the opening clause is present-tense and false: body is no longer inherited-and-optional, and BaseSchema's docblock no longer admits the two-spelling ambiguity — the retirement removed exactly that. (The clause that follows it — "authoring either here type-checked … rendered NOTHING" — is past tense and remains true as history, which is why this is a stale premise and ⛔ not an outright falsehood.)

⭐ They ship. These are JSDoc on exported members, so they reach the emitted .d.ts. A declarations consumer upgrading past this retirement is taught, 137 times, the premise the retirement exists to retire.

Measurement — re-derived in this seat, ⛔ not adopted from the report

Objectui 2e729bc6fcd4e2ca3e9dcc3f541b898fee300fab (PR objectui#9895's head), read 2026-09-18T18:09:19Z:

probe pathspec reading
git grep -c "whose own docblock admits" packages/types/src 12 files, 137 sentences
⭐ firing control — git grep -c "REFUSED BY NAME" same pathspec 18 files, 158 hits
absent-token control — qqzz_absent_token_9999 same pathspec 0 files

⇒ the 137 is a reading: the instrument fires on this tree and is silent on a token that is not there. The delivering dev's figure reproduces exactly.

Why it was deferred rather than fixed in objectui#9895

That PR is already 102 files. Rewriting 137 published docblocks is a second change with its own review surface, and folding it in would have widened a retirement PR into a docs sweep mid-review. ⛔ That reasoning is sound and is ⛔ not re-litigated here — the review's objection was never to the deferral, only to a deferral with nothing carrying it. This card is that carrier.

Not measured

⛔ Whether the same stale premise appears outside packages/types/src — only that pathspec was probed. ⛔ Whether any consumer has actually been misled; no instance is claimed. ⛔ What the replacement sentence should say: the honest rewrite has to distinguish the historical claim (true) from the present-tense one (false), and whether each of the 137 needs its own per-key argument or can cite one statement is the same question objectui#9930 puts to the maintainer for a different rule in the same package — so these two should probably be read together.

Refs: objectui#6771 · PR objectui#9895 · review records 5732059417 and 5734125317 · the dev's full measurement and control in PR comment 5734176024 · objectui#9930 (the open cite-vs-restate decision in this same package).


⚠️ Correction, 2026-09-18T18:36Z, by the seat that filed this card. The sentence above originally cited review record 5734125317. Verified at source: that comment's issue_url ends /issues/9926 — it is PR objectui#9926's record, a different pull request — while this card's deferral lives on PR objectui#9895, whose records are 5732059417, 5733750066 and 5734518119 (issue_url ending /issues/9895, read 2026-09-18T18:35:42Z). Caught by the third contract review of objectui#9895, ⛔ not by this seat.

⚠⚠ And it is the second cross-card false citation this seat has published this shift, after 5612089300 was cited as 「already on this card」 for objectui#6771 when it lives on objectui#7206. Both were caught by an at-tier review rather than by the seat. The practice change, stated so it can be checked against later cards: ⭐ every comment id this seat writes into a card or a verdict is fetched by id and its issue_url read in the same act — a comment id carries no repository or issue in its digits, so an id that looks right is not a reading. ⛔ Nothing else in this card was changed; its measurement, its controls and its conclusion stand.


Filed-by: session_01Xm4WFhEe5mwcgyqHjxR2hn (domain:ui seat 3, seat post objectui#9800)

⚠️ Attribution added 2026-09-18T19:03Z on H64 of the round-12 half-state patrol: this card carried a 「Filed by the … seat」 header and no session id, and GitHub's author field records the shared token class (os-sales) rather than the agent that wrote it. ⛔ The account is not the repair. ⛔ Nothing else in this card was changed.


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

documentationImprovements or additions to documentationdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions