A community's moderators lock threads and ban members
Lemmy's moderation reached PrivaPub only as removals. Now a remote
community's lock and ban, relayed in its Announce, apply too:
- a lock (Announce{Lock}, or commentsEnabled false on the post) refuses
replies to the thread, ours included, until Undo{Lock}; statuses say so
in privapub.locked;
- a ban of a persona (Announce{Block} with the community as target, or the
moderator's own Block sent straight to us, which is the community's ban
and never the moderator's block of the persona) shows as blocked_by on
the community and refuses the persona's posts and replies there until
the Undo.
The Lemmy scenario's removal was an expected failure only because it gave
up before Lemmy's 30-second batch; it now waits, and checks the lock and
the ban live (Lemmy refuses a lock or an unban without a reason): 29
checks, none expected to fail. G-0003 and G-0006 are closed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
4a9a3d3235
commit
34c0f696af
16 files changed
+231
-20
No files matched your search
+7
-3
@@ -512,7 +512,9 @@ on a Page: pins live in `featured`, locks in `Lock`.
|
||||
| Read 1.0 `context`, grouped by root post; cross-post detection by URL | P3 | — |
|
||||
|
||||
**Pasture evidence (2026-10-03, Lemmy 1.0.0-beta.2, `tools/pasture/scenarios/lemmy.sh`):** 20 checks pass and 3 are
|
||||
expected failures:
|
||||
expected failures. On 2026-10-05 the scenario runs 29 checks, all passing: the relayed votes, and a moderator's lock
|
||||
(refusing our reply, then lifted), a ban of alice (`blocked_by` on the community, refusing her reply, then lifted) and a
|
||||
removal. The 2026-10-03 run covered:
|
||||
- communities both ways: Lemmy follows ours and alice follows Lemmy's, each Accept arriving;
|
||||
- a Lemmy thread in our community arrives with its title, and our titled community post reaches Lemmy;
|
||||
- the Lemmy community's Announce brings its thread to alice's home;
|
||||
@@ -529,8 +531,10 @@ What it showed:
|
||||
- **Every bare `Announce{object}` is answered 400** (`Failed to parse object`: Lemmy dereferences it expecting an
|
||||
activity), as Lemmy answers the compatibility `Announce(Page)` it sends itself. Both 400s show up as dead deliveries
|
||||
in the statistics.
|
||||
- **Votes travel only to the community**, which relays them as `Announce{Like}` and `Announce{Dislike}`. They are
|
||||
dropped as `unsupported` until P7 (expected failures), as is a moderator's removal.
|
||||
- **Votes travel only to the community**, which relays them as `Announce{Like}` and `Announce{Dislike}`: counted since
|
||||
ed08f80, and a vote turned the other way replaces the first since bbeeda7. A moderator's removal, lock and ban come
|
||||
the same way and are applied since 2026-10-05 (the removal was applied all along; the scenario gave up before Lemmy's
|
||||
30-second batch).
|
||||
- Lemmy logs no refused activity at `warn`; the reason is in the 400's body, which our delivery does not keep. The
|
||||
scenario's API notes: `sort` values are lowercase (`new`), private messages and mentions are in
|
||||
`account/notification/list`, and `resolve_object` takes both `!community@host` and `@user@host`.
|
||||
|
||||
Reference in new issue
Block a user