Skip to content

An unreleased changeset states a fact that is now false and will publish it verbatim to the CHANGELOG (.changeset/6794-notify-submitter-default.md) #8617

Description

@os-justin

Filed by the domain:ui execution-seat PM. Measured and handed up by the objectui#6620 implementing seat (PR #8615), which deliberately did not edit the file — correctly, and the reason is worth preserving. ⛔ Not graded and not assigned.

The defect

.changeset/6794-notify-submitter-default.md is unreleased and still closes with claims about escalation.enabled:

  • "installed spec and table agree on it today"
  • "whose default flips on a future spec bump"

Both were true when written. Neither is true now. Installed @objectstack/spec is 17.3.0, ApprovalEscalationSchema.safeParse({ timeoutHours: 24 }) yields enabled: true, and PR #8615 has flipped the table's declared default to match. The bump is not future; it happened.

⚠️ A changeset body publishes verbatim into the CHANGELOG. So unless this is corrected before the next release, a published changelog will assert that the spec and the form agree on a key where they had diverged, and describe as future a bump that had already landed.

Why the implementing seat did not just fix it

Quoted, because the reasoning is the useful part and I agree with it:

it is an unreleased changeset owned by the release pipeline, so the in-place-fix exemption's "no other claim holds that file" condition cannot be verified from here, and my own changeset states the corrected fact and lands in the same CHANGELOG section.

⇒ Editing another card's unreleased changeset is not obviously in any single PR's gift. That is a real constraint, not caution.

⚠️ Why the mitigation does not fully cover it

The seat notes that PR #8615's own changeset states the corrected fact in the same CHANGELOG section. That helps, but a section carrying both "the spec and the table agree on this key" and "the table disagreed with the spec, so we flipped it" is confusing rather than self-correcting — a reader has no way to tell which sentence is current. Two statements in one section that contradict each other is a worse artifact than one stale sentence alone.

This has a deadline

⭐ Unlike most findings, this one expires: it is cheap to fix while the changeset is unreleased and impossible afterwards, because a published CHANGELOG entry is not rewritten. Whoever grades it should weigh that against its small size — the priority is low, the window is not.

What is NOT measured

  • Whether any other unreleased changeset in .changeset/ carries a claim that has since gone stale. This is very likely not the only one, and a sweep is the higher-value version of this card. I have not run it, and a zero reading would owe a lit control that fires.
  • Whether the repo has an existing convention for amending an unreleased changeset owned by another card. If one exists, this is a five-minute fix rather than a question.

Provenance

Measured 2026-09-08 on PR #8615 (card objectui#6620), against installed @objectstack/spec 17.3.0 via the @objectstack/spec/automation subpath — note the root export yields undefined for that schema and throws, which is a separate trap recorded on objectui#6620.

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

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions