⚠️ 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
os-musksuspension. Premise re-verified today, and it still holds. Bare and ungraded.⏰ Why this has a clock
.changeset/plain-donkeys-repeat.mdis still pending onorigin/main;@objectstack/specis 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/maintodayThe changeset declares exactly:
Machine counts on that file:
BREAKING→ 0,adr-0087→ 0. Lit control, same predicate:.changeset/15110-retired-element-node-refusal.mddoes carryBREAKING⇒ the check can fire; the zero is a real negative.Its own body, meanwhile, describes a compile-affecting change to two published response types:
and, on the assignment direction, that a garbage manifest "typecheck[s] clean".
⇒ a consumer doing
pkg.manifest.versionstops compiling; a consumer assigning a malformed manifest starts compiling. Both consequences are stated in prose and declared in no metadata.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