Skip to content

Commit a8acee2

Browse files
docs(spec): re-anchor the dead tracker citations in conversions/registry.ts and integration/connector.zod.ts to the ADR and commits that decided them (stage 8) (#20690)
Part of #20234 Stage 8: the dead tracker citations in the comments of `packages/spec/src/conversions/registry.ts` and `packages/spec/src/integration/connector.zod.ts` are re-anchored in form C, to the ADR or commit that decided each rule. Only comments change. Clause-②: no 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 35587f7 commit a8acee2

3 files changed

Lines changed: 28 additions & 14 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
Provenance comments in `conversions/registry.ts` and `integration/connector.zod.ts` were re-anchored
6+
7+
Clause-②: no
8+
9+
Thirteen comment and docblock sites in `src/conversions/registry.ts` and
10+
`src/integration/connector.zod.ts` cited tracker numbers that no longer resolve on
11+
GitHub. They now cite the record that decided the matter: ADR-0087's 2026-09-13
12+
addendum for the data-at-rest seams `retiredFromLoadPath` does not hold back, and
13+
otherwise the commit in this repository's history. Comments only: no type, schema,
14+
export, `describe()` text, conversion `summary` or runtime behaviour changes.

‎packages/spec/src/conversions/registry.ts‎

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ function renameVisibilityAlias(
463463
* `visibleWhen` across all layers. Applies to form sections and (recursively
464464
* nested) form fields in every FORM payload {@link mapViewPayloads} reaches —
465465
* `views[].form` / `views[].formViews.*`, a ViewItem record's `config`, and a
466-
* flattened form overlay's top level (#13031). **Live window**: the protocol-15 loader accepts the deprecated
466+
* flattened form overlay's top level (commit b799ac553). **Live window**: the protocol-15 loader accepts the deprecated
467467
* key (the zod schemas also normalize it at parse — this entry makes the
468468
* acceptance *declared, loud, and expiring* per ADR-0087 D2, and will
469469
* graduate into the step-16 chain when the alias is removed).
@@ -2095,8 +2095,8 @@ const toolInertAuthoringKeysRemoved: MetadataConversion = {
20952095
*
20962096
* ⚠️ Fact 2 is about the MECHANISM, not about this entry, and it outlived the
20972097
* entry: `retiredFromLoadPath` still holds nothing back at three runtime seams
2098-
* (#16864). Before setting that flag on a DEFAULT FLIP — as opposed to a
2099-
* lossless delete or a rename — read that card, because the flag does not mean
2098+
* (ADR-0087's 2026-09-13 addendum names all three). Before setting that flag on a DEFAULT FLIP — as opposed to a
2099+
* lossless delete or a rename — read that addendum, because the flag does not mean
21002100
* what its name and every docblock around it say it means.
21012101
*/
21022102

@@ -3368,7 +3368,7 @@ const DATASOURCE_CONFIG_KEY_ALIASES: Readonly<
33683368
'sqlite-wasm': [['file', 'filename'], ['database', 'filename']],
33693369
postgres: [['connectionString', 'url'], ['user', 'username']],
33703370
mysql: [['connectionString', 'url'], ['user', 'username']],
3371-
// `mongodb` since #6345 — the canonical id was renamed from `mongo` so the
3371+
// `mongodb` since commit e2798fab7 — the canonical id was renamed from `mongo` so the
33723372
// contract canon matches what both boot hosts, the driver package and every
33733373
// URL scheme already said. Keyed by the CANONICAL id `resolveDriverId`
33743374
// returns, so a stored `driver: 'mongo'` still lands here through the alias.
@@ -3473,14 +3473,14 @@ const datasourceConfigDriverKeyAliases: MetadataConversion = {
34733473
};
34743474

34753475
/**
3476-
* `datasource.driver: 'mongo'` → `'mongodb'` (protocol 17, #6345).
3476+
* `datasource.driver: 'mongo'` → `'mongodb'` (protocol 17, commit e2798fab7).
34773477
*
34783478
* ## Why a stored value has to move at all
34793479
*
34803480
* `mongo` and `mongodb` have both been accepted spellings since #4410, and both
34813481
* still are — this conversion does NOT rescue a broken boot, and a deployment
34823482
* that never runs it keeps connecting exactly as before. What moved is the
3483-
* CANONICAL id: #6345's ruling renamed it to `mongodb`, the spelling both boot
3483+
* CANONICAL id: commit e2798fab7 landed the ruling that renamed it to `mongodb`, the spelling both boot
34843484
* hosts, the driver package (`@objectstack/driver-mongodb`) and every URL scheme
34853485
* already used, so that the id which selects a driver and the id which selects
34863486
* its config contract are one string with no mapping layer between them.
@@ -7341,12 +7341,12 @@ const translationPerAppSettingsRemoved: MetadataConversion = {
73417341

73427342
/**
73437343
* `translation.pages.<name>.components.<id>.submitLabel` — the component-copy
7344-
* key retired with its only declarer (protocol 18, #10926, ADR-0049).
7344+
* key retired with its only declarer (protocol 18, commit d173125fb, ADR-0049).
73457345
*
73467346
* The face is measured, not mirrored: each copy key exists because some
73477347
* component in `ComponentPropsMap` declares it, and `submitLabel`'s only
73487348
* declarer was `element:form` — retired whole by #9249 (`element-form-removed`
7349-
* above). The maintainer ruled retire over re-anchor (#10926): the live form
7349+
* above). The maintainer ruled retire over re-anchor (2026-08-22, landed as commit d173125fb): the live form
73507350
* surface's submit copy is `object-form`'s `submitText` (`I18nLabelSchema`),
73517351
* localizable at its own authoring site, so re-anchoring would have widened
73527352
* the face for one word. The key, its `submit` alias and its
@@ -8243,7 +8243,7 @@ const recordHighlightsFieldIconRemoved: MetadataConversion = {
82438243
};
82448244

82458245
/**
8246-
* `mapping.fieldMapping[].params` lookup keys removed (#10329, ADR-0049
8246+
* `mapping.fieldMapping[].params` lookup keys removed (commit 15d58dbf1, ADR-0049
82478247
* enforce-or-remove — the sub-walk half of the 17.0.0 #4509 mapping cleanup).
82488248
*
82498249
* `object` / `fromField` / `toField` / `autoCreate` declared a per-entry
@@ -8253,7 +8253,7 @@ const recordHighlightsFieldIconRemoved: MetadataConversion = {
82538253
* `import-coerce.ts` off the TARGET FIELD's own metadata — never off these
82548254
* keys. Implementing them (a second reference-resolution dialect on the import
82558255
* path) is what the code comment in `packages/rest/src/import-mapping.ts`
8256-
* declines to build, and the #10329 triage ruling confirms that posture.
8256+
* declines to build, and the triage ruling commit 15d58dbf1 landed confirms that posture.
82578257
*
82588258
* `autoCreate` was the one with teeth: it read as "create the referenced
82598259
* record when nothing matches", and nothing was ever created — with or without
@@ -8933,7 +8933,7 @@ const permissionAllowRestorePurgeRemoved: MetadataConversion = {
89338933
};
89348934

89358935
/**
8936-
* [#12868] The per-option `default` key leaves the FORM-VIEW options
8936+
* [commit c459da6bc] The per-option `default` key leaves the FORM-VIEW options
89378937
* vocabulary (protocol 18; maintainer-ruled narrowing 2026-08-28 on the
89388938
* objectui#6263 analysis, disposition 甲).
89398939
*
@@ -8951,7 +8951,7 @@ const permissionAllowRestorePurgeRemoved: MetadataConversion = {
89518951
*
89528952
* Walks the same payloads as `view-visibleOn-to-visibleWhen` — every FORM
89538953
* payload {@link mapViewPayloads} reaches, in all three persisted spellings
8954-
* (#13031) — through `sections[]`/`groups[]` and top-level
8954+
* (commit b799ac553) — through `sections[]`/`groups[]` and top-level
89558955
* `fields[]`, recursing into nested `fields` (composite/repeater/record rows
89568956
* carry their own option lists). Only the exact key `default` is stripped —
89578957
* the alias spellings `isDefault`/`selected` were never accepted on this
@@ -9242,7 +9242,7 @@ const fieldReferenceToAlias: MetadataConversion = {
92429242
};
92439243

92449244
/**
9245-
* `connector.errorMapping` removed (protocol 18, #14676 — ADR-0049
9245+
* `connector.errorMapping` removed (protocol 18, commit 13c48c2a5 — ADR-0049
92469246
* enforce-or-remove; triage ruling 2026-09-02, route: removal via the
92479247
* `spec-property-retirement` playbook; the split condition — a downstream
92489248
* consumer in objectui or a customer stack — measured empty at objectui

‎packages/spec/src/integration/connector.zod.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ const ConnectorBaseSchema = lazySchema(() => z.object({
11411141

11421142
// ADR-0010 — runtime protection envelope (internal — set by loader).
11431143
//
1144-
// [#6362, split out of #6245] Declared for the reason `webhook.zod.ts` and
1144+
// [commit b5404f496, the connector half #6245 left] Declared for the reason `webhook.zod.ts` and
11451145
// `sharing.zod.ts` state for their own spreads: BOTH metadata load paths call
11461146
// `applyProtection` on EVERY type, so a package-loaded connector already
11471147
// carries these keys by the time anything re-parses it — and `/meta/connector`

0 commit comments

Comments
 (0)