Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .changeset/spec-migration-entries-provenance-anchors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
'@objectstack/spec': patch
---

The ADR-0087 migration entries cite the commit that decided each retirement instead of a tracker number that no longer resolves

Clause-②: no

The source comments of the migration registry's retired-key, retired-def and semantic
entries named GitHub issues that no longer exist, so a reader could not tell a rule kept
on purpose from one nobody could explain. Each of those comments now names the commit
that made the decision and, where the number alone carried the meaning, says what was
decided. The compiled `@objectstack/spec/migrations` entry carries these comments, which
is why this is a release note at all. Comment text only: no entry id, retired key or def,
prescription, projected upgrade-guide text, schema, export or runtime behaviour changes.
2 changes: 1 addition & 1 deletion packages/spec/src/migrations/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ into the registry; the run of `//` comments immediately above `export const entr
sentence once here and once there. This tree's one code/prose separator masks
**comments** and leaves **string literals** intact on purpose, so to every scan built
on it a quoted example is code — which is how prose in `packages/spec` turns
**another package's** test red. Measured on #14526: the new entry named four retired
**another package's** test red. Measured while landing commit db16b9424: the new entry named four retired
call sites in their call spelling — the method with its opening parenthesis —
`packages/client/src/envelope-caller-census.test.ts` counted 46 against the 28 it
pins (nine mentions, each counted twice) and `Test Core` went red; respelling them
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #6239 — api/protocol.zod.ts view-management operations
// Commit f549a0d4a — api/protocol.zod.ts view-management operations
export const entry = 'api/CreateViewRequest';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #14691 — `api/CrudEndpointPattern` (the `{ method, path, summary, description }`
// Commit b3a63d32c — `api/CrudEndpointPattern` (the `{ method, path, summary, description }`
// value shape of `crud.patterns`) leaves with its carrier key: its ONLY consumer
// was `CrudEndpointsConfigSchema.patterns`, tombstoned in the same change under
// ADR-0049 enforce-or-remove, and an exported value schema with no consumer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -21,6 +21,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'api/MetadataEffectiveResponse';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -20,6 +20,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'api/MetadataOverlayResponse';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -19,6 +19,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'api/MetadataOverlaySaveRequest';
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
// §5.2): only its own unit test and the #11925 negative guard, both updated
// in the retiring PR. No carrier key, no authored document, so no tombstone
// and no D2 conversion — this table plus the D3 semantic entry
// `package-rollback-response-retired` ARE the declaration (the #8715 route-3
// `package-rollback-response-retired` ARE the declaration (commit 2c86fe3ea's route-3
// shape). The live route's true contract is
// `RollbackToPackageCommitResponseSchema` (`api/package-lifecycle.zod.ts`),
// authored in the same PR AFTER this retirement per the ruling's sequencing.
//
// Registered under 18, not 17: v17.0.0 was cut before this landed, so the
// removal ships on the 17.x line (launch-window convention: accept-set
// narrowings ride minor releases) and the prescription lives at the major
// boundary where `migrate meta` users look (the #8586 / #8715 precedent).
// boundary where `migrate meta` users look (the #8586 / commit 2c86fe3ea precedent).
export const entry = 'api/PackageRollbackResponse';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #8715 — identity/identity.zod.ts `ApiKeySchema`, retired whole (ADR-0049
// Commit 2c86fe3ea — identity/identity.zod.ts `ApiKeySchema`, retired whole (ADR-0049
// enforce-or-remove; maintainer ruling 2026-08-15, disposition B: delete).
// The schema documented better-auth's `apiKey` PLUGIN shape — a plugin this
// platform does not load: `start`, `lastRefetchAt`, `enabled` (the real
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #14676 — `integration/ConnectorErrorCategory` (the 8-value connector-side
// Commit 13c48c2a5 — `integration/ConnectorErrorCategory` (the 8-value connector-side
// error category enum) left with its two carriers: `ErrorMappingRule.targetCategory`
// and `ErrorMappingConfig.defaultCategory`, both retired in this same major
// (`RETIRED_DEFS_BY_MAJOR[18]`). Measured before removal: outside the declaring
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #14676 — `integration/ErrorMappingConfig` (`rules`, `defaultCategory`,
// Commit 13c48c2a5 — `integration/ErrorMappingConfig` (`rules`, `defaultCategory`,
// `unmappedBehavior`, `logUnmapped`) leaves with its only carrier:
// `ConnectorSchema.errorMapping`, tombstoned in this same major under ADR-0049
// enforce-or-remove (`RETIRED_KEYS_BY_MAJOR[18]`). Nothing outside the declaring
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #14676 — `integration/ErrorMappingRule` (`sourceCode`, `sourceMessage`,
// Commit 13c48c2a5 — `integration/ErrorMappingRule` (`sourceCode`, `sourceMessage`,
// `targetCode`, `targetCategory`, `severity`, `retryable`, `userMessage`) leaves
// with `integration/ErrorMappingConfig`, whose `rules[]` was its only carrier.
// The `userMessage` member is the reason the census filed the card: its
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// (ADR-0049 enforce-or-remove; triage graded 2026-08-25, the exported
// orphan-value-schema class — #3950). The pair described a "CLI Command
// Contribution declaration in the manifest" and claimed retention "for
// describing command metadata in plugin manifests" — but after #10724
// describing command metadata in plugin manifests" — but after commit be21955ba
// tombstoned `manifest.contributes.commands`, no manifest surface could
// legally carry these entries: the exported schema advertised a shape whose
// only declared carrier rejects it. The manifest never referenced this schema
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -19,6 +19,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/CustomizationOrigin';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -21,6 +21,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/CustomizationPolicy';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -22,6 +22,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/FieldChange';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -19,6 +19,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/MergeConflict';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -19,6 +19,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/MergeResult';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -23,6 +23,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/MergeStrategyConfig';
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-charter #13135 executes
// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on
// #12057: retirement adopted, re-scope rejected; re-chartered, that commit executes
// the widened surface). Part of the whole-module removal of
// `kernel/metadata-customization.zod.ts` — the paper three-layer
// customization protocol ADR-0126 §6 wall 4 supersedes on the record
Expand All @@ -23,6 +23,6 @@
// boundary where `migrate meta` users look. No carrier key survives for
// these defs and no authored document embedded them, so no tombstone and no
// D2 conversion — this table plus the D3 semantic entry
// `metadata-customization-protocol-retired` ARE the declaration (the #8715
// `metadata-customization-protocol-retired` ARE the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'kernel/MetadataOverlay';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #11846 — `kernel/PreviewModeConfig` (the six-key preview/demo config block:
// Commit 0c2334f6c — `kernel/PreviewModeConfig` (the six-key preview/demo config block:
// `autoLogin` default true, `simulatedRole` default 'admin',
// `simulatedUserName`, `readOnly`, `expiresInSeconds`, `bannerMessage`). Its
// only carrier key, `KernelContext.previewMode`, is tombstoned in this same
Expand All @@ -15,6 +15,6 @@
// never implemented by any layer; preview DEPLOYMENTS belong to the
// deployment layer, whose `OS_PREVIEW_MODE` is routing-only and stays. If a
// preview experience becomes a product capability it re-declares fresh, with
// the production-posture hard-refusal as the first-landed half (#11846 ruling
// the production-posture hard-refusal as the first-landed half (commit 0c2334f6c's ruling
// record).
export const entry = 'kernel/PreviewModeConfig';
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
// deliberate `z.string()` — the ruling adds no constraint there. No authored
// document is invalidated (the accept set at the three fields widens), so no
// tombstone and no D2 conversion — this table plus the D3 semantic entry
// `event-name-schema-retired` are the declaration (the #8715 route-3 shape).
// `event-name-schema-retired` are the declaration (commit 2c86fe3ea's route-3 shape).
export const entry = 'shared/EventName';
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
// five surfaces' real validators as the contract of record). No authored
// document ever embedded a branded value, so no tombstone and no D2
// conversion — this table plus the D3 semantic entry
// `branded-identifier-schemas-retired` are the declaration (the #8715
// `branded-identifier-schemas-retired` are the declaration (commit 2c86fe3ea's
// route-3 shape).
export const entry = 'shared/ObjectName';
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #10485 — `ui/BorderRadius` (the border-radius scale sub-block) left with `ui/Theme`:
// Commit 35ad101bc — `ui/BorderRadius` (the border-radius scale sub-block) left with `ui/Theme`:
// its ONLY consumer was the retired `ThemeSchema` (the #3950 rule — an
// exported value schema with no consumer reads as a capability). See
// `18.ui__Theme.ts` for the retirement record and the ruling.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #10485 — `ui/ColorPalette` (the colour palette sub-block) left with `ui/Theme`:
// Commit 35ad101bc — `ui/ColorPalette` (the colour palette sub-block) left with `ui/Theme`:
// its ONLY consumer was the retired `ThemeSchema` (the #3950 rule — an
// exported value schema with no consumer reads as a capability). See
// `18.ui__Theme.ts` for the retirement record and the ruling.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

// #10485 — `ui/Shadow` (the shadow scale sub-block) left with `ui/Theme`:
// Commit 35ad101bc — `ui/Shadow` (the shadow scale sub-block) left with `ui/Theme`:
// its ONLY consumer was the retired `ThemeSchema` (the #3950 rule — an
// exported value schema with no consumer reads as a capability). See
// `18.ui__Theme.ts` for the retirement record and the ruling.
Expand Down
Loading
Loading