@julian @i According to RFC-9110: HTTP Semantics, this is a valid value for content type:
aPPlicAtiOn/lD+jSOn;Charset=utf-8; Profile="https://www.w3.org/ns/activitystreams"@ex @lina @mint В логах однако есть
May 04 13:31:01 houraisan.eientei.org mix[5666]: 13:31:01.485 [error] Could not parse featured collection %{"@context" => ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", "https://w3id.org/security/data-integrity/v2", %{"Emoji" => "toot:Emoji", "Hashtag" => "as:Hashtag", "sensitive" => "as:sensitive", "toot" => "http://joinmastodon.org/ns#"}], "first" => "https://unseen.name/users/ex/collections/featured?page=true", "id" => "https://unseen.name/users/ex/collections/featured", "type" => "OrderedCollection"} May 04 15:12:00 houraisan.eientei.org mix[5666]: 15:12:00.037 [error] Publisher failed to inbox https://unseen.name/users/ex/inbox {:error, :checkout_timeout}но в очередях уже ничего нет
select count(*) from oban_jobs where queue = 'federator_incoming' and args::text like '%unseen.name%' ; count ------- 0 (1 row)@silverpill @frost I don't know, because it seems that biting uses linked data, and the software that implements it originally came from iceshrimp.net. I reckon testing would require using an iceshrimp.net instance to confirm whether it works properly.
This is the namespace: https://ns.mia.jetzt/as/
{ "Bite": "https://ns.mia.jetzt/as#Bite" }
This context is important because if biting activities don't include it, iceshrimp.net will ignore the activity. I discovered this while trying to repair biting on my Pleroma instance.
https://github.com/mkljczk/pl/pull/11
activities json (from wafrn)
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "Bite": "https://ns.mia.jetzt/as#Bite" } ], "actor": "https://wafrn.lonewolf.zone/fediverse/blog/caohuak", "id": "https://wafrn.lonewolf.zone/fediverse/bites/a6310fce-0567-4df0-971b-853399687349/1d335590-8b2c-4585-b77c-6f5f483dfc7b", "object": "https://moon.lonewolf.zone/users/caohuak", "target": "https://moon.lonewolf.zone/users/caohuak", "to": [ "https://moon.lonewolf.zone/users/caohuak" ], "type": "Bite" }@Profpatsch A lot of effort is being put into reducing implementation complexity - it is just not very visible. Libraries, testing tools, documentation (such as the guide that I mentioned during our previous conversation).
However, the complexity is unavoidable in a decentralized network. A standardized representation of a quote (FEP-e232) was proposed long time ago. It was easy to implement, versatile (FEP-e232 could be used to build any kind of link, not just a quote), and it was supported by a significant number of fediverse projects. Then Mastodon developers decided to invent a different kind of quote, with all the unnecessary complexity that you described. But I'd rather deal with this complexity than have some centralized standards org telling me what to do.
Another issue is disinformation -- and that is really weird, and unique to Fediverse. You probably heard that JSON-LD is required, but that is not true. The spec doesn't require it. Only a few Fediverse projects actually use JSON-LD, and as a developer you don't need to worry about it -- adding "@context": "https://www.w3.org/ns/activitystreams" to your JSON makes your software compatible with >99% of Fediverse instances, and even that is necessary because Mastodon has a bug. Unlike the problem of competing standards, this problem can be solved by writing better documentation.
@caohuak nomad had no @context, but minimitra has "@context": "https://www.w3.org/ns/activitystreams". This works with Mastodon, so I am going to leave it as is.
@silverpill @fabio you’re right, I completely overlooked that. Also the Python HTTP machinery isn’t as clever as I thought so I had to trim parameters manually, but it should work now https://git.fabiomanganiello.com/blacklight/madblog/commit/76e7b72337b1ab7406fb307eb163a9a4097fcc0e
❯ curl -I -H 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams"' https://manganiello.blog/article/Madblog-federated-blogging-from-markdown HTTP/2 200 server: nginx date: Tue, 10 Mar 2026 19:06:01 GMT content-type: application/activity+json content-length: 69389 last-modified: Tue, 10 Mar 2026 18:39:54 GMT etag: "81d02d339405c0ec" cache-control: public, max-age=0, must-revalidate language: en-USGNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.