Minor Changes
-
#1126
cf3c706Thanks @ascorbic! - Addsemdash-plugin update-package, a CLI command for editing an already-published plugin's registry record (license, authors, security contacts, name, description, keywords) without cutting a new release. Without--yesit prints a diff and exits without writing; with--yesit writes the updated record to the publisher's PDS using atproto'sswapRecordprecondition (concurrent writes surface asSTALE_RECORDinstead of silently overwriting each other) and bumpslastUpdated. Optional fields use a "manifest absent = no change" policy: removing a key from the manifest doesn't wipe the published value, matchingpublishsemantics. Renaming a plugin via the manifest now surfaces a "looks like a rename" message listing the publisher's existing packages instead of a generic not-found, so publishers don't accidentally orphan releases under the old slug.The publishing client (
@emdash-cms/registry-client) gains aswapRecordparameter onputRecordandunsafePutRecordfor callers needing optimistic-concurrency writes.
Patch Changes
- #1145
463c7a2Thanks @ascorbic! - Refactors the build pipeline's runtime validation of the probed plugin's
default export to use a Zod schema. Error messages keep the same format
(hook "X" must be a function or { handler, ... },hook "X" has invalid FIELD VALUE (...)). Exotic-object entries (Date, RegExp,
Promise, class instances) now produce the wrong-shape error instead of
falling through to a misleading "missing handler" error. BigInt /
cyclic-object / function / symbol field values are rendered safely in
error messages instead of crashing with a TypeError. - Updated dependencies [
cf3c706]:- @emdash-cms/registry-client@0.2.0