Releases: fedify-dev/fedify
Fedify 2.1.5
Released on April 8, 2026.
@fedify/fedify
-
Fixed
Context.getActorKeyPairs()assigning the same key ID to both theCryptographicKey(used for HTTP Signatures and Linked Data Signatures) and theMultikey(used for Object Integrity Proofs) within anActorKeyPair. TheMultikeynow receives a distinct ID (#multikey-1,#multikey-2, …) so that the actor document no longer contains two objects sharing the sameid, which was invalid JSON-LD. Object Integrity Proof signatures now reference the correctMultikeyID instead of theCryptographicKeyID. [#663] -
Object Integrity Proofs signing now takes place before activity fanout, so all recipients receive the same pre-signed activity. Previously, OIP signing was deferred until after fanout, meaning each fanout worker would re-sign independently with potentially different timestamps and the fanout message itself contained an unsigned activity.
@fedify/cfworkers
- Fixed a remaining TypeScript type mismatch for Cloudflare Workers users who pass
wrangler typesor@cloudflare/vite-plugingenerated KV bindings toWorkersKvStore. The package now accepts a minimal structural KV binding interface forWorkersKvStoreandWorkersMessageQueue'sorderingKvoption instead of requiring the nominalKVNamespacetype imported from@cloudflare/workers-types, so generated local declarations compile without casts or@ts-expect-error. [#665]
Fedify 2.0.12
Released on April 8, 2026.
@fedify/fedify
-
Fixed
Context.getActorKeyPairs()assigning the same key ID to both theCryptographicKey(used for HTTP Signatures and Linked Data Signatures) and theMultikey(used for Object Integrity Proofs) within anActorKeyPair. TheMultikeynow receives a distinct ID (#multikey-1,#multikey-2, …) so that the actor document no longer contains two objects sharing the sameid, which was invalid JSON-LD. Object Integrity Proof signatures now reference the correctMultikeyID instead of theCryptographicKeyID. [#663] -
Object Integrity Proofs signing now takes place before activity fanout, so all recipients receive the same pre-signed activity. Previously, OIP signing was deferred until after fanout, meaning each fanout worker would re-sign independently with potentially different timestamps and the fanout message itself contained an unsigned activity.
@fedify/cfworkers
- Fixed a remaining TypeScript type mismatch for Cloudflare Workers users who pass
wrangler typesor@cloudflare/vite-plugingenerated KV bindings toWorkersKvStore. The package now accepts a minimal structural KV binding interface forWorkersKvStoreandWorkersMessageQueue'sorderingKvoption instead of requiring the nominalKVNamespacetype imported from@cloudflare/workers-types, so generated local declarations compile without casts or@ts-expect-error. [#665]
Fedify 1.10.8
Released on April 8, 2026.
@fedify/fedify
-
Fixed
Context.getActorKeyPairs()assigning the same key ID to both theCryptographicKey(used for HTTP Signatures and Linked Data Signatures) and theMultikey(used for Object Integrity Proofs) within anActorKeyPair. TheMultikeynow receives a distinct ID (#multikey-1,#multikey-2, …) so that the actor document no longer contains two objects sharing the sameid, which was invalid JSON-LD. Object Integrity Proof signatures now reference the correctMultikeyID instead of theCryptographicKeyID. [#663] -
Object Integrity Proofs signing now takes place before activity fanout, so all recipients receive the same pre-signed activity. Previously, OIP signing was deferred until after fanout, meaning each fanout worker would re-sign independently with potentially different timestamps and the fanout message itself contained an unsigned activity.
Fedify 1.9.9
Released on April 8, 2026.
@fedify/fedify
-
Fixed
Context.getActorKeyPairs()assigning the same key ID to both theCryptographicKey(used for HTTP Signatures and Linked Data Signatures) and theMultikey(used for Object Integrity Proofs) within anActorKeyPair. TheMultikeynow receives a distinct ID (#multikey-1,#multikey-2, …) so that the actor document no longer contains two objects sharing the sameid, which was invalid JSON-LD. Object Integrity Proof signatures now reference the correctMultikeyID instead of theCryptographicKeyID. [#663] -
Object Integrity Proofs signing now takes place before activity fanout, so all recipients receive the same pre-signed activity. Previously, OIP signing was deferred until after fanout, meaning each fanout worker would re-sign independently with potentially different timestamps and the fanout message itself contained an unsigned activity.
Fedify 2.1.4
Released on April 7, 2026.
@fedify/fedify
- Fixed
sendActivity()not awaitingfanoutQueue.enqueue()in the fanout path, which could cause fanout messages to be silently dropped on runtimes like Cloudflare Workers that may terminate an isolate as soon as the response is sent. [#661]
@fedify/cfworkers
- Fixed a TypeScript type mismatch that occurred when passing
wrangler types-generated binding types (e.g.KVNamespace,Queue) toWorkersKvStoreandWorkersMessageQueueconstructors. The package previously imported these types from@cloudflare/workers-types/experimental, which includes extra members (such asKVNamespace.deleteBulk()) absent from types generated bywrangler types, causing TypeScript assignment errors at the call site. The import now uses the stable@cloudflare/workers-typesentrypoint, whose definitions match whatwrangler typesgenerates. [#662]
Fedify 2.0.11
Released on April 7, 2026.
@fedify/fedify
- Fixed
sendActivity()not awaitingfanoutQueue.enqueue()in the fanout path, which could cause fanout messages to be silently dropped on runtimes like Cloudflare Workers that may terminate an isolate as soon as the response is sent. [#661]
@fedify/cfworkers
- Fixed a TypeScript type mismatch that occurred when passing
wrangler types-generated binding types (e.g.KVNamespace,Queue) toWorkersKvStoreandWorkersMessageQueueconstructors. The package previously imported these types from@cloudflare/workers-types/experimental, which includes extra members (such asKVNamespace.deleteBulk()) absent from types generated bywrangler types, causing TypeScript assignment errors at the call site. The import now uses the stable@cloudflare/workers-typesentrypoint, whose definitions match whatwrangler typesgenerates. [#662]
Fedify 1.10.7
Released on April 7, 2026.
@fedify/fedify
- Fixed
sendActivity()not awaitingfanoutQueue.enqueue()in the fanout path, which could cause fanout messages to be silently dropped on runtimes like Cloudflare Workers that may terminate an isolate as soon as the response is sent. [#661]
Fedify 1.9.8
Released on April 7, 2026.
@fedify/fedify
- Fixed
sendActivity()not awaitingfanoutQueue.enqueue()in the fanout path, which could cause fanout messages to be silently dropped on runtimes like Cloudflare Workers that may terminate an isolate as soon as the response is sent. [#661]
Fedify 2.1.3
Released on March 31, 2026.
@fedify/init
- Restored the npm entrypoint contract for
@fedify/initafter thetsdownupgrade started publishingdist/*.mjsfiles while the package metadata still exporteddist/*.jsanddist/*.d.ts. Node consumers such as@fedify/clican start again, includingnpx -y @fedify/cli --help. [#655]
@fedify/create
- Restored the npm CLI entrypoint for
@fedify/createso the publishedbinandexportspaths once again point to generateddist/mod.jsoutput instead of missingdist/mod.jsfiles. This prevents the same packaging regression from breakingnpm init @fedify. [#655]
Fedify 2.0.10
Released on March 31, 2026.
@fedify/lint
- Fixed the published ESM output paths for
@fedify/lintso the package exports and type declarations point to the actual files generated bytsdown. This restores imports such asimport fedifyLint from "@fedify/lint"in documentation examples and other TypeScript consumers.
@fedify/init
- Restored the npm entrypoint contract for
@fedify/initafter thetsdownupgrade started publishingdist/*.mjsfiles while the package metadata still exporteddist/*.jsanddist/*.d.ts. Node consumers such as@fedify/clican start again, includingnpx -y @fedify/cli --help. [#655]
@fedify/create
- Restored the npm CLI entrypoint for
@fedify/createso the publishedbinandexportspaths once again point to generateddist/mod.jsoutput instead of missingdist/mod.jsfiles. This prevents the same packaging regression from breakingnpm init @fedify. [#655]