<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Activity-Relay Server 2.5.0 RC2 pushed]]></title><description><![CDATA[<p>Activity-Relay Server 2.5.0 RC 2 is now live at <a href="https://relay.argentwolf.org"><strong>https://relay.argentwolf.org</strong></a><br /><br />Please help me out with connecting and testing! If you have any issues, please let me know! You can reach me at <a rel="mention" href="/user/alan%40friendica.argentwolf.org">@alan</a>, or open an issue on <a href="https://github.com/thystra/Activity-Relay">https://github.com/thystra/Activity-Relay</a><br /><br /><strong>RC2 enhancements include:</strong><br /></p><ul><li><strong>Reliable delivery retries:</strong> Each relay fan-out target now receives one initial attempt plus five delayed retries.</li><li><strong>Bounded Fibonacci backoff:</strong> Retry delays occur at approximately <strong>8, 13, 21, 34, and 55 seconds</strong>.</li><li><strong>Longer activity retention:</strong> Shared activity bodies remain in Redis for <strong>15 minutes</strong>, covering the full retry window with additional margin.</li><li><strong>Correct terminal accounting:</strong> <code>remain_count</code> is reduced only after successful delivery or final retry exhaustion—not after every failed attempt.</li><li><strong>Protection against premature payload deletion:</strong> A temporary failure from one receiver can no longer delete the activity needed by its own retry or other pending receivers.</li><li><strong>Structured delivery diagnostics:</strong> Logs now include task UUID, activity storage ID, activity/object/actor identifiers, origin domain, receiver domain, attempt number, remaining retries, and body SHA-256.</li><li><strong>Delivery timing details:</strong> Each attempt records elapsed processing time and the scheduled time or delay for the next retry.</li><li><strong>Improved HTTP failure evidence:</strong> Logs capture HTTP status codes, classified error types, and bounded response text from receivers, including useful errors such as <code>424 Failed Dependency</code>.</li><li><strong>Safer diagnostic logging:</strong> Raw activity bodies, HTTP signatures, private keys, and unbounded remote responses are not written to logs.</li><li><strong>At-least-once recovery:</strong> A receiver that finishes processing after the relay times out may receive the same activity again during retry, allowing recovery from ambiguous timeout outcomes.</li><li><strong>Receiver-health tracking across retries:</strong> Successful and failed attempts update per-receiver delivery statistics and consecutive-failure state.</li><li><strong>Regression coverage:</strong> New tests verify retriable failure retention, successful later delivery, terminal cleanup, retry timing, metadata extraction, and bounded response handling.</li><li><strong>Operational observability:</strong> RC2 supports private health, readiness, and Prometheus metrics endpoints, now enabled locally in production on <code>127.0.0.1:9090</code>.</li><li><strong>Preserved upgrade state:</strong> Deployment validation confirmed that the relay actor identity, private key, configuration, website settings, and all Redis logical data remained intact during the RC1-to-RC2 upgrade.</li></ul><p><a href="https://github.com/thystra/Activity-Relay/blob/master/CHANGELOG.md">Changelog</a></p><p><a rel="tag" href="https://www.wolfandraven.blog/tag/activitypub/">#activitypub</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/friendica/">#friendica</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/mastodon/">#mastodon</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/fediverse/">#fediverse</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/nodebb/">#nodebb</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/relay/">#relay</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/relayserver/">#relayserver</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/relayservers/">#relayservers</a> <a rel="tag" href="https://www.wolfandraven.blog/tag/relaytest/">#relaytest</a></p>]]></description><link>https://citiverse.it/topic/d2951b70-1989-4d09-bf5a-ca97f7f101d5/activity-relay-server-2.5.0-rc2-pushed</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 01:18:46 GMT</lastBuildDate><atom:link href="https://citiverse.it/topic/d2951b70-1989-4d09-bf5a-ca97f7f101d5.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Jul 2026 23:42:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Activity-Relay Server 2.5.0 RC2 pushed on Sat, 01 Aug 2026 02:15:22 GMT]]></title><description><![CDATA[<p dir="auto">Since you're using AI to code this it may be worth exploring what aspects of Activity-Relay differ from what is detailed in the retrospective FEP ae0c</p>
<p dir="auto"><a href="https://w3id.org/fep/ae0c" target="_blank" rel="noopener noreferrer nofollow ugc">https://w3id.org/fep/ae0c</a></p>
]]></description><link>https://citiverse.it/post/https://activitypub.space/post/2166</link><guid isPermaLink="true">https://citiverse.it/post/https://activitypub.space/post/2166</guid><dc:creator><![CDATA[julian@activitypub.space]]></dc:creator><pubDate>Sat, 01 Aug 2026 02:15:22 GMT</pubDate></item></channel></rss>