@@ -110,34 +110,6 @@ To be released.
110110 operators distinguish a slow-draining queue from a queue that sees
111111 less traffic. [[ #316 ] , [ #740 ] , [ #759 ]]
112112
113- - Added an outbound delivery circuit breaker for queued outbox delivery.
114- Fedify now tracks consecutive network and HTTP 5xx delivery failures
115- per remote host (including any non-default port), stores the state in
116- the configured ` KvStore ` , and requeues messages held by an open circuit
117- instead of repeatedly sending to an unreachable server. The circuit
118- breaker is enabled by default for queued outbox delivery and can be
119- disabled with
120- ` circuitBreaker: false ` ; applications can customize the failure policy,
121- recovery delay, held activity TTL, release interval, and state/drop
122- callbacks. HTTP 429 responses do not count as circuit failures and
123- ` Retry-After ` is respected when present. State changes are exposed
124- through ` activitypub.circuit_breaker.state_change ` metrics and
125- ` activitypub.circuit_breaker.state_change ` span events, and expired
126- held activities call the outbox permanent failure handler with
127- ` reason: "circuit-breaker-ttl" ` . [[ #620 ] , [ #778 ]]
128-
129- - Added ` benchmarkMode ` to ` createFederation() ` and
130- ` FederationBuilder.build() ` for cooperative federation benchmarking.
131- When enabled, Fedify exposes ` GET /.well-known/fedify/bench/stats `
132- for in-process OpenTelemetry metric snapshots and
133- ` POST /.well-known/fedify/bench/trigger ` for driving ` sendActivity() `
134- to server-configured benchmark sink recipients. Benchmark mode also
135- defaults ` allowPrivateAddress ` to ` true ` when built-in loaders are used,
136- defaults ` signatureTimeWindow ` to ` false ` , reports queue depth through
137- the new ` fedify.queue.depth ` gauge, and adds explicit low-latency
138- buckets to the signature verification duration histogram.
139- [[ #744 ] , [ #782 ] , [ #787 ]]
140-
141113 - Added OpenTelemetry metrics for ActivityPub fanout and activity
142114 lifecycle events, complementing the per-recipient
143115 ` activitypub.delivery.* ` counters and the per-task
@@ -243,6 +215,34 @@ To be released.
243215 alias host when cross-origin verification runs).
244216 [[ #316 ] , [ #739 ] , [ #772 ]]
245217
218+ - Added an outbound delivery circuit breaker for queued outbox delivery.
219+ Fedify now tracks consecutive network and HTTP 5xx delivery failures
220+ per remote host (including any non-default port), stores the state in
221+ the configured ` KvStore ` , and requeues messages held by an open circuit
222+ instead of repeatedly sending to an unreachable server. The circuit
223+ breaker is enabled by default for queued outbox delivery and can be
224+ disabled with
225+ ` circuitBreaker: false ` ; applications can customize the failure policy,
226+ recovery delay, held activity TTL, release interval, and state/drop
227+ callbacks. HTTP 429 responses do not count as circuit failures and
228+ ` Retry-After ` is respected when present. State changes are exposed
229+ through ` activitypub.circuit_breaker.state_change ` metrics and
230+ ` activitypub.circuit_breaker.state_change ` span events, and expired
231+ held activities call the outbox permanent failure handler with
232+ ` reason: "circuit-breaker-ttl" ` . [[ #620 ] , [ #778 ]]
233+
234+ - Added ` benchmarkMode ` to ` createFederation() ` and
235+ ` FederationBuilder.build() ` for cooperative federation benchmarking.
236+ When enabled, Fedify exposes ` GET /.well-known/fedify/bench/stats `
237+ for in-process OpenTelemetry metric snapshots and
238+ ` POST /.well-known/fedify/bench/trigger ` for driving ` sendActivity() `
239+ to server-configured benchmark sink recipients. Benchmark mode also
240+ defaults ` allowPrivateAddress ` to ` true ` when built-in loaders are used,
241+ defaults ` signatureTimeWindow ` to ` false ` , reports queue depth through
242+ the new ` fedify.queue.depth ` gauge, and adds explicit low-latency
243+ buckets to the signature verification duration histogram.
244+ [[ #744 ] , [ #782 ] , [ #787 ]]
245+
246246 - Replaced Fedify's internal federation routing with
247247 * @fedify/uri-template * for stricter RFC 6570 URI Template expansion and
248248 matching. The deprecated ` Router ` export from * @fedify/fedify * remains
@@ -292,6 +292,10 @@ To be released.
292292
293293### @fedify/cli
294294
295+ - Added the ` --skip-install ` option to ` fedify init ` , following the
296+ corresponding ` @fedify/init ` update, which skips automatic dependency
297+ installation after scaffolding. [[ #720 ] , [ #776 ] by fru1tworld]
298+
295299 - Added the ` fedify bench ` command for benchmarking Fedify federation
296300 workloads. It acts as a synthetic remote actor that drives
297301 ActivityPub-specific load (signed inbox deliveries and WebFinger lookups)
@@ -324,6 +328,8 @@ To be released.
324328 results. This change is published as benchmark report schema version 3
325329 and comparison report schema version 1. [[ #744 ] , [ #786 ] , [ #804 ]]
326330
331+ [ #720 ] : https://github.com/fedify-dev/fedify/issues/720
332+ [ #776 ] : https://github.com/fedify-dev/fedify/pull/776
327333[ #783 ] : https://github.com/fedify-dev/fedify/issues/783
328334[ #784 ] : https://github.com/fedify-dev/fedify/issues/784
329335[ #785 ] : https://github.com/fedify-dev/fedify/issues/785
@@ -376,15 +382,6 @@ To be released.
376382 - Added ` SqliteMessageQueue.getDepth() ` for reporting queued, ready, and
377383 delayed message counts. [[ #735 ] , [ #748 ]]
378384
379- ### @fedify/cli
380-
381- - Added the ` --skip-install ` option to ` fedify init ` , following the
382- corresponding ` @fedify/init ` update, which skips automatic dependency
383- installation after scaffolding. [[ #720 ] , [ #776 ] by fru1tworld]
384-
385- [ #720 ] : https://github.com/fedify-dev/fedify/issues/720
386- [ #776 ] : https://github.com/fedify-dev/fedify/pull/776
387-
388385### @fedify/init
389386
390387 - Added a ` --skip-install ` option to ` fedify init ` that skips automatic
@@ -393,26 +390,6 @@ To be released.
393390 root, or when you want to inspect the generated files before
394391 installing. [[ #720 ] , [ #776 ] by fru1tworld]
395392
396- ### Claude Code plugin
397-
398- - Added a Claude Code plugin at * claude-plugin/* , installable with:
399-
400- ~~~~ text
401- /plugin marketplace add fedify-dev/fedify
402- /plugin install fedify@fedify
403- ~~~~
404-
405- The plugin provides six slash commands (`/fedify:fedify`, `/fedify:docs`,
406- `/fedify:actor`, `/fedify:inbox`, `/fedify:migration`, `/fedify:fep`) and
407- two specialized
408- agents (`fedify-reviewer` and `fedify-debugger`). The Agent Skills bundle
409- lives canonically in *claude-plugin/skills/fedify/* and is referenced from
410- *packages/fedify/skills/fedify/* via a symlink; the `prepack` script
411- resolves the symlink to real files before packing so the published npm
412- tarball is self-contained. [[#489]]
413-
414- [#489]: https://github.com/fedify-dev/fedify/issues/489
415-
416393### @fedify/vocab-runtime
417394
418395 - Added ` PropertyPreprocessor ` , ` PropertyPreprocessorContext ` , and ` Json `
@@ -449,6 +426,26 @@ To be released.
449426 that mutation of the caller's original ` URL ` object does not affect
450427 later resolution. [[ #792 ]]
451428
429+ ### Claude Code plugin
430+
431+ - Added a Claude Code plugin at * claude-plugin/* , installable with:
432+
433+ ~~~~ text
434+ /plugin marketplace add fedify-dev/fedify
435+ /plugin install fedify@fedify
436+ ~~~~
437+
438+ The plugin provides six slash commands (`/fedify:fedify`, `/fedify:docs`,
439+ `/fedify:actor`, `/fedify:inbox`, `/fedify:migration`, `/fedify:fep`) and
440+ two specialized
441+ agents (`fedify-reviewer` and `fedify-debugger`). The Agent Skills bundle
442+ lives canonically in *claude-plugin/skills/fedify/* and is referenced from
443+ *packages/fedify/skills/fedify/* via a symlink; the `prepack` script
444+ resolves the symlink to real files before packing so the published npm
445+ tarball is self-contained. [[#489]]
446+
447+ [#489]: https://github.com/fedify-dev/fedify/issues/489
448+
452449
453450Version 2.2.5
454451-------------
0 commit comments