bridgy-fed icon indicating copy to clipboard operation
bridgy-fed copied to clipboard

Posts bridged to ActivityPub don't include the followers collection in `to`

Open grishka opened this issue 10 months ago • 2 comments

This causes Smithereen to log a warning and drop the incoming Create{Note} because it doesn't know what to do with a post that isn't addressed to its author's followers collection and lacks a target.

Current Note object:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://purl.archive.org/miscellany"
  ],
  "attributedTo": "https://bsky.brid.gy/ap/did:plc:qgljapx75sdwa2d53boqzir7",
  "content": "<p>when I\u2019m reading theory, I turn into a pendulum that flips-flops between two options: either \u201cwhat do you mean? why can\u2019t you say the thing simpler?\u201d, or \u201chm, that\u2019s a useful concept\u201d</p>",
  "contentMap": {
    "ru": "<p>when I\u2019m reading theory, I turn into a pendulum that flips-flops between two options: either \u201cwhat do you mean? why can\u2019t you say the thing simpler?\u201d, or \u201chm, that\u2019s a useful concept\u201d</p>"
  },
  "id": "https://bsky.brid.gy/convert/ap/at://did:plc:qgljapx75sdwa2d53boqzir7/app.bsky.feed.post/3ljnvkv64s224",
  "published": "2025-03-05T21:14:58.141Z",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note",
  "url": "https://bsky.brid.gy/r/https://bsky.app/profile/did:plc:qgljapx75sdwa2d53boqzir7/post/3ljnvkv64s224"
}

Should be:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://purl.archive.org/miscellany"
  ],
  "attributedTo": "https://bsky.brid.gy/ap/did:plc:qgljapx75sdwa2d53boqzir7",
  "content": "<p>when I\u2019m reading theory, I turn into a pendulum that flips-flops between two options: either \u201cwhat do you mean? why can\u2019t you say the thing simpler?\u201d, or \u201chm, that\u2019s a useful concept\u201d</p>",
  "contentMap": {
    "ru": "<p>when I\u2019m reading theory, I turn into a pendulum that flips-flops between two options: either \u201cwhat do you mean? why can\u2019t you say the thing simpler?\u201d, or \u201chm, that\u2019s a useful concept\u201d</p>"
  },
  "id": "https://bsky.brid.gy/convert/ap/at://did:plc:qgljapx75sdwa2d53boqzir7/app.bsky.feed.post/3ljnvkv64s224",
  "published": "2025-03-05T21:14:58.141Z",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public",
    "https://bsky.brid.gy/ap/did:plc:qgljapx75sdwa2d53boqzir7/followers" /* <-- add this */
  ],
  "type": "Note",
  "url": "https://bsky.brid.gy/r/https://bsky.app/profile/did:plc:qgljapx75sdwa2d53boqzir7/post/3ljnvkv64s224"
}

grishka avatar Mar 05 '25 21:03 grishka

Hmm! I'll admit, I've always struggled with AS2 audience targeting. Putting the the followers collection in to for non-private posts is common ish on the fediverse, agreed, but I don't know of anything normative in either AP or AS2 that requires it. Do you? I'm not seeing anything in eg https://www.w3.org/TR/activitystreams-vocabulary/#audienceTargeting , https://www.w3.org/wiki/ActivityPub/Primer/Addressing , etc. https://github.com/mastodon/mastodon/pull/3844#issuecomment-314897285 is maybe the closest I've found, but obviously non-normative, and even then she only says should, not must.

snarfed avatar Mar 05 '25 22:03 snarfed

Nothing in any specs requires it, that's true. But I consider it to be an indication of whether the originating server intends for this post to appear in followers' timelines. There can be use cases where you post publicly, but you don't want for that post to appear in any timelines. For example, Announce-style groups can benefit from this. I myself do this for wall posts, but those also have a target.

grishka avatar Mar 05 '25 22:03 grishka