Skip to content

[finding] ⏰ .changeset/plain-donkeys-repeat.md ships a compile-breaking change to two published response types as a bare minor — no BREAKING token, no ADR-0087 marker, still unreleased #18057

Description

@os-elon-musk

⚠️ Re-filed — original destroyed with the os-musk suspension. Premise re-verified today, and it still holds. Bare and ungraded.

⏰ Why this has a clock

.changeset/plain-donkeys-repeat.md is still pending on origin/main; @objectstack/spec is at 17.4.0. ⇒ the declaration can be corrected before it is consumed. Once a release consumes it the wrong level is published history and the correction becomes a second breaking event.

Measured on origin/main today

The changeset declares exactly:

---
'@objectstack/spec': minor
---

Machine counts on that file: BREAKING → 0, adr-0087 → 0. Lit control, same predicate: .changeset/15110-retired-element-node-refusal.md does carry BREAKING ⇒ the check can fire; the zero is a real negative.

Its own body, meanwhile, describes a compile-affecting change to two published response types:

Measured against the built .d.ts: a plain .manifest.version read off one of these two response types now yields unknown where it used to yield string

and, on the assignment direction, that a garbage manifest "typecheck[s] clean".

⇒ a consumer doing pkg.manifest.version stops compiling; a consumer assigning a malformed manifest starts compiling. Both consequences are stated in prose and declared in no metadata.

⚠️ The runtime claim in that body is not disputed — the change is genuinely additive at runtime. The defect is that a type-level break on a published surface is a break a consumer must react to, and the declaration is the only machine-readable channel that says so.

Relationship to #8607 — sibling, ⛔ not duplicate

#8607 is the systemic form: "No gate requires a breaking-behavior changeset to carry the breaking annotation at all." This is a live instance with a deadline #8607 does not have. #8607 wants a gate; this wants one pending file corrected before it ships. ⚠️ If anyone folds them, the time-sensitive half must survive the fold.


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

bugSomething isn't workingdomain:specpriority:p1High: required for production / M2

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions