Skip to content

Commit f11b5f2

Browse files
fix(spec): os migrate meta guidance for fourteen more migration-entry families states each lesson in words, not tracker numbers (stage 7) (#20568)
Part of #20233 Stage 7: the actor-, hot-, external-, query-, delete-, etl-, storage-, apimethod-, dashboard-, notification-, record-, runtime-, rls- and scim- families. Clause-②: no Text only. In these families' ADR-0087 semantic entries, the `reason` / `replacement` / `acceptanceCriteria` prose that `os migrate meta` prints now states in words what each cited ruling, measurement or fix decided, instead of a tracker number (form D, ruling C+D `5749154545`). ADR ids stay. No entry `id`, `from` / `to`, conversion or matcher changes. - The stage-6 carry-over: `18.rest-api-endpoint-handler-status-retired` names the API skill. - `packages/cli/test/migrate-meta-engine-guidance.test.ts` adds the fourteen families to `COVERED_PREFIXES`; its `REWRITTEN` floor rises to 174. - `registry.ts`, `spec-changes.json` and `docs/protocol-upgrade-guide.md` are regenerated. - `patch` changeset. The census, the text-only proof, the ablation and the test runs are in the dev report on #20233 (`5883241063`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent f572a7e commit f11b5f2

33 files changed

Lines changed: 522 additions & 319 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
fix(spec): `os migrate meta` guidance for the `actor-*`, `hot-*`, `external-*`, `query-*`, `delete-*`, `etl-*`, `storage-*`, `apimethod-*`, `dashboard-*`, `notification-*`, `record-*`, `runtime-*`, `rls-*` and `scim-*` migration entries states each lesson in words instead of citing tracker numbers
6+
7+
Clause-②: no
8+
9+
The ADR-0087 semantic entries of the `actor-*` family (the retired `ctx.user.roles` alias),
10+
the `hot-*` family (the inert `'disk'` / `'distributed'` state strategies and the file-watch
11+
placeholder), the `external-*` family (the retired external-lookup and message-queue
12+
schemas), the `query-*` family (the retired `QueryAST` request members and aggregation
13+
functions), the `delete-*` family (the retired by-id repoint in a `beforeDelete` hook), the
14+
`etl-*` family (the retired ETL pipeline layer), the `storage-*` family (the retired
15+
single-argument `IStorageService.list`), the `apimethod-*` family (the `apiMethods` enum
16+
shrunk to six primitives), the `dashboard-*` family (the `compareTo` offset, the page-only
17+
modal target, the chart-config structure refusal, the single-measure metric tile and the
18+
funnel-only `stageOrder`), the `notification-*` family (the retired inbox cursor), the
19+
`record-*` family (the object-form detail sections and the converged chatter position), the
20+
`runtime-*` family (the retired `HttpServer` wrapper), the `rls-*` family (the refused array
21+
comparand, cross-class field comparison and stored-list ordering in row-level predicates)
22+
and the `scim-*` family (the retired `sys_scim_provider` object) are printed by
23+
`os migrate meta` as the header, `why:` and `verify:` lines of a manual change. Their text
24+
sent the reader to issue-tracker, pull-request and decision-batch numbers — some of which no
25+
longer resolve, and some in another repository — for what a ruling, measurement or fix had
26+
decided; it now says what was decided, in the sentence being read. ADR ids are kept. One
27+
entry of another family is corrected in the same way: `rest-api-endpoint-handler-status-retired`
28+
now names the API skill, whose factual sweep corrected the `handlerStatus` sentence, instead
29+
of the automation skill.
30+
31+
Text only: no entry id, `from` / `to`, conversion or matching logic changes, and the chain
32+
rewrites exactly what it rewrote before. No `surface` changes. The generated migration
33+
registry, `spec-changes.json` and the protocol upgrade guide carry the same text.

‎docs/protocol-upgrade-guide.md‎

Lines changed: 25 additions & 25 deletions
Large diffs are not rendered by default.

‎packages/cli/test/migrate-meta-engine-guidance.test.ts‎

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
* `kernel-*`, `system-*`, `datasource-*`, `filter-*`, `action-*`, `data-*`,
77
* `element-*`, `field-*`, `export-*`, `api-*`, `dataset-*`, `hook-*`,
88
* `metadata-*`, `rest-*`, `analytics-*`, `view-*`, `package-*`, `object-*`,
9-
* `sharing-*`, `audit-*`, `flow-*`, `http-*`, `inline-*`) states each lesson in
10-
* words and carries no tracker number.
9+
* `sharing-*`, `audit-*`, `flow-*`, `http-*`, `inline-*`, `actor-*`, `hot-*`,
10+
* `external-*`, `query-*`, `delete-*`, `etl-*`, `storage-*`, `apimethod-*`,
11+
* `dashboard-*`, `notification-*`, `record-*`, `runtime-*`, `rls-*`, `scim-*`)
12+
* states each lesson in words and carries no tracker number.
1113
*
1214
* ## What this pins
1315
*
@@ -82,6 +84,9 @@ const COVERED_PREFIXES = [
8284
'field-', 'export-', 'api-', 'dataset-', 'hook-', 'metadata-',
8385
'rest-', 'analytics-', 'view-', 'package-', 'object-', 'sharing-',
8486
'audit-', 'flow-', 'http-', 'inline-',
87+
'actor-', 'hot-', 'external-', 'query-', 'delete-', 'etl-', 'storage-',
88+
'apimethod-', 'dashboard-', 'notification-', 'record-', 'runtime-', 'rls-',
89+
'scim-',
8590
];
8691

8792
/**
@@ -95,6 +100,7 @@ const REWRITTEN = [
95100
'action-descriptor-resume-authority-default-flip',
96101
'action-engine-facade-find-query-envelope',
97102
'action-session-roles-to-positions',
103+
'actor-user-roles-to-positions',
98104
'analytics-authorable-unknown-keys-refused',
99105
'analytics-date-range-array-two-bounds-required',
100106
'analytics-query-request-envelope-retired',
@@ -103,8 +109,14 @@ const REWRITTEN = [
103109
'api-error-retry-after-unit-in-key',
104110
'api-runtime-config-durations-unit-in-key',
105111
'api-runtime-create-withdrawn',
112+
'apimethod-enum-shrink',
106113
'audit-log-action-enum-retired',
107114
'audit-log-action-restore-retired',
115+
'dashboard-header-modal-target-page-only',
116+
'dashboard-widget-chart-config-structure-refused',
117+
'dashboard-widget-compareto-offset',
118+
'dashboard-widget-metric-family-multi-measure-refused',
119+
'dashboard-widget-stage-order-non-funnel-refused',
108120
'data-driver-find-stream-retired',
109121
'data-driver-query-omit-object',
110122
'data-engine-batch-retired',
@@ -122,6 +134,7 @@ const REWRITTEN = [
122134
'datasource-config-url-userinfo-refused',
123135
'datasource-credentialsref-mongo-composed-no-username-refused',
124136
'datasource-credentialsref-mongo-url-no-user-refused',
137+
'delete-by-id-before-hook-repoint-retired',
125138
'driver-aggregate-undeclared-key-aliases-removed',
126139
'driver-capabilities-inert-bits-removed',
127140
'driver-options-timeout-to-timeout-ms',
@@ -137,9 +150,11 @@ const REWRITTEN = [
137150
'engine-find-formula-filter-refused',
138151
'engine-find-formula-order-by-refused',
139152
'engine-update-upsert-retired',
153+
'etl-pipeline-layer-retired',
140154
'export-axis-opt-in',
141155
'export-field-meta-constraints-retired',
142156
'export-job-family-retired',
157+
'external-lookup-message-queue-families-retired',
143158
'field-currency-scale-refused',
144159
'field-max-length-malformed-or-misplaced-refused',
145160
'field-min-length-malformed-or-misplaced-refused',
@@ -166,6 +181,8 @@ const REWRITTEN = [
166181
'hook-context-session-roles-retired',
167182
'hook-register-empty-object-target-refused',
168183
'hook-register-undispatched-lifecycle-event-refused',
184+
'hot-reload-inert-state-strategies-retired',
185+
'hot-reload-watch-placeholder-retired',
169186
'http-request-errors-total-retired',
170187
'http-server-runtime-vocabulary-retired',
171188
'inline-grid-column-currency-scale-refused',
@@ -183,6 +200,7 @@ const REWRITTEN = [
183200
'metadata-manager-config-cache-ttl-unit-in-key',
184201
'metadata-manager-config-inert-cache-keys-retired',
185202
'metadata-plugin-additional-types-retired',
203+
'notification-list-cursor-retired',
186204
'object-block-sort-item-array',
187205
'object-grid-data-view-data-converged',
188206
'object-grid-default-filters-rule-array',
@@ -201,12 +219,26 @@ const REWRITTEN = [
201219
'plugin-runtime-family-retired',
202220
'plugin-security-scan-result-surface-retired',
203221
'plugin-security-scanner-retired',
222+
'query-array-string-agg-retired',
223+
'query-cursor-retired',
224+
'query-distinct-retired',
225+
'query-field-node-object-form-retired',
226+
'query-joins-retired',
227+
'query-window-functions-retired',
228+
'record-chatter-position-vocabulary-converged',
229+
'record-details-sections-object-form',
204230
'rest-api-endpoint-handler-status-retired',
205231
'rest-api-plugin-durations-unit-in-key',
206232
'rest-server-config-dead-keys-retired',
207233
'rest-server-openapi31-block-removed',
234+
'rls-predicate-array-comparand-refused',
235+
'rls-predicate-cross-class-field-comparison-refused',
236+
'rls-predicate-stored-list-ordering-refused',
237+
'runtime-httpserver-wrapper-retired',
238+
'scim-provider-object-retired',
208239
'sharing-execution-context-retired',
209240
'sharing-rule-recipient-reconcile',
241+
'storage-service-list-retired',
210242
'system-cache-durations-unit-in-key',
211243
'system-collaboration-durations-unit-in-key',
212244
'system-failover-health-check-interval-unit-in-key',

0 commit comments

Comments
 (0)