Repository navigation
fix(metadata-protocol)!: the save door refuses a hook that names a function in handler and carries no body (#21658)
#30739
pr-automation.yml
on: pull_request
Check PR Size
21s
Check Changeset
1m 3s
Auto Label
9s
Annotations
4 notices
|
Check PR Size
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
Auto Label
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
Check Changeset:
.changeset/21658-hook-handler-without-body-save-door.md#L0
ADR-0087 exemption (no-migration-prescription): A validity narrowing at one runtime write door over an existing key: no key of `HookSchema` or of any other metadata schema is removed, renamed or re-shaped, so there is no tombstone and nothing mechanical for `objectstack migrate meta` to rewrite. What `body` a refused hook should carry is authoring intent no conversion entry can decide. New saves are refused with the remedy; a row stored before this change keeps its bytes, and no stored row is re-saved (measured: `migrateStoredMetadata` records such a row canonical and writes nothing). The census of writers through this door, taken first: Studio at the objectui pin (`ab18797215`) creates a hook from a skeleton that carries a `body` and re-saves the body it lists (`ObjectHooksPanel`); objectstack `examples/**` and `packages/qa/**` declare no hook with a string `handler` (the only string `handler` there is a job's) and seed no `sys_metadata` hook rows; the platform checklist saves no such hook; the artifact, boot and install-local doors never call `saveMetaItem` for a hook (every call site in the tree saves a fixed type other than `hook`, or forwards an author's request: the REST and dispatcher `/meta` saves, `migrateStoredMetadata`, `duplicatePackage`). Package duplication of a package holding such a row now reports that row as failed with this refusal (measured). Hosted tenants and the cloud AI author were not measured. The other categories are closed on facts: the package publishes (not unpublished); no ADR-0087 id covers this rule and this diff adds none (not registered / already-registered); and the change narrows what a runtime write door accepts, not a runtime interface or a type surface alone (not runtime-interface-only / type-surface-only).
|
|
Check Changeset
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|