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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
'@objectstack/spec': patch
---

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

Clause-②: no

The ADR-0087 semantic entries of the `actor-*` family (the retired `ctx.user.roles` alias),
the `hot-*` family (the inert `'disk'` / `'distributed'` state strategies and the file-watch
placeholder), the `external-*` family (the retired external-lookup and message-queue
schemas), the `query-*` family (the retired `QueryAST` request members and aggregation
functions), the `delete-*` family (the retired by-id repoint in a `beforeDelete` hook), the
`etl-*` family (the retired ETL pipeline layer), the `storage-*` family (the retired
single-argument `IStorageService.list`), the `apimethod-*` family (the `apiMethods` enum
shrunk to six primitives), the `dashboard-*` family (the `compareTo` offset, the page-only
modal target, the chart-config structure refusal, the single-measure metric tile and the
funnel-only `stageOrder`), the `notification-*` family (the retired inbox cursor), the
`record-*` family (the object-form detail sections and the converged chatter position), the
`runtime-*` family (the retired `HttpServer` wrapper), the `rls-*` family (the refused array
comparand, cross-class field comparison and stored-list ordering in row-level predicates)
and the `scim-*` family (the retired `sys_scim_provider` object) are printed by
`os migrate meta` as the header, `why:` and `verify:` lines of a manual change. Their text
sent the reader to issue-tracker, pull-request and decision-batch numbers — some of which no
longer resolve, and some in another repository — for what a ruling, measurement or fix had
decided; it now says what was decided, in the sentence being read. ADR ids are kept. One
entry of another family is corrected in the same way: `rest-api-endpoint-handler-status-retired`
now names the API skill, whose factual sweep corrected the `handlerStatus` sentence, instead
of the automation skill.

Text only: no entry id, `from` / `to`, conversion or matching logic changes, and the chain
rewrites exactly what it rewrote before. No `surface` changes. The generated migration
registry, `spec-changes.json` and the protocol upgrade guide carry the same text.
50 changes: 25 additions & 25 deletions docs/protocol-upgrade-guide.md

Large diffs are not rendered by default.

36 changes: 34 additions & 2 deletions packages/cli/test/migrate-meta-engine-guidance.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
* `kernel-*`, `system-*`, `datasource-*`, `filter-*`, `action-*`, `data-*`,
* `element-*`, `field-*`, `export-*`, `api-*`, `dataset-*`, `hook-*`,
* `metadata-*`, `rest-*`, `analytics-*`, `view-*`, `package-*`, `object-*`,
* `sharing-*`, `audit-*`, `flow-*`, `http-*`, `inline-*`) states each lesson in
* words and carries no tracker number.
* `sharing-*`, `audit-*`, `flow-*`, `http-*`, `inline-*`, `actor-*`, `hot-*`,
* `external-*`, `query-*`, `delete-*`, `etl-*`, `storage-*`, `apimethod-*`,
* `dashboard-*`, `notification-*`, `record-*`, `runtime-*`, `rls-*`, `scim-*`)
* states each lesson in words and carries no tracker number.
*
* ## What this pins
*
Expand Down Expand Up @@ -82,6 +84,9 @@ const COVERED_PREFIXES = [
'field-', 'export-', 'api-', 'dataset-', 'hook-', 'metadata-',
'rest-', 'analytics-', 'view-', 'package-', 'object-', 'sharing-',
'audit-', 'flow-', 'http-', 'inline-',
'actor-', 'hot-', 'external-', 'query-', 'delete-', 'etl-', 'storage-',
'apimethod-', 'dashboard-', 'notification-', 'record-', 'runtime-', 'rls-',
'scim-',
];

/**
Expand All @@ -95,6 +100,7 @@ const REWRITTEN = [
'action-descriptor-resume-authority-default-flip',
'action-engine-facade-find-query-envelope',
'action-session-roles-to-positions',
'actor-user-roles-to-positions',
'analytics-authorable-unknown-keys-refused',
'analytics-date-range-array-two-bounds-required',
'analytics-query-request-envelope-retired',
Expand All @@ -103,8 +109,14 @@ const REWRITTEN = [
'api-error-retry-after-unit-in-key',
'api-runtime-config-durations-unit-in-key',
'api-runtime-create-withdrawn',
'apimethod-enum-shrink',
'audit-log-action-enum-retired',
'audit-log-action-restore-retired',
'dashboard-header-modal-target-page-only',
'dashboard-widget-chart-config-structure-refused',
'dashboard-widget-compareto-offset',
'dashboard-widget-metric-family-multi-measure-refused',
'dashboard-widget-stage-order-non-funnel-refused',
'data-driver-find-stream-retired',
'data-driver-query-omit-object',
'data-engine-batch-retired',
Expand All @@ -122,6 +134,7 @@ const REWRITTEN = [
'datasource-config-url-userinfo-refused',
'datasource-credentialsref-mongo-composed-no-username-refused',
'datasource-credentialsref-mongo-url-no-user-refused',
'delete-by-id-before-hook-repoint-retired',
'driver-aggregate-undeclared-key-aliases-removed',
'driver-capabilities-inert-bits-removed',
'driver-options-timeout-to-timeout-ms',
Expand All @@ -137,9 +150,11 @@ const REWRITTEN = [
'engine-find-formula-filter-refused',
'engine-find-formula-order-by-refused',
'engine-update-upsert-retired',
'etl-pipeline-layer-retired',
'export-axis-opt-in',
'export-field-meta-constraints-retired',
'export-job-family-retired',
'external-lookup-message-queue-families-retired',
'field-currency-scale-refused',
'field-max-length-malformed-or-misplaced-refused',
'field-min-length-malformed-or-misplaced-refused',
Expand All @@ -166,6 +181,8 @@ const REWRITTEN = [
'hook-context-session-roles-retired',
'hook-register-empty-object-target-refused',
'hook-register-undispatched-lifecycle-event-refused',
'hot-reload-inert-state-strategies-retired',
'hot-reload-watch-placeholder-retired',
'http-request-errors-total-retired',
'http-server-runtime-vocabulary-retired',
'inline-grid-column-currency-scale-refused',
Expand All @@ -183,6 +200,7 @@ const REWRITTEN = [
'metadata-manager-config-cache-ttl-unit-in-key',
'metadata-manager-config-inert-cache-keys-retired',
'metadata-plugin-additional-types-retired',
'notification-list-cursor-retired',
'object-block-sort-item-array',
'object-grid-data-view-data-converged',
'object-grid-default-filters-rule-array',
Expand All @@ -201,12 +219,26 @@ const REWRITTEN = [
'plugin-runtime-family-retired',
'plugin-security-scan-result-surface-retired',
'plugin-security-scanner-retired',
'query-array-string-agg-retired',
'query-cursor-retired',
'query-distinct-retired',
'query-field-node-object-form-retired',
'query-joins-retired',
'query-window-functions-retired',
'record-chatter-position-vocabulary-converged',
'record-details-sections-object-form',
'rest-api-endpoint-handler-status-retired',
'rest-api-plugin-durations-unit-in-key',
'rest-server-config-dead-keys-retired',
'rest-server-openapi31-block-removed',
'rls-predicate-array-comparand-refused',
'rls-predicate-cross-class-field-comparison-refused',
'rls-predicate-stored-list-ordering-refused',
'runtime-httpserver-wrapper-retired',
'scim-provider-object-retired',
'sharing-execution-context-retired',
'sharing-rule-recipient-reconcile',
'storage-service-list-retired',
'system-cache-durations-unit-in-key',
'system-collaboration-durations-unit-in-key',
'system-failover-health-check-interval-unit-in-key',
Expand Down
Loading
Loading