From bfc744c98cc5e90940fd7bfe2cbbb95240785558 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 19:10:49 +0000 Subject: [PATCH 1/2] docs(spec): correct the 17.4.0 duration-keys erratum (#18076) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The published packages/spec/CHANGELOG.md 17.4.0 entry, under "Keys deliberately left alone", said the burn-rate `window` and the OpenTelemetry exporter `timeout` name no unit anywhere in their prose and are outside check:duration-unit-keys's population, with pin tests holding the bare spellings. All three claims are false now: #17783 renamed the burn-rate window to `durationSeconds` and #17785 renamed the exporter timeout to `timeoutMs` (with its `exportTimeout` sibling to `exportTimeoutMs`), both tombstoned with `retiredKey()`, and the pin tests that held the bare names were rewritten into rename-refusal pins. This corrects the sentence to the post-#17783/#17785 truth and appends one erratum line, matching the ef47459474 (#17896) precedent's shape. Clause-②: no skip-changeset: no package publishes anything from this change — the edit is prose inside an already-compiled CHANGELOG.md section plus an erratum line. --- packages/spec/CHANGELOG.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index a1b11b77e18..5a1c4d0b05f 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -2862,11 +2862,25 @@ milliseconds where its `resetTimeoutSeconds` sibling is seconds, so the two must not be migrated as if they were one unit. `MetricExportConfig.batch.size` is a record count and `QueueConfig.rateLimit.max` is a task count: neither is a - duration, so neither has a unit to carry. `ServiceLevelObjective.errorBudget`'s - burn-rate `window` and the OpenTelemetry exporter `timeout` name no unit - anywhere in their prose, so both are outside the gate's population entirely. - Pin tests assert each of these, so a later sweep cannot read this card as - "every duration-shaped number on these files". + duration, so neither has a unit to carry. As published, this entry continued: + "`ServiceLevelObjective.errorBudget`'s burn-rate `window` and the + OpenTelemetry exporter `timeout` name no unit anywhere in their prose, so + both are outside the gate's population entirely. Pin tests assert each of + these, so a later sweep cannot read this card as 'every duration-shaped + number on these files'." Both keys were renamed in the same major: #17783 + renamed the burn-rate `window` + (`ServiceLevelObjective.errorBudget.burnRateWindows[].window`) to + `durationSeconds`, and #17785 renamed the OpenTelemetry exporter `timeout` + (`OpenTelemetryCompatibility.exporter.timeout`) to `timeoutMs`, with its + `batch.exportTimeout` sibling moving to `exportTimeoutMs` the same way. + Both are inside the gate's population now, each tombstoned with + `retiredKey()` naming the new spelling, and the pin tests that held the + bare names were rewritten by the same two PRs into rename-refusal pins. + + *Erratum, 2026-09-13 — #17783 and #17785 renamed the two keys this entry + named as gate-exempt; both are tombstoned and inside the gate's + population as of `@objectstack/spec` 17. (Corrected after publication, + #PRPLACEHOLDER18076.)* - fb77aa5: feat(spec)!: a `tree` field's `reference`, when present, must name the declaring object — any other target is refused at parse (#14892) From ac68eff364a2e6d51448fed718b38292b548ca83 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 13 Sep 2026 19:26:30 +0000 Subject: [PATCH 2/2] docs(spec): fill in the correcting PR number in the erratum line The erratum line was written before PR #18077 existed; replace the placeholder with its real number now that it does. --- packages/spec/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index 5a1c4d0b05f..fbf4c91cf29 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -2880,7 +2880,7 @@ *Erratum, 2026-09-13 — #17783 and #17785 renamed the two keys this entry named as gate-exempt; both are tombstoned and inside the gate's population as of `@objectstack/spec` 17. (Corrected after publication, - #PRPLACEHOLDER18076.)* + #18077.)* - fb77aa5: feat(spec)!: a `tree` field's `reference`, when present, must name the declaring object — any other target is refused at parse (#14892)