P7: feeds read as accounts, and PieFed's post Move
Build / Build (push) Successful in 7m50s

Lemmy 1.0's multi-communities and PieFed's feeds (`type: Feed`) resolve as accounts: the feed's `following` is kept
once a day with its counts, each community in it is read in turn, and `/api/v1/accounts/:id/following` lists them.
Lemmy's feed carries the instance's key and its text in `description`; both are taken as they are. Following a feed
answers 422 until the owner decides how a feed is followed.

A post moved to another community (PieFed's Move{object: post, origin, target}), relayed by the community it leaves,
goes there with its thread; a move into a community we host is not taken.

Checked in the pasture: a Lemmy 1.0 feed and a PieFed feed list their communities (ours among them); a PieFed post moved
from its web code arrives moved, with its comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-07 21:42:54 +02:00
1 parent 62189bf11d
commit 3b3f1f6b93
10 files changed
+226 -25

No files matched your search

+11 -3
View File
@@ -492,7 +492,11 @@ on a Page: pins live in `featured`, locks in `Lock`.
- **Private messages:** `ChatMessage` on 0.19; a single-recipient `Note` on 1.0.
- **Context:** 1.0's `context` collection is unpaged and **every comment's own context URL returns the whole post
thread**. Group threads by the root post, never by comparing `context` strings.
- **Feeds:** multi-communities are 1.0's `type: Feed` actors.
- **Feeds:** multi-communities are 1.0's `type: Feed` actors at `/m/<name>`, with no WebFinger handle: the instance's
shared inbox and the **instance's key** (`owner` is the instance, not the feed), text in `description` (not `summary`),
the creator in `attributedTo`, and `following`, an unpaged `Collection` of the community ids with `totalItems`.
Following one stays on the follower's server, which subscribes to each community itself (checked 2026-10-07 on
1.0.0-beta.2).
**Expects**
- **Fetched documents:** Content-Type exactly one of `activity+json`, `activity+json; charset=utf-8`, or `ld+json` with
@@ -595,8 +599,12 @@ What it showed:
- **polls in communities** (`Question` with `votersCount`), and Mobilizon-style `Event`s;
- flairs in two dialects;
- comments: `repliesEnabled` (comment lock), `answer`, plus custom `ChooseAnswer` and `PollVote` activities;
- `Move{object: post}` between communities;
- `Feed` actors;
- `Move{object: post, origin, target}` between communities, by the post's author or a moderator of the origin, relayed
as the origin community's `Announce` (only from the web UI; its API has no move);
- `Feed` actors at `/f/<name>` with their own key, inbox, `followers`, `moderators` (the owner) and `following` (the
communities, a `Collection` with `totalItems`); PieFed's handle is `~name@host`. Following one is a `Follow` to the
feed, after which its owner's server sends `Add`/`Remove` of communities, signed by the feed; each member also
subscribes to every community as themselves (`feed_auto_follow`). Its API creates feeds (`POST /api/alpha/feed`);
- emoji Likes and `EmojiReact` count as upvotes.
- **How PieFed formats what it sends us:**
- It **chooses the format by our NodeInfo software name**, so keep that accurate.
+4 -1
View File
@@ -696,7 +696,10 @@ it, raw where it doesn't.
server or its moderators collection, kept as `ForeignAvatar.ModeratorsURL`; a resolution is kept on our report);
- votes in and out; link posts; flairs (**done 2026-10-07**: Lemmy 1.0's `CommunityPostTag` and PieFed's
`lemmy:CommunityTag`, on posts and communities, described from the community's list, as `privapub.flairs`); `Feed`
actors; community polls; post `Move`;
actors (**read 2026-10-07**: Lemmy 1.0's and PieFed's feeds resolve as accounts whose `/following` is their
communities, kept from the feed's `following` once a day; following one is refused for now, **owner decision
pending** on how); community polls; post `Move` (**done 2026-10-07**: PieFed's, relayed by the community the post
leaves, moves the post and its thread; checked live);
- the outbound shape Lemmy requires;
- communities we host announce to the author's own instance too: **done 2026-10-06** (its server's shared inbox,
whether anyone there follows the community or not: Lemmy keeps its user's post pending until it is announced back);