From fd163b577f8e9824bff9265b4dee00ecff09bfe9 Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 22 Feb 2026 08:24:19 +0000 Subject: [PATCH] Inline federation publication + fix AP delivery - Replace async federation_handlers with inline try_publish() at write sites - Fix ap_delivery_handler: urlparse for signature path/host, @context array with security vocab, Delete/Tombstone object handling - Fix federation_impl: @context array for IPFS, .limit(1) + upsert follower Co-Authored-By: Claude Opus 4.6 --- events/handlers/ap_delivery_handler.py | 5 ++++- services/federation_impl.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/events/handlers/ap_delivery_handler.py b/events/handlers/ap_delivery_handler.py index 7dbf9ad..001b9ce 100644 --- a/events/handlers/ap_delivery_handler.py +++ b/events/handlers/ap_delivery_handler.py @@ -39,7 +39,10 @@ def _build_activity_json(activity: APActivity, actor: ActorProfile, domain: str) obj.setdefault("published", activity.published.isoformat() if activity.published else None) return { - "@context": "https://www.w3.org/ns/activitystreams", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + ], "id": activity.activity_id, "type": activity.activity_type, "actor": actor_url, diff --git a/services/federation_impl.py b/services/federation_impl.py index 0ad5728..67767c1 100644 --- a/services/federation_impl.py +++ b/services/federation_impl.py @@ -163,7 +163,10 @@ class SqlFederationService: from shared.utils.ipfs_client import add_json, is_available if await is_available(): activity_json = { - "@context": "https://www.w3.org/ns/activitystreams", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + ], "id": activity_uri, "type": activity_type, "actor": f"https://{domain}/users/{username}",