Mbin joins the pasture; a magazine's own threads and locks are taken

Mbin 1.10.1 runs in the pasture (its image, a messenger worker, a RabbitMQ
of its own, its API limits raised), and peers/mbin_token.py gets mbuser's
token through the authorization-code flow. scenarios/mbin.sh: 24 checks and
one known gap, magazines both ways, titled threads, a Note to a magazine as
a microblog post, comments, favourites and upvotes both ways, a moderator's
lock, unlock and removal, the unfollow and statistics.

What it showed:
- Mbin sends a magazine's threads to its subscribers as the author's Create,
  the magazine as its audience, never announced. A post whose group is
  followed here and lives on the post's own server is now kept as if
  announced; the same from another server is not.
- A moderator's lock is a bare Lock (and Undo{Lock}): LockHandler takes it
  from the post's own server only.
- Mbin takes private messages only as ChatMessage and its actors say
  nothing about it; PrivaPub never decides by a server's software, so this
  stays open as G-0008 for the owner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-05 16:41:50 +02:00
1 parent 47d6e22988
commit 26346cde30
15 files changed
+493 -8

No files matched your search

+16
View File
@@ -580,6 +580,22 @@ What it showed:
- Private messages are `ChatMessage`.
- The magazine outbox is empty.
- Mbin also auto-ingests Mastodon posts by hashtag and Announces them.
- **A magazine's threads go to its subscribers as their author's `Create`**, `to` and `audience` naming the
magazine, never announced by it. PrivaPub dropped them as addressed to nobody here until 2026-10-05; a post whose
group is followed here and lives on the post's server is now kept (FEDERATION.md, Groups).
- **A moderator's lock is a bare `Lock`** (and `Undo{Lock}`) from the moderator, not inside an announce; taken since
2026-10-05 from the post's own server. A removal ("trash") is a `Delete` from the moderator, believed once Mbin
answers the thread gone.
- **Votes:** an upvote is an `Announce`, a favourite a `Like`. Downvotes stay on Mbin (no `Dislike`), and taking an
upvote back sends nothing (its vote listener announces only the upvote), so a boost counted here stays.
- **Private messages only as `ChatMessage`:** a direct `Note` is dropped ("PM: not implemented", G-0008), and Mbin's
actors say nothing that would let a sender choose; its API never starts a conversation with a remote account.
- Mbin names what it makes during a request after the request's host, port included.
- **Pasture evidence (2026-10-05, Mbin 1.10.1, `tools/pasture/scenarios/mbin.sh`):** 24 checks pass and one gap is
expected (G-0008): magazines both ways; an Mbin thread in our community arrives titled and ours reaches Mbin as a
thread; a magazine's thread reaches alice's home and her Note becomes a microblog post in it; comments both ways;
Mbin's favourite counts as a like and its upvote as a boost, alice's like and boost count there; a moderator's lock,
unlock and removal; the unfollow; statistics.
- **Gaps:**
- **P1:** Lemmy's P1 set, W2, and tolerating `source` as a string.
- **P2:** galleries; post `Move`; `repliesEnabled`; `nsfl`; flairs; publish `likes`/`shares` totals.