You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No replacement exists, and none is coming: an `os migrate notification-event`
23
+
sub-command was considered and refused. Delete the call. The compiler delivers
24
+
this one: the import fails to resolve.
25
+
-`SysNotificationMigrationResult`, `SysNotificationMigrationOptions` and
26
+
`SysNotificationMigrationReceipt` (same entry point) — deleted with it. They
27
+
described that runner's own result, options and receipt and nothing else.
28
+
-`CREATION_ATTESTED_MIGRATION_IDS` (`@objectstack/spec/system`) — was a
29
+
three-member tuple and is now a two-member one holding
30
+
`'adr-0104-file-references'` and `'adr-0104-value-shapes'`. Both ADR-0104 ids
31
+
keep their sub-commands, their receipt rows and their birth attestation; only
32
+
the notification id left. Code typed against
33
+
`(typeof CREATION_ATTESTED_MIGRATION_IDS)[number]` that names the notification
34
+
id no longer compiles — delete that arm.
35
+
36
+
`NOTIFICATION_EVENT_MIGRATION_ID` (`@objectstack/spec/system`) is **kept**. A
37
+
deployment attested at birth, or one that made the operator call while the runner
38
+
shipped, still holds a `sys_migration` row keyed `'adr-0030-notification-event'`,
39
+
and the constant is that row's name. Nothing writes or reads a row under it any
40
+
more — `attestFreshDatastore` no longer includes it — and it is not a
41
+
registration: it gates nothing and never did.
42
+
43
+
## Reversal path
44
+
45
+
Two answers were considered and both refused: an `os migrate notification-event`
46
+
sub-command is a permanent operator surface for a migration with no measured
47
+
demand, and a boot-time invoker is an unattended data rewrite nobody asked for.
48
+
⚠️ Nobody has measured whether any live deployment carries pre-ADR-0030
49
+
`sys_notification` rows. If a **named** deployment turns out to hold rows it
50
+
needs, the migration returns as an operator-runnable sub-command shaped exactly
51
+
like `files-to-references` / `value-shapes` — dry-run default, `--apply` gate,
52
+
documented consequence — under its own card.
53
+
54
+
<!-- adr-0087: not-required (no-migration-prescription) Nothing authorable moves and nothing is renamed: no spec key, no config field, no stored-metadata shape, and no replacement spelling for anyone to adopt. The removed surfaces are one runtime function on `@objectstack/metadata/migrations`, its three own result/option/receipt types, and one member of a constant tuple — none of which appears in any authorable document, so `objectstack migrate meta` has nothing it could rewrite and a ledger entry would prescribe a rewrite that does not exist. The consumer-side action is a deletion, delivered by the compiler on the import and by the barrel tombstone beside it. -->
0 commit comments