diff --git a/.changeset/spec-migration-entries-provenance-anchors.md b/.changeset/spec-migration-entries-provenance-anchors.md new file mode 100644 index 00000000000..d62834d677c --- /dev/null +++ b/.changeset/spec-migration-entries-provenance-anchors.md @@ -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. diff --git a/packages/spec/src/migrations/entries/README.md b/packages/spec/src/migrations/entries/README.md index c4583a4a937..17d76cc4e9d 100644 --- a/packages/spec/src/migrations/entries/README.md +++ b/packages/spec/src/migrations/entries/README.md @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/17.api__CreateViewRequest.ts b/packages/spec/src/migrations/entries/retired-defs/17.api__CreateViewRequest.ts index 1b0ef5e530b..05cf82bc576 100644 --- a/packages/spec/src/migrations/entries/retired-defs/17.api__CreateViewRequest.ts +++ b/packages/spec/src/migrations/entries/retired-defs/17.api__CreateViewRequest.ts @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.api__CrudEndpointPattern.ts b/packages/spec/src/migrations/entries/retired-defs/18.api__CrudEndpointPattern.ts index 2f17c6d8c6d..4d1efd4b2b5 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.api__CrudEndpointPattern.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.api__CrudEndpointPattern.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataEffectiveResponse.ts b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataEffectiveResponse.ts index 95837636ed1..dd0873b82cc 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataEffectiveResponse.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataEffectiveResponse.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlayResponse.ts b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlayResponse.ts index 7cb2dd8f62b..d7747cd9da0 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlayResponse.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlayResponse.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlaySaveRequest.ts b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlaySaveRequest.ts index ff89d3c7f56..ec18a6b0dcf 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlaySaveRequest.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.api__MetadataOverlaySaveRequest.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.api__PackageRollbackResponse.ts b/packages/spec/src/migrations/entries/retired-defs/18.api__PackageRollbackResponse.ts index 30ad85f7989..544427baa8a 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.api__PackageRollbackResponse.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.api__PackageRollbackResponse.ts @@ -12,7 +12,7 @@ // §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. @@ -20,5 +20,5 @@ // 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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.identity__ApiKey.ts b/packages/spec/src/migrations/entries/retired-defs/18.identity__ApiKey.ts index 802ad59ee8e..99e964f28c1 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.identity__ApiKey.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.identity__ApiKey.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.integration__ConnectorErrorCategory.ts b/packages/spec/src/migrations/entries/retired-defs/18.integration__ConnectorErrorCategory.ts index 4786590d8fb..8a8ad7821f7 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.integration__ConnectorErrorCategory.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.integration__ConnectorErrorCategory.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingConfig.ts b/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingConfig.ts index 86575c8578e..2aaa5aca4b4 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingConfig.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingConfig.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingRule.ts b/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingRule.ts index b80b71ac5f7..ce279ac17fb 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingRule.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.integration__ErrorMappingRule.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CLICommandContribution.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CLICommandContribution.ts index d7a0a51a19b..2a280e6aadb 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CLICommandContribution.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CLICommandContribution.ts @@ -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 diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationOrigin.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationOrigin.ts index 7c20b0cf28b..1ca3a68571a 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationOrigin.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationOrigin.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationPolicy.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationPolicy.ts index 3a8bd2a325e..e81fc4b33dc 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationPolicy.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__CustomizationPolicy.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__FieldChange.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__FieldChange.ts index d7f6ce1a4f8..3d0329a58dc 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__FieldChange.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__FieldChange.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeConflict.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeConflict.ts index 50939698b96..25607fbac5f 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeConflict.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeConflict.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeResult.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeResult.ts index ee39163055f..bf01932d549 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeResult.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeResult.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeStrategyConfig.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeStrategyConfig.ts index 90e3c853e52..7322d2faebc 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeStrategyConfig.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MergeStrategyConfig.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MetadataOverlay.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MetadataOverlay.ts index 69529aad5d9..518723688c1 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__MetadataOverlay.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__MetadataOverlay.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.kernel__PreviewModeConfig.ts b/packages/spec/src/migrations/entries/retired-defs/18.kernel__PreviewModeConfig.ts index 0fcebc95d96..0516a86d1a4 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.kernel__PreviewModeConfig.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.kernel__PreviewModeConfig.ts @@ -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 @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.shared__EventName.ts b/packages/spec/src/migrations/entries/retired-defs/18.shared__EventName.ts index 5bfadec3701..5574e0c0f19 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.shared__EventName.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.shared__EventName.ts @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.shared__ObjectName.ts b/packages/spec/src/migrations/entries/retired-defs/18.shared__ObjectName.ts index bf687e46a9c..2b1cde6f49a 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.shared__ObjectName.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.shared__ObjectName.ts @@ -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'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__BorderRadius.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__BorderRadius.ts index 6bdf8aded6d..34edc9cc681 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__BorderRadius.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__BorderRadius.ts @@ -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. diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__ColorPalette.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__ColorPalette.ts index 4148347aec0..8a6ccc40c29 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__ColorPalette.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__ColorPalette.ts @@ -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. diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__Shadow.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__Shadow.ts index 341a2a80b68..149029ab5b9 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__Shadow.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__Shadow.ts @@ -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. diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__Theme.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__Theme.ts index 263c7d64f80..f85a72c20ed 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__Theme.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__Theme.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10485 — `ui/theme.zod.ts` `ThemeSchema`, retired whole with its +// Commit 35ad101bc — `ui/theme.zod.ts` `ThemeSchema`, retired whole with its // `defineStack({ themes })` carrier key (ADR-0049 enforce-or-remove; // maintainer ruling 2026-08-21, disposition B: 退役授权面 — `app.branding` // stays the one colour surface; objectui's ThemeEngine/ThemeContext and their @@ -16,5 +16,5 @@ // 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 = 'ui/Theme'; diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__ThemeMode.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__ThemeMode.ts index 26d40dd4bc6..87d5a8e8fa7 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__ThemeMode.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__ThemeMode.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10485 — `ui/ThemeMode` (the theme mode enum (light/dark/auto)) left with `ui/Theme`: +// Commit 35ad101bc — `ui/ThemeMode` (the theme mode enum (light/dark/auto)) 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. diff --git a/packages/spec/src/migrations/entries/retired-defs/18.ui__Typography.ts b/packages/spec/src/migrations/entries/retired-defs/18.ui__Typography.ts index fc4a169dcb8..0ab19908418 100644 --- a/packages/spec/src/migrations/entries/retired-defs/18.ui__Typography.ts +++ b/packages/spec/src/migrations/entries/retired-defs/18.ui__Typography.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10485 — `ui/Typography` (the typography sub-block) left with `ui/Theme`: +// Commit 35ad101bc — `ui/Typography` (the typography 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. diff --git a/packages/spec/src/migrations/entries/retired-keys/17.api__ListNotificationsRequest__cursor.ts b/packages/spec/src/migrations/entries/retired-keys/17.api__ListNotificationsRequest__cursor.ts index 05b8f08ce6d..e2b5105845c 100644 --- a/packages/spec/src/migrations/entries/retired-keys/17.api__ListNotificationsRequest__cursor.ts +++ b/packages/spec/src/migrations/entries/retired-keys/17.api__ListNotificationsRequest__cursor.ts @@ -1,8 +1,8 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #6361 — the notification-inbox pagination key, tombstoned on BOTH halves +// Commit 90bbf2510 — the notification-inbox pagination key, tombstoned on BOTH halves // of `GET /api/v1/notifications` because one capability is never half- -// deleted (maintainer ruling 2026-08-07, ruled jointly with #6363). Two +// deleted (maintainer ruling 2026-08-07, ruled jointly with the `unreadCount` fix, commit 17d095413). Two // keys, one prescription: `NOTIFICATIONS_CURSOR_REMOVED` in // `api/protocol.zod.ts` is the single string both rejection sites raise. // diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__defaultAtomic.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__defaultAtomic.ts index 6db59aaa24d..2330732ab42 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__defaultAtomic.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__defaultAtomic.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__operations.upsertMany.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__operations.upsertMany.ts index 1eca43feaf6..6501753235b 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__operations.upsertMany.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__BatchEndpointsConfig__operations.upsertMany.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__objectParamStyle.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__objectParamStyle.ts index ea4b133be59..c2ec28d062d 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__objectParamStyle.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__objectParamStyle.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__patterns.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__patterns.ts index 6baaa110e69..21c330dca47 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__patterns.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__CrudEndpointsConfig__patterns.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -23,6 +23,6 @@ // per-operation method/path knob would make every one of them lie. The live // door for a custom path or method is a declarative `api` endpoint. Its value // def `api/CrudEndpointPattern` leaves with it (RETIRED_DEFS_BY_MAJOR[18]); its -// four ledger child rows collapse into the one `patterns` row. Closes #14365's -// question about the record's input type — there is no record left to reshape. +// four ledger child rows collapse into the one `patterns` row. Closes the open +// `z.partialRecord` question (commit f60ab90ae) — there is no record left to reshape. export const entry = 'api/CrudEndpointsConfig:patterns'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__ListInstalledPackagesRequest__limit.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__ListInstalledPackagesRequest__limit.ts index c8f78aa6c66..1e68326cde1 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__ListInstalledPackagesRequest__limit.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__ListInstalledPackagesRequest__limit.ts @@ -31,6 +31,6 @@ // is HTTP-only — nobody authors a `ListInstalledPackagesRequest` and nothing // persists one. The prescription reaches consumers as the D3 semantic entry // `packages-list-pagination-retired` plus this tombstone, the disposition -// `api/ListNotificationsRequest:cursor` (#6361) already took for the same +// `api/ListNotificationsRequest:cursor` (commit 90bbf2510) already took for the same // shape one route over. export const entry = 'api/ListInstalledPackagesRequest:limit'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__cacheTtl.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__cacheTtl.ts index 81547e10936..a6f44c0bcc2 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__cacheTtl.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__cacheTtl.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__endpoints.schema.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__endpoints.schema.ts index 9003c189dd0..75c966d20e4 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__endpoints.schema.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__MetadataEndpointsConfig__endpoints.schema.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__RestApiEndpoint__handlerStatus.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__RestApiEndpoint__handlerStatus.ts index 750980c6274..98c1e1cba0d 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__RestApiEndpoint__handlerStatus.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__RestApiEndpoint__handlerStatus.ts @@ -34,5 +34,5 @@ // 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 #11846 / #12428 grading). +// boundary where `migrate meta` users look (the commit 0c2334f6c / #12428 grading). export const entry = 'api/RestApiEndpoint:handlerStatus'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__excludeObjects.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__excludeObjects.ts index b0094b22a1f..26b9e709a7a 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__excludeObjects.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__excludeObjects.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__includeObjects.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__includeObjects.ts index eaeb2b7c97b..f94d1f80da4 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__includeObjects.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__includeObjects.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__nameTransform.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__nameTransform.ts index ec65d5f4623..ba6f4eace3e 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__nameTransform.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__nameTransform.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__overrides.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__overrides.ts index e5465f7020c..dcbb4cc5cd8 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__overrides.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__RouteGenerationConfig__overrides.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, -// executing the #14369 liveness census (15 `dead` rows across the `crud` / +// Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, +// executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -22,5 +22,5 @@ // `enable.apiMethods`); `basePath` per object would contradict the one // deployment-wide data base (`crud.dataPrefix`) the discovery document // advertises. Its three ledger child rows collapse into the one `overrides` -// row. Closes #14365's question about `overrides.*.operations` — no record left. +// row. Closes the `z.partialRecord` question (commit f60ab90ae) on `overrides.*.operations` — no record left. export const entry = 'api/RouteGenerationConfig:overrides'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.api__SessionUser__language.ts b/packages/spec/src/migrations/entries/retired-keys/18.api__SessionUser__language.ts index 401e45d0e34..81592ff977f 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.api__SessionUser__language.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.api__SessionUser__language.ts @@ -19,7 +19,7 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // The schema is a non-strict `z.object`, so the route is a `retiredKey()` // tombstone (a bare delete would strip the key silently, ADR-0104). A RESPONSE // surface — the server mints a `SessionUser` and nobody authors or persists diff --git a/packages/spec/src/migrations/entries/retired-keys/18.data__Metric__filters.ts b/packages/spec/src/migrations/entries/retired-keys/18.data__Metric__filters.ts index c62af59858a..75fa5a93375 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.data__Metric__filters.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.data__Metric__filters.ts @@ -20,7 +20,7 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // `MetricSchema` is `strictObject`, so the route is strict deletion + a // `guidance` entry carrying the prescription (no retiredKey tombstone — the // key is out of the walked shape entirely). Sources are rewritten by the D2 diff --git a/packages/spec/src/migrations/entries/retired-keys/18.integration__Connector__errorMapping.ts b/packages/spec/src/migrations/entries/retired-keys/18.integration__Connector__errorMapping.ts index fdc56173f80..d7465bee07a 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.integration__Connector__errorMapping.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.integration__Connector__errorMapping.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14676 — ADR-0049 enforce-or-remove on `ConnectorSchema.errorMapping` (triage +// Commit 13c48c2a5 — ADR-0049 enforce-or-remove on `ConnectorSchema.errorMapping` (triage // ruling 2026-09-02: removal via the `spec-property-retirement` playbook; the // split condition — a downstream consumer in objectui or a customer stack — // measured empty at objectui `0d8fd7c`, hotcrm not measurable). The key carried diff --git a/packages/spec/src/migrations/entries/retired-keys/18.integration__DeclarativeConnectorEntry__errorMapping.ts b/packages/spec/src/migrations/entries/retired-keys/18.integration__DeclarativeConnectorEntry__errorMapping.ts index cf7fd18b419..7f1e3f3d3b4 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.integration__DeclarativeConnectorEntry__errorMapping.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.integration__DeclarativeConnectorEntry__errorMapping.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #14676 — the same tombstone seen through the second carrier. +// Commit 13c48c2a5 — the same tombstone seen through the second carrier. // `DeclarativeConnectorEntrySchema` and `ConnectorSchema` both wrap the shared // private `ConnectorBaseSchema` in the retired-default residue stage, the entry // schema adding the ADR-0097 cross-field rules on the base before wrapping. diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__KernelContext__previewMode.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__KernelContext__previewMode.ts index 95421b82cc3..d8a473198a0 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__KernelContext__previewMode.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__KernelContext__previewMode.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #11846 — ADR-0049 enforce-or-remove on the preview-mode block (maintainer +// Commit 0c2334f6c — ADR-0049 enforce-or-remove on the preview-mode block (maintainer // ruling 2026-08-27, Option A: remove). The key was declared as an auth bypass // — its docstring promised auto-login as a simulated admin and named a // production guard "the runtime must enforce" — and NOTHING implemented any of @@ -23,5 +23,5 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). export const entry = 'kernel/KernelContext:previewMode'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__capabilities.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__capabilities.ts index 4c67c40dc7e..3f0dd40e739 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__capabilities.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__capabilities.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead +// Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers (triage graded 2026-08-23; cloud leg measured clean // 2026-08-29 on #12400 with positive controls). The census found ZERO reads // of the `capabilities` container itself in objectstack, objectui and cloud, diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__configuration.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__configuration.ts index 22b1334a3fa..c908c791df0 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__configuration.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__configuration.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead +// Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers; census and registration major recorded once in the // sibling entry `kernel/Manifest:capabilities`, the why-no-D2-conversion // reasoning in `kernel/Manifest:loading` (the precedent); the D3 semantic diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.actions.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.actions.ts index 93aa718ce05..aa5cae9e672 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.actions.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.actions.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.commands.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.commands.ts index 66074192635..12374bb0fea 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.commands.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.commands.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.drivers.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.drivers.ts index 1c6f2cff3c9..2e886ac5361 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.drivers.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.drivers.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.events.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.events.ts index b202e345aac..1ba2bbc5e81 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.events.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.events.ts @@ -1,8 +1,8 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block (triage graded 2026-08-21; cloud leg measured clean 2026-08-24). One -// of NINE members tombstoned together: #10627 measured exactly ONE non-test +// of NINE members tombstoned together: that commit's census measured exactly ONE non-test // read of `manifest.contributes` monorepo-wide (engine.ts, member `kinds`), // with controls, re-verified across objectstack + objectui + cloud at claim // time. `events` in particular was decorative twice over: its only in-repo diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.fieldTypes.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.fieldTypes.ts index 238cce21fa3..70c5e9b0155 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.fieldTypes.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.fieldTypes.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.functions.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.functions.ts index b5661b1f516..d8073099550 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.functions.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.functions.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.menus.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.menus.ts index 6f26c166fb5..9d1775c270e 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.menus.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.menus.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.routes.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.routes.ts index c09906508ff..b6901ceb2e7 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.routes.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.routes.ts @@ -1,7 +1,7 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10726 — ADR-0049 enforce-or-remove fork on `contributes.routes`, the ONE -// `contributes` member deliberately excluded from #10724's nine-member +// Commit bc56e1881 — ADR-0049 enforce-or-remove fork on `contributes.routes`, the ONE +// `contributes` member deliberately excluded from commit be21955ba's nine-member // retirement because removing it needed a ruling, not a tombstone: the key // was the only DECLARED channel for a real capability (serving a code-handler // endpoint), and four published surfaces — a customer-published skill among @@ -9,8 +9,8 @@ // (「接受所有」 on the decision batch carrying the four-axis analysis): remove // the key; author-facing materials redirect to the imperative `http.server` // mount, the form that actually works. The ruling's cloud precondition was -// discharged 2026-08-24 (#10812: cloud @ 5b5925a, zero `manifest.contributes` -// reads, controls green), completing #10627's three-repo census at exactly +// discharged 2026-08-24 (the cloud census: cloud @ 5b5925a, zero `manifest.contributes` +// reads, controls green), completing commit be21955ba's three-repo census at exactly // one live read (engine.ts, member `kinds` — now the block's sole survivor). // // Registered under 18, not 17: v17.0.0 was cut before this landed, so the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.themes.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.themes.ts index 9da485e3c5f..94678613d7f 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.themes.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.themes.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.translations.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.translations.ts index bc9e8a79dd3..45923c6591b 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.translations.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__contributes.translations.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` +// Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__extensions.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__extensions.ts index 5d4ff8ffedf..77d84b3bc22 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__extensions.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__Manifest__extensions.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead +// Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers; census and registration major recorded once in the // sibling entry `kernel/Manifest:capabilities`, the why-no-D2-conversion // reasoning in `kernel/Manifest:loading` (the precedent); the D3 semantic diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataManagerConfig__persistence.overlayWritable.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataManagerConfig__persistence.overlayWritable.ts index b3db94c5bf9..42f93285179 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataManagerConfig__persistence.overlayWritable.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataManagerConfig__persistence.overlayWritable.ts @@ -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, adopting retirement; re-charter #13135 executes the widened +// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on +// #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `persistence.overlayWritable` gated exactly one method — // `MetadataManager.saveOverlay()` — which belonged to the paper // metadata-customization protocol removed whole in the same change: no route diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__additionalTypes.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__additionalTypes.ts index 3d15105b1b4..38056688856 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__additionalTypes.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__additionalTypes.ts @@ -11,7 +11,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // // Registered here but NOT in `src/conversions/registry.ts`, for the reason // `kernel/Manifest:loading` gives: the conversion chain walks a normalized diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__customizationPolicies.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__customizationPolicies.ts index 562347e99e4..9b1abacb129 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__customizationPolicies.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__customizationPolicies.ts @@ -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, adopting retirement; re-charter #13135 executes the widened +// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on +// #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `customizationPolicies` embedded the paper metadata-customization // protocol's `CustomizationPolicySchema` (lockedFields / customizableFields // whitelists) and was read by NOTHING: no code ever consulted a policy before diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__mergeStrategy.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__mergeStrategy.ts index 7ac65d0bc6d..3164bc7b02a 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__mergeStrategy.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__MetadataPluginConfig__mergeStrategy.ts @@ -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, adopting retirement; re-charter #13135 executes the widened +// Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on +// #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `mergeStrategy` embedded the paper protocol's // `MergeStrategyConfigSchema` (keep-custom / accept-incoming / // three-way-merge) and was read by NOTHING: no 3-way merge engine ever diff --git a/packages/spec/src/migrations/entries/retired-keys/18.kernel__TenantRuntimeContext__previewMode.ts b/packages/spec/src/migrations/entries/retired-keys/18.kernel__TenantRuntimeContext__previewMode.ts index 2ac1b87a485..9d15459c7cd 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.kernel__TenantRuntimeContext__previewMode.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.kernel__TenantRuntimeContext__previewMode.ts @@ -1,6 +1,6 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. -// #11846 — the `TenantRuntimeContextSchema` copy of +// Commit 0c2334f6c — the `TenantRuntimeContextSchema` copy of // `kernel/KernelContext:previewMode`: the def is `KernelContextSchema.extend(…)`, // so the tombstone lands in this walked shape too and `authorable-surface/` // marks it `[RETIRED]` separately. Registered per key, as gate (b) reads them — diff --git a/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowPurge.ts b/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowPurge.ts index af47f773ea3..40fa2981ee6 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowPurge.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowPurge.ts @@ -19,7 +19,7 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // ObjectPermissionSchema is `strictObject` but the def is reachable from the // `permission` metadata root, so the route is the `retiredKey()` tombstone // (the `rls.priority` posture) — the key stays in the walked shape as diff --git a/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowRestore.ts b/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowRestore.ts index aca79e37071..2f9c147befe 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowRestore.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.security__ObjectPermission__allowRestore.ts @@ -18,7 +18,7 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // ObjectPermissionSchema is `strictObject` but the def is reachable from the // `permission` metadata root, so the route is the `retiredKey()` tombstone // (the `rls.priority` posture) — the key stays in the walked shape as diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__aria.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__aria.ts index 277ff13d76b..ae18defbbad 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__aria.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__aria.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__fields.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__fields.ts index 4fe43cda25c..34af1233f73 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__fields.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__fields.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__layout.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__layout.ts index ea31605553d..1af10aac107 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__layout.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__layout.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__object.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__object.ts index 51de0662a61..d22ce003a56 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__object.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__object.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__showSearch.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__showSearch.ts index d20d46b4119..5afbd84ccb1 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__showSearch.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__showSearch.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__targetVariable.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__targetVariable.ts index da55fbdc5b0..e12771ce038 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__targetVariable.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFilterProps__targetVariable.ts @@ -16,7 +16,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__aria.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__aria.ts index 6cfe9c503de..03864c478b9 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__aria.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__aria.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__fields.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__fields.ts index c6b6f58cfdd..249dc98084e 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__fields.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__fields.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__mode.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__mode.ts index 4bae07fd827..4fbbf662ac8 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__mode.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__mode.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__object.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__object.ts index d664a8f00fb..8ef0347b8e2 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__object.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__object.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__onSubmit.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__onSubmit.ts index 74629d5dd05..c365be8e6c1 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__onSubmit.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__onSubmit.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__submitLabel.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__submitLabel.ts index e4020feb163..b15386c4612 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__submitLabel.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementFormProps__submitLabel.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementRecordPickerProps__targetVariable.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementRecordPickerProps__targetVariable.ts index a7ce0f7dabf..0e809caaf0b 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementRecordPickerProps__targetVariable.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementRecordPickerProps__targetVariable.ts @@ -15,7 +15,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion // `element-input-target-variable-removed`. export const entry = 'ui/ElementRecordPickerProps:targetVariable'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementTextInputProps__targetVariable.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementTextInputProps__targetVariable.ts index c1fa58b6c07..82b1daa3f7c 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementTextInputProps__targetVariable.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ElementTextInputProps__targetVariable.ts @@ -18,7 +18,7 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion // `element-input-target-variable-removed` (a page component IS a stack // collection member, unlike the `kernel/Manifest:loading` family). diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__ObjectGridProps__defaultSort.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__ObjectGridProps__defaultSort.ts index 8802c07f886..6cea886bd43 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__ObjectGridProps__defaultSort.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__ObjectGridProps__defaultSort.ts @@ -16,7 +16,7 @@ // 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 #8495 / PR #8666 precedent, +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666, // as `data/Metric:filters` before it). Tombstoned with `retiredKey()` in // `ObjectGridPropsSchema` (the surface baseline line carries `[RETIRED]`); // sources are rewritten by the D2 conversion `object-grid-default-sort-removed` diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__PageComponent__responsive.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__PageComponent__responsive.ts index 2c8f5587a6d..ec2d2d01ffb 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__PageComponent__responsive.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__PageComponent__responsive.ts @@ -23,6 +23,6 @@ // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `page-component-responsive-removed`. export const entry = 'ui/PageComponent:responsive'; diff --git a/packages/spec/src/migrations/entries/retired-keys/18.ui__RecordHighlightsField__icon.ts b/packages/spec/src/migrations/entries/retired-keys/18.ui__RecordHighlightsField__icon.ts index 8c6aa29cc32..fd18ce25fc1 100644 --- a/packages/spec/src/migrations/entries/retired-keys/18.ui__RecordHighlightsField__icon.ts +++ b/packages/spec/src/migrations/entries/retired-keys/18.ui__RecordHighlightsField__icon.ts @@ -20,7 +20,7 @@ // 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 #8495 / PR #8666 precedent). +// boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // The object arm is `strictObject`, so the route is strict deletion + a // `guidance` entry carrying the prescription (no retiredKey tombstone — the // key is out of the walked shape entirely, and the refusal is the arm's own diff --git a/packages/spec/src/migrations/entries/semantic/18.client-envelope-convergence-analytics-automation.ts b/packages/spec/src/migrations/entries/semantic/18.client-envelope-convergence-analytics-automation.ts index 5d3b014d928..3734c2efd75 100644 --- a/packages/spec/src/migrations/entries/semantic/18.client-envelope-convergence-analytics-automation.ts +++ b/packages/spec/src/migrations/entries/semantic/18.client-envelope-convergence-analytics-automation.ts @@ -6,8 +6,8 @@ // resolve this repo's internal issue numbers. // // card objectstack-ai/objectstack#13079 -// landing PR objectstack-ai/objectstack#14526 -// registration objectstack-ai/objectstack#14996 +// landing commit db16b9424 +// registration commit db16b9424 (the ADR-0087 registration landed in that same squash) // precedents objectstack-ai/objectstack#13023 (the two entries this is // shaped on: `client-delete-result-success`, // `client-meta-reset-result-reset`) diff --git a/packages/spec/src/migrations/entries/semantic/18.client-oauth-applications-delete-void.ts b/packages/spec/src/migrations/entries/semantic/18.client-oauth-applications-delete-void.ts index a8d3c120bdc..0c5d2334c1b 100644 --- a/packages/spec/src/migrations/entries/semantic/18.client-oauth-applications-delete-void.ts +++ b/packages/spec/src/migrations/entries/semantic/18.client-oauth-applications-delete-void.ts @@ -13,8 +13,8 @@ // entries this is shaped on: `client-delete-result-success`, // `client-meta-reset-result-reset`, // `client-envelope-convergence-analytics-automation`) -// family objectstack-ai/objectstack#14312 (the `oauth.*` binding card -// whose ruling fenced this method out, PR #15445) +// family commit e944fdb24 (the `oauth.*` binding, which fenced this +// method out as a behaviour change, PR #15445) // pins `packages/client/src/oauth-applications-delete.test.ts`, // `packages/client/src/return-type-precision.test.ts` // vendor `StrictEndpoint<'/oauth2/delete-client', ..., void>` in diff --git a/packages/spec/src/migrations/entries/semantic/18.datasource-credentialsref-mongo-composed-no-username-refused.ts b/packages/spec/src/migrations/entries/semantic/18.datasource-credentialsref-mongo-composed-no-username-refused.ts index 5c6f4ad0a05..b0f9cd64a92 100644 --- a/packages/spec/src/migrations/entries/semantic/18.datasource-credentialsref-mongo-composed-no-username-refused.ts +++ b/packages/spec/src/migrations/entries/semantic/18.datasource-credentialsref-mongo-composed-no-username-refused.ts @@ -3,7 +3,7 @@ import type { SemanticMigration } from '../../types.js'; // The COMPOSED-branch twin of `datasource-credentialsref-mongo-url-no-user-refused` -// (#9147 widening #9041's refinement). Same silent discard, one branch over, and a +// (#9147 widening commit d491625c1's refinement). Same silent discard, one branch over, and a // DIFFERENT remedy — which is why it is its own entry rather than a widened surface // on that one: with no `url` the discrete `config.username` is the live field, so the // fix is `config.username`, not the URL's userinfo. diff --git a/packages/spec/src/migrations/registry.ts b/packages/spec/src/migrations/registry.ts index 41e36656e5d..728fb51e5ed 100644 --- a/packages/spec/src/migrations/registry.ts +++ b/packages/spec/src/migrations/registry.ts @@ -8989,7 +8989,7 @@ const step18: MigrationStep = { 'stored `sys_metadata` row or authored source.', }, // The COMPOSED-branch twin of `datasource-credentialsref-mongo-url-no-user-refused` - // (#9147 widening #9041's refinement). Same silent discard, one branch over, and a + // (#9147 widening commit d491625c1's refinement). Same silent discard, one branch over, and a // DIFFERENT remedy — which is why it is its own entry rather than a widened surface // on that one: with no `url` the discrete `config.username` is the live field, so the // fix is `config.username`, not the URL's userinfo. @@ -18752,9 +18752,9 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // that ships the login UI (objectui#4179). Until then the standing record is // `PUBLIC_AUTH_FEATURES_NOT_ADVERTISED` in `kernel/public-auth-features.ts`. 'api/AuthFeaturesConfig:passkeys', - // #6361 — the notification-inbox pagination key, tombstoned on BOTH halves + // Commit 90bbf2510 — the notification-inbox pagination key, tombstoned on BOTH halves // of `GET /api/v1/notifications` because one capability is never half- - // deleted (maintainer ruling 2026-08-07, ruled jointly with #6363). Two + // deleted (maintainer ruling 2026-08-07, ruled jointly with the `unreadCount` fix, commit 17d095413). Two // keys, one prescription: `NOTIFICATIONS_CURSOR_REMOVED` in // `api/protocol.zod.ts` is the single string both rejection sites raise. // @@ -18988,8 +18988,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // cannot say whether the value was ever in seconds. Registered under 18 for // the launch-window reason its neighbours state. 'api/ApiEndpoint:cacheTtl', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19011,8 +19011,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // semantics of callers who send nothing, the exact move ADR-0119 D4 refused, // so this is a remove, not an enforce. 'api/BatchEndpointsConfig:defaultAtomic', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19034,8 +19034,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // gated by `enableBatchEndpoint`. Nested key of an inline block — no // `authorable-surface/` line of its own. 'api/BatchEndpointsConfig:operations.upsertMany', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19054,8 +19054,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // segment; `'query'` was validated against the enum and mounted exactly what // `'path'` mounts. 'api/CrudEndpointsConfig:objectParamStyle', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19077,8 +19077,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // per-operation method/path knob would make every one of them lie. The live // door for a custom path or method is a declarative `api` endpoint. Its value // def `api/CrudEndpointPattern` leaves with it (RETIRED_DEFS_BY_MAJOR[18]); its - // four ledger child rows collapse into the one `patterns` row. Closes #14365's - // question about the record's input type — there is no record left to reshape. + // four ledger child rows collapse into the one `patterns` row. Closes the open + // `z.partialRecord` question (commit f60ab90ae) — there is no record left to reshape. 'api/CrudEndpointsConfig:patterns', // #15677 (stack card 2/6 of #14478) — ruling B: the unit lives in the key NAME. // `DataLoaderConfig.cacheTtl` named seconds only in its describe. Renamed to @@ -19167,7 +19167,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // is HTTP-only — nobody authors a `ListInstalledPackagesRequest` and nothing // persists one. The prescription reaches consumers as the D3 semantic entry // `packages-list-pagination-retired` plus this tombstone, the disposition - // `api/ListNotificationsRequest:cursor` (#6361) already took for the same + // `api/ListNotificationsRequest:cursor` (commit 90bbf2510) already took for the same // shape one route over. 'api/ListInstalledPackagesRequest:limit', // #19543 — ADR-0049 enforce-or-remove (director seat, decision batch #204 @@ -19199,8 +19199,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // D3 semantic entry `automation-runs-cursor-retired` carries the record to // `spec-changes.json`, the generated upgrade guide and `os migrate meta`. 'api/ListRunsRequest:cursor', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19221,8 +19221,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // bound, `-1` accepted — #11984 pinned it as accepted because that was the // contract) dies with the key. 'api/MetadataEndpointsConfig:cacheTtl', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19331,7 +19331,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #11846 / #12428 grading). + // boundary where `migrate meta` users look (the commit 0c2334f6c / #12428 grading). 'api/RestApiEndpoint:handlerStatus', // #15677 (stack card 2/6 of #14478) — ruling B. `RestApiEndpoint.timeout` // (milliseconds) sat THREE LINES above `cacheTtl` (seconds), each unit named @@ -19363,8 +19363,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // local `RouteDefinition` interface for the `ai:routes` hook payload — a // different type, with no duration key at all, and untouched by this rename. 'api/RouteDefinition:timeout', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19384,8 +19384,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `RestServerConfigSchema`'s own `@example` advertised // `routes: { excludeObjects: ['system_log'] }`; corrected in the same change. 'api/RouteGenerationConfig:excludeObjects', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19406,8 +19406,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `enable.apiMethods` → 405), so the capability exists where the contract // belongs and this key was a second, unread dialect of it. 'api/RouteGenerationConfig:includeObjects', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19427,8 +19427,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `name` is the canonical id on every surface including the REST path segment // (Prime Directive #6) — a URL transform would contradict the one-name rule. 'api/RouteGenerationConfig:nameTransform', - // #14691 — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, - // executing the #14369 liveness census (15 `dead` rows across the `crud` / + // Commit b3a63d32c — ADR-0049 enforce-or-remove on the `RestServerConfig` sub-objects, + // executing the liveness census commit a3d5724c8 recorded (15 `dead` rows across the `crud` / // `metadata` / `batch` / `routes` sub-schemas; 0 read sites in `packages/rest` // outside `normalizeConfig` and the normalized-config type; objectui @d4c6a86 // clean; cloud @9b6abe0f2fd5 clean STRUCTURALLY — cloud never authors a @@ -19449,7 +19449,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `enable.apiMethods`); `basePath` per object would contradict the one // deployment-wide data base (`crud.dataPrefix`) the discovery document // advertises. Its three ledger child rows collapse into the one `overrides` - // row. Closes #14365's question about `overrides.*.operations` — no record left. + // row. Closes the `z.partialRecord` question (commit f60ab90ae) on `overrides.*.operations` — no record left. 'api/RouteGenerationConfig:overrides', // #14788 — ADR-0049 enforce-or-remove (maintainer ruling 2026-09-03, option // D). `SessionUserSchema.language` (`api/auth.zod.ts`) was declared with a @@ -19470,7 +19470,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // The schema is a non-strict `z.object`, so the route is a `retiredKey()` // tombstone (a bare delete would strip the key silently, ADR-0104). A RESPONSE // surface — the server mints a `SessionUser` and nobody authors or persists @@ -19767,7 +19767,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // `MetricSchema` is `strictObject`, so the route is strict deletion + a // `guidance` entry carrying the prescription (no retiredKey tombstone — the // key is out of the walked shape entirely). Sources are rewritten by the D2 @@ -19953,7 +19953,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // boundary where `migrate meta` users look — the disposition // `18.integration__Connector__errorMapping.ts` records for the same schema. 'integration/Connector:connectionTimeoutMs', - // #14676 — ADR-0049 enforce-or-remove on `ConnectorSchema.errorMapping` (triage + // Commit 13c48c2a5 — ADR-0049 enforce-or-remove on `ConnectorSchema.errorMapping` (triage // ruling 2026-09-02: removal via the `spec-property-retirement` playbook; the // split condition — a downstream consumer in objectui or a customer stack — // measured empty at objectui `0d8fd7c`, hotcrm not measurable). The key carried @@ -20136,7 +20136,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // carry the key — measured, not assumed, before the tombstone landed. // See `18.integration__Connector__connectionTimeoutMs.ts` for the retirement record. 'integration/DeclarativeConnectorEntry:connectionTimeoutMs', - // #14676 — the same tombstone seen through the second carrier. + // Commit 13c48c2a5 — the same tombstone seen through the second carrier. // `DeclarativeConnectorEntrySchema` and `ConnectorSchema` both wrap the shared // private `ConnectorBaseSchema` in the retired-default residue stage, the entry // schema adding the ADR-0097 cross-field rules on the base before wrapping. @@ -20282,7 +20282,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // declaration, and the registration-time refusal in // `HotReloadManager.registerPlugin` is the door for the audience that exists. 'kernel/HotReloadConfig:watchPatterns', - // #11846 — ADR-0049 enforce-or-remove on the preview-mode block (maintainer + // Commit 0c2334f6c — ADR-0049 enforce-or-remove on the preview-mode block (maintainer // ruling 2026-08-27, Option A: remove). The key was declared as an auth bypass // — its docstring promised auto-login as a simulated admin and named a // production guard "the runtime must enforce" — and NOTHING implemented any of @@ -20305,7 +20305,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). 'kernel/KernelContext:previewMode', // #15676 — the epoch-instant half of #14478 ruling B. `KernelContext.startTime` // is the boot INSTANT: it moved onto the shared `EpochMs` schema and was renamed @@ -20336,7 +20336,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `KernelSecurityPolicy` is a plugin security manifest's policy block, never a // stack collection member. See `kernel-plugin-security-durations-unit-in-key`. 'kernel/KernelSecurityPolicy:authentication.tokenExpiration', - // #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead + // Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers (triage graded 2026-08-23; cloud leg measured clean // 2026-08-29 on #12400 with positive controls). The census found ZERO reads // of the `capabilities` container itself in objectstack, objectui and cloud, @@ -20364,7 +20364,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // and through the D3 semantic entry // `plugin-manifest-dead-containers-retired`. 'kernel/Manifest:capabilities', - // #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead + // Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers; census and registration major recorded once in the // sibling entry `kernel/Manifest:capabilities`, the why-no-D2-conversion // reasoning in `kernel/Manifest:loading` (the precedent); the D3 semantic @@ -20380,7 +20380,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // composition: the options object passed to the plugin's constructor in // `defineStack({ plugins: [new MyPlugin({ … })] })`. 'kernel/Manifest:configuration', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20391,7 +20391,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // working surfaces are the stack `actions` collection (METADATA_ARRAY_KEYS, // registered by the engine) and `engine.registerAction`. 'kernel/Manifest:contributes.actions', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20404,7 +20404,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // "The `objectstack.config.ts` plugins array no longer determines CLI // commands"). 'kernel/Manifest:contributes.commands', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20416,9 +20416,9 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `registerDriver` on it); the only in-repo author (driver-memory) was // registered that way, not by its declaration. 'kernel/Manifest:contributes.drivers', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block (triage graded 2026-08-21; cloud leg measured clean 2026-08-24). One - // of NINE members tombstoned together: #10627 measured exactly ONE non-test + // of NINE members tombstoned together: that commit's census measured exactly ONE non-test // read of `manifest.contributes` monorepo-wide (engine.ts, member `kinds`), // with controls, re-verified across objectstack + objectui + cloud at claim // time. `events` in particular was decorative twice over: its only in-repo @@ -20438,7 +20438,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `os plugin build` → `ManifestSchema.safeParse` and through the D3 semantic // entry `plugin-manifest-contributes-dead-members-retired`. 'kernel/Manifest:contributes.events', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20449,7 +20449,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // there is no `registerFieldType` seam anywhere — zero hits monorepo-wide. // The field-type vocabulary is the spec `FieldType` enum. 'kernel/Manifest:contributes.fieldTypes', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20486,7 +20486,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `os plugin build` → `ManifestSchema.safeParse` and through the D3 semantic // entry `plugin-manifest-kind-globs-retired`. 'kernel/Manifest:contributes.kinds.globs', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20499,8 +20499,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `navigation` / `manifest.navigationContributions` (ADR-0029 D7), which the // engine registers. 'kernel/Manifest:contributes.menus', - // #10726 — ADR-0049 enforce-or-remove fork on `contributes.routes`, the ONE - // `contributes` member deliberately excluded from #10724's nine-member + // Commit bc56e1881 — ADR-0049 enforce-or-remove fork on `contributes.routes`, the ONE + // `contributes` member deliberately excluded from commit be21955ba's nine-member // retirement because removing it needed a ruling, not a tombstone: the key // was the only DECLARED channel for a real capability (serving a code-handler // endpoint), and four published surfaces — a customer-published skill among @@ -20508,8 +20508,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // (「接受所有」 on the decision batch carrying the four-axis analysis): remove // the key; author-facing materials redirect to the imperative `http.server` // mount, the form that actually works. The ruling's cloud precondition was - // discharged 2026-08-24 (#10812: cloud @ 5b5925a, zero `manifest.contributes` - // reads, controls green), completing #10627's three-repo census at exactly + // discharged 2026-08-24 (the cloud census: cloud @ 5b5925a, zero `manifest.contributes` + // reads, controls green), completing commit be21955ba's three-repo census at exactly // one live read (engine.ts, member `kinds` — now the block's sole survivor). // // Registered under 18, not 17: v17.0.0 was cut before this landed, so the @@ -20524,7 +20524,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `os plugin build` → `ManifestSchema.safeParse` and through the D3 semantic // entry `plugin-manifest-contributes-routes-retired`. 'kernel/Manifest:contributes.routes', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20537,7 +20537,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // stack-level theme hits reach the registry through top-level metadata // collections, never through `contributes.themes`. 'kernel/Manifest:contributes.themes', - // #10724 — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` + // Commit be21955ba — ADR-0049 enforce-or-remove on the plugin manifest's `contributes` // block; one of NINE members tombstoned together. Census, registration major, // and the why-no-D2-conversion reasoning are recorded once in the sibling // entry `kernel/Manifest:contributes.events` (this family) and in @@ -20549,7 +20549,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // `translations` collection (`defineTranslationBundle`), governed by // `packages/spec/liveness/translation.json`. 'kernel/Manifest:contributes.translations', - // #11332 — ADR-0049 enforce-or-remove on the plugin manifest's three dead + // Commit dce5cd4f0 — ADR-0049 enforce-or-remove on the plugin manifest's three dead // top-level containers; census and registration major recorded once in the // sibling entry `kernel/Manifest:capabilities`, the why-no-D2-conversion // reasoning in `kernel/Manifest:loading` (the precedent); the D3 semantic @@ -20624,8 +20624,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // metadata-manager config is not a stack collection member. D3 semantic entry: // `metadata-manager-config-inert-cache-keys-retired`. 'kernel/MetadataManagerConfig:cache.ttlSeconds', - // #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on - // #12057, adopting retirement; re-charter #13135 executes the widened + // Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on + // #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `persistence.overlayWritable` gated exactly one method — // `MetadataManager.saveOverlay()` — which belonged to the paper // metadata-customization protocol removed whole in the same change: no route @@ -20658,7 +20658,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // // Registered here but NOT in `src/conversions/registry.ts`, for the reason // `kernel/Manifest:loading` gives: the conversion chain walks a normalized @@ -20670,8 +20670,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // The prescription reaches authors through the tombstone (`tsc` + the parse) // and the D3 semantic entry `metadata-plugin-additional-types-retired`. 'kernel/MetadataPluginConfig:additionalTypes', - // #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on - // #12057, adopting retirement; re-charter #13135 executes the widened + // Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on + // #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `customizationPolicies` embedded the paper metadata-customization // protocol's `CustomizationPolicySchema` (lockedFields / customizableFields // whitelists) and was read by NOTHING: no code ever consulted a policy before @@ -20698,8 +20698,8 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // through the tombstone (`tsc` + the parse) and the D3 semantic entry // `metadata-customization-protocol-retired`. 'kernel/MetadataPluginConfig:customizationPolicies', - // #13135 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on - // #12057, adopting retirement; re-charter #13135 executes the widened + // Commit 9e0ba21a1 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-29 on + // #12057, adopting retirement; re-chartered, that commit executes the widened // surface). `mergeStrategy` embedded the paper protocol's // `MergeStrategyConfigSchema` (keep-custom / accept-incoming / // three-way-merge) and was read by NOTHING: no 3-way merge engine ever @@ -21124,7 +21124,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // conversion: the result is EMITTED at the end of a boot, never authored. See // `kernel-startup-orchestrator-durations-unit-in-key`. 'kernel/StartupOrchestrationResult:totalDuration', - // #11846 — the `TenantRuntimeContextSchema` copy of + // Commit 0c2334f6c — the `TenantRuntimeContextSchema` copy of // `kernel/KernelContext:previewMode`: the def is `KernelContextSchema.extend(…)`, // so the tombstone lands in this walked shape too and `authorable-surface/` // marks it `[RETIRED]` separately. Registered per key, as gate (b) reads them — @@ -21213,7 +21213,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // ObjectPermissionSchema is `strictObject` but the def is reachable from the // `permission` metadata root, so the route is the `retiredKey()` tombstone // (the `rls.priority` posture) — the key stays in the walked shape as @@ -21244,7 +21244,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // ObjectPermissionSchema is `strictObject` but the def is reachable from the // `permission` metadata root, so the route is the `retiredKey()` tombstone // (the `rls.priority` posture) — the key stays in the walked shape as @@ -22117,7 +22117,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22139,7 +22139,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22161,7 +22161,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22183,7 +22183,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22205,7 +22205,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22227,7 +22227,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-filter-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22251,7 +22251,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22275,7 +22275,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22299,7 +22299,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22323,7 +22323,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22347,7 +22347,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22371,7 +22371,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstones ship 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `element-form-removed`, which // strips all six keys and leaves the bare node — which the parse then refuses // by name (`RETIRED_PAGE_COMPONENT_TYPES`), with the prescription to delete the @@ -22392,7 +22392,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion // `element-input-target-variable-removed`. 'ui/ElementRecordPickerProps:targetVariable', @@ -22414,7 +22414,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion // `element-input-target-variable-removed` (a page component IS a stack // collection member, unlike the `kernel/Manifest:loading` family). @@ -22492,7 +22492,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent, + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666, // as `data/Metric:filters` before it). Tombstoned with `retiredKey()` in // `ObjectGridPropsSchema` (the surface baseline line carries `[RETIRED]`); // sources are rewritten by the D2 conversion `object-grid-default-sort-removed` @@ -22593,7 +22593,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // Registered under 18, not 17: v17.0.0 was cut before this landed, so the // tombstone 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // Sources are rewritten by the D2 conversion `page-component-responsive-removed`. 'ui/PageComponent:responsive', // #10054 — ADR-0049 enforce-or-remove (maintainer ruling 2026-08-21, executing @@ -22616,7 +22616,7 @@ export const RETIRED_KEYS_BY_MAJOR: Readonly> // 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 #8495 / PR #8666 precedent). + // boundary where `migrate meta` users look (the precedent of commit 4bfe1a539, PR #8666). // The object arm is `strictObject`, so the route is strict deletion + a // `guidance` entry carrying the prescription (no retiredKey tombstone — the // key is out of the walked shape entirely, and the refusal is the arm's own @@ -22832,7 +22832,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // entry id by `gen:migration-registry` (#7297). Add an entry by adding a // FILE — never by editing between the markers, which is generated. // - // #6239 — api/protocol.zod.ts view-management operations + // Commit f549a0d4a — api/protocol.zod.ts view-management operations 'api/CreateViewRequest', 'api/CreateViewResponse', 'api/DeleteViewRequest', @@ -22994,7 +22994,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // conversion — this table plus the D3 semantic entry // `export-job-family-retired` are the declaration. 'api/CreateExportJobResponse', - // #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 @@ -23114,8 +23114,8 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // See `18.api__ListFlowsRequest.ts` and the D3 semantic entry // `automation-flow-list-route-retired` for the record. 'api/ListFlowsResponse', - // #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 @@ -23135,11 +23135,11 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'api/MetadataEffectiveResponse', - // #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 @@ -23158,11 +23158,11 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'api/MetadataOverlayResponse', - // #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 @@ -23180,7 +23180,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'api/MetadataOverlaySaveRequest', // #12038 — `api/package-api.zod.ts` `PackageRollbackResponseSchema`, retired @@ -23195,7 +23195,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // §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. @@ -23203,7 +23203,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'api/PackageRollbackResponse', // #13823 — `api/RouteCoverageEntry` (one declared endpoint's coverage row: // `path` / `method` / `category` / `handlerStatus` / `service` / @@ -23580,7 +23580,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // the cloud repo's own declarations, not an open-source protocol). Prescription: the // `cloud-subpath-retired` semantic entry of this major. 'cloud/VersionRelease', - // #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 @@ -23613,7 +23613,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // deliberately exempts. See `retired-keys/18.integration__Connector__health.ts` // for the retirement record. 'integration/CircuitBreakerConfig', - // #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 @@ -23651,7 +23651,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // `retired-keys/18.integration__Connector__triggers.ts` for the retirement // record. 'integration/ConnectorTrigger', - // #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 @@ -23663,7 +23663,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // no default). See `retired-keys/18.integration__Connector__errorMapping.ts` // for the retirement record. 'integration/ErrorMappingConfig', - // #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 @@ -23739,7 +23739,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // (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 @@ -23760,8 +23760,8 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // narrowings ride minor releases) and the prescription lives at the major // boundary where `migrate meta` users look (the #8586 / PR #8702 precedent). 'kernel/CLICommandContribution', - // #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 @@ -23779,11 +23779,11 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/CustomizationOrigin', - // #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 @@ -23803,7 +23803,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/CustomizationPolicy', // #12340 — kernel/plugin-lifecycle-advanced.zod.ts @@ -23842,8 +23842,8 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // receive a parse-time tombstone. This table plus the D3 semantic entry // `hot-reload-inert-state-strategies-retired` ARE the declaration. 'kernel/DistributedStateConfig', - // #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 @@ -23864,7 +23864,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/FieldChange', // #11825 — `kernel/GracefulDegradation` left with @@ -23948,8 +23948,8 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // module `kernel/plugin-security.zod.ts`. Those are separate defs with their own // self-test and are outside this ruling. 'kernel/KernelSecurityVulnerability', - // #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 @@ -23967,11 +23967,11 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/MergeConflict', - // #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 @@ -23989,11 +23989,11 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/MergeResult', - // #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 @@ -24015,7 +24015,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/MergeStrategyConfig', // #14180 — kernel/cluster.zod.ts `MetadataChangeOperationSchema` / @@ -24073,8 +24073,8 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // narrowings ride minor releases) and the prescription lives at the major // boundary where `migrate meta` users look. 'kernel/MetadataChangedEventPayload', - // #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 @@ -24096,7 +24096,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/MetadataOverlay', // #11825 — `kernel/PluginUpdateStrategy` left with @@ -24115,7 +24115,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // implementation first. See `18.kernel__AdvancedPluginLifecycleConfig.ts` // for the family record. 'kernel/PluginUpdateStrategy', - // #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 @@ -24130,7 +24130,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'kernel/PreviewModeConfig', // #16059 — `StartupOptionsSchema` (`timeoutMs`, `rollbackOnFailure`, @@ -24174,7 +24174,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'shared/EventName', // #13612 — ADR-0049 enforce-or-remove (maintainer ruling 2026-09-01, director // batch C: retire; binding was weighed and not adopted). One of the six @@ -24209,7 +24209,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'shared/ObjectName', // #13612 — ADR-0049 enforce-or-remove (maintainer ruling 2026-09-01, director @@ -24701,7 +24701,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // entries stay as history — gate (b2) of build-schemas.ts accepts an entry // naming a key the build no longer emits. 'system/TrainingRecord', - // #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. @@ -24727,7 +24727,7 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // with no consumer reads as a capability). See `18.ui__ResponsiveConfig.ts` // for the retirement record and the measurement. 'ui/BreakpointOrderMap', - // #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. @@ -24744,12 +24744,12 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // which stays. The Tailwind-style layout vocabulary returns if and when a // renderer implements it — in one change, with the engine (the #4834 rule). 'ui/ResponsiveConfig', - // #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. 'ui/Shadow', - // #10485 — `ui/theme.zod.ts` `ThemeSchema`, retired whole with its + // Commit 35ad101bc — `ui/theme.zod.ts` `ThemeSchema`, retired whole with its // `defineStack({ themes })` carrier key (ADR-0049 enforce-or-remove; // maintainer ruling 2026-08-21, disposition B: 退役授权面 — `app.branding` // stays the one colour surface; objectui's ThemeEngine/ThemeContext and their @@ -24765,14 +24765,14 @@ export const RETIRED_DEFS_BY_MAJOR: Readonly> // 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). 'ui/Theme', - // #10485 — `ui/ThemeMode` (the theme mode enum (light/dark/auto)) left with `ui/Theme`: + // Commit 35ad101bc — `ui/ThemeMode` (the theme mode enum (light/dark/auto)) 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. 'ui/ThemeMode', - // #10485 — `ui/Typography` (the typography sub-block) left with `ui/Theme`: + // Commit 35ad101bc — `ui/Typography` (the typography 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.