Skip to content

docs(changeset): two PENDING changesets carry now-false sentences — a wrong key count in 8992-…md and a paragraph in 8913-…md invalidated by objectui#9021; both ship into the types CHANGELOG at the next publish #9042

Description

@os-warren

.changeset/8992-user-actions-collapse-and-docblock.md contains one wrong count that ships straight into packages/types/CHANGELOG.md at the next release. One word, one occurrence — and the file contains a second, correct occurrence of the same word that ⛔ must not be touched.

The two occurrences, and only one is wrong

UserActionsConfigSchema has eleven members. buttons is the only one that never carried a default ⇒ ten are defaulted. This PR moves three of those ten (group, hideFields, rowColor).

# text in the changeset verdict
1 "Measured on this object: all ten defaulted keys read description = undefined after the strip" CORRECT — ⛔ do not change
2 "before, the local extension supplied descriptions the other ten defaulted keys did not have" WRONG — the three ARE among the ten; "the other" ones are seven

The file's own item 2 already says "SEVEN of the other eight keys have declared ZodDefault all along" and enumerates them (sort, search, filter, refresh, rowHeight, addRecordForm, editInline). So the file contradicts itself, and the seven is the half that is right.

⇒ The fix is exactly: the other ten defaulted keysthe other seven defaulted keys. A naive find-and-replace of "ten" breaks occurrence 1.

⚠️ Check the PR body too — objectui#9017's description carries the same sentence.

Provenance

Found by the round-2 contract reviewer of PR objectui#9017 (record 5624735304, head 2f430a3152f1a32a77a8b4ad8291f1405bf14586), which graded it non-blocking and returned VERDICT: PASS — the preceding sentence carries the true count, and the mechanism and outcome are right. I verified both occurrences myself against the file at that head before filing this; the reviewer's reading reproduces exactly.

The dispatching seat's only two legal moves on a subagent verdict are to adopt it verbatim or void it entirely — ⛔ never to rewrite one. Another repair round would have moved the head and voided the PASS, costing a full ceiling-tier review for one word. So #9017 was adopted and landed as measured, and this card is the correction, filed so the error does not reach the CHANGELOG by default.

⚠️ It is the same error class round 1 of that review already fixed once ("the other eight keys" → seven of eight). A miscount of the same object survived a repair round aimed at miscounts of that object.

Timing

.changeset/*.md is release-note input, consumed at release. ⇒ this must land before @object-ui/types next publishes, after which the correction belongs in a docs-only PR against packages/types/CHANGELOG.md instead — ⛔ never as a rider on a code PR, per the release-notes guardrail.

Scope

One file, one word (two if the PR body is corrected). ⛔ Nothing else rides. Clause-②: no — prose in a changeset, no accept-set or public-surface change; declare it in the claim and let the gate judge.

Refs objectui#8992 · PR objectui#9017 · review record 5624735304.


Site 2 — .changeset/8913-object-kanban-columns-declared.md, and it is bigger than a count

⚠️ Added after PR objectui#9021 merged (landing commit a4b723fab99b5e74917e03598382d25d15f487da, 2026-09-10T20:22:19Z). That merge is what makes this paragraph false; it was true when written.

Lines 65–69 of that pending changeset read, verbatim:

The bare-string array is admitted for parity and is inert on this block. The renderer honours it only when a board has no groupBy, and groupBy is required on this face — so no document that passes this schema reaches it. It is declared because refusing an arm the protocol names would be a second narrowing; the requiredness is tracked as objectui#8990.

Three claims in it are now wrong, and ⛔ the last one is the least important:

claim status after #9021
"groupBy is required on this face" FALSEpackages/types/src/objectql.ts:3033 is groupBy?: string; and zod/objectql.zod.ts:1286 is z.string().optional() on main @ a4b723fab
"is inert on this block … no document that passes this schema reaches it" FALSE — a schema-valid lane-less board now reaches the bare-string arm
"the requiredness is tracked as objectui#8990" stale — #8990 is closed / completed

⇒ ⛔ Do not fix this by deleting the last clause. The paragraph's headline sentence is the wrong one; rewrite it to say the arm is now reachable, and cite #8990 as the change that made it so rather than as pending work.

Pending, measured: the file is still in .changeset/ on main, and the sentence occurs 0 times in packages/types/CHANGELOG.md — control: that CHANGELOG is 4550 lines, so the query is live. It has not been released yet, and it ships as written at the next publish.

Why this was nearly missed

The #9021 landing sweep grepped content/ and packages/ for "tracked as objectui#8990" and got 0, with a live control (36 hits for objectui#8990 overall). .changeset/ is neither directory. A residue sweep that omits .changeset/ cannot see release-note input — which is the only thing that reaches a CHANGELOG.

Scope, restated for two sites

Both sites are prose in pending changesets and must land before @object-ui/types next publishes; after that they belong in a docs-only PR against packages/types/CHANGELOG.md, ⛔ never as a rider on a code PR. Clause-②: no — no accept-set or public-surface change. Site 1 is one word; site 2 is one paragraph.


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:specobjectui spec stream: fix lands on packages/types, schema corpus or spec pin coupling — spec lanefindingpackage: typespriority:p2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions